Web安全: OWASP_TOP_10 原理|危害|绕过技术|修复建议.
Web安全: OWASP_TOP10 原理和修复.
OWASP_TOP_10是Open Web Application Security Project(OWASP)组织发布的一个关于网络安全的列表,它列出了当前最常见和最危险的10种Web应用程序安全风险。这个列表每几年更新一次,以反映最新的安全威胁和漏洞趋势。OWASP是一个非盈利组织,由全球的安全专家、开发者和IT专业人士组成,致力于提高软件安全性。
目录:
(1)SQL注入漏洞:
(2)XSS漏洞:
(3)CSRF 跨站请求伪造:
(4)SSRF 服务器请求伪造:
(5)XXE【XML外部实体注入】
(6)文件包含 漏洞
(7)文件上传漏洞.
(8)命令执行 漏洞.
(9)逻辑漏洞.
(10)未授权访问 漏洞.
(11)中间件解析 漏洞.
IIS解析漏洞:
Nginx解析漏洞:
(12)反序列化 漏洞.
Shiro反序列化:
FastJson反序列化:
JBoos反序列化:
(1)SQL注入漏洞:
原理:
代码中没有对用户输入项进行验证和处理并直接并接到查询语句中.
利用:
攻击者在应用查询语句中插入自己的SQL语句并传递到后台SQL服务器时并解析和执行了.
分类:
显注.
盲注.(时间型,布尔型,报错型)
测试方法:
' and 1=1 #
' and 1=2 #
危害:
SQL注入危害口诀:信网网后数.
1.信息泄露
2.网站挂马
3.网页篡改
4.后门植入
5.数据库被恶意操作
绕过技术:
SQL注入绕过口诀:关内二参模.
1.关键字 %【比如:sel%e%ct】
2.内联注释.【比如:/*select*/】
3.二次编码.
4.参数绕过.
5.multipart【模尼派】请求绕过,在POST请求中添加一个上传文件.
修复建议:
SQL注入修复口诀:加关过限信.
1.加WAF【Web防火墙】
2.关闭错误提示信息.
3.对用户输入项进行过滤.
4.限制输入的长度.【后台】
5.信息加密安全,一次md5 加盐 再加md5
实战链接:
Web安全:SQL注入漏洞测试.(手动测试)
(2)XSS漏洞:
原理:
Web应用程序对用户输入项的验证不严格,导致攻击者可以注入恶意脚本在这个页面中,当其他用户访问到这个页面的时候,恶意脚本就会被执行.
危害:
XSS危害口诀:盗会篡重钓破
1.盗取用户cookie
2.会话劫持.
3.篡改网页内容.
4.重定向恶意网站.
5.钓鱼网站.
6.破坏网站功能.
绕过技术:
XSS绕过口诀:大双编无等利.
1.大小写.<script>
2.双写.<scri<script>pt>
3.编码.
4.无分号无引号.
5.等价符号/函数替换.
6.利用HTML条件注释块.
修复建议:
XSS修复口诀:验安启使.
1.对所有用户输入项进行验证和处理,避免直接将用户输入的内容输出到页面中.
2.使用内容安全策略(CSP)来限制可执行的脚本.
3.启用浏览器的XSS过滤.
4.使用HTTP-only来设置cookie,防止被应用程序读取cookie信息.
实战链接:
Web安全:XSS漏洞的测试(防止 黑客利用此漏洞.)
(3)CSRF 跨站请求伪造:
原理:
一个正常的请求,会将用户的 sessio id 保存在 cookie 中,这时候,如果用户使用同一个浏览器去访问tab页,这个tab页也是可以获取cookie信息的.
举个例子:【修改管理员账号密码】
当管理员正常登录后,如果攻击者伪造URL【修改账号密码的】,攻击者发给了管理员,管理员使用同一个浏览器我访问了,那密码就会被修改.
危害:
CSRF危害口诀:盗执财.
1.盗取用户Cookie
2.执行恶意的操作.
3.财产损失.
绕过技术:
CSRF 绕过口诀:更删移.
1.更改请求方法【POST改GET】
2.删除或发空的Token
3.移除Referer字字段.
修复建议:
CSRF修复建议:双增使.
1.双重验证.
2.增加Token
3.使用HTTP-only来设置cookie信息.
实战链接:
Web安全:跨站请求伪造(CSRF)测试和利用.
(4)SSRF 服务器请求伪造:
原理:
由于服务器端提供了从别的服务器获取数据的功能,并且对目标地址没有进行安全检测和过滤,导致攻击者可以利用这个功能进行内网数据访问和探测.
危害:
SSRF危害口诀:敏内Dos
1.敏感信息泄露.【文件读取file,端口探测ftp】
2.内网探测,提供了进一步的横向移动的条件.
3.对内网主机进行Dos攻击.
绕过技术:
SSRF绕过口诀:短协域
1.利用短链接.
2.利用特殊协议.
3.利用特殊域名.
修复建议:
SSRF修复口诀:过白协口
1.对用户输入项进行安全检查和严格过滤.
2.利用白名单机制.
3.限制协议.
4.限制端口请求.
5.如果不经常使用这个功能,可以进行关闭.
实战链接:
Web安全 SSRF漏洞的 测试和利用.(读取服务器的任何文件)
(5)XXE【XML外部实体注入】
原理:
当应用程序未正确验证和处理XML数据,攻击者可以构造XML数据,内容包含外部实体引用,当XML解析器不能正确处理外部实体引用,导致攻击者可以实现文件任意读取和命令执行等危害.
危害:
XXE危害口诀:信命内SD绕
1.敏感信息泄露.
2.命令/代码执行.
3.内部系统扫描.
4.SSRF
5.Dos
6.绕过防火墙
绕过技术:
XXE绕过口诀:编伪
1.编码.【如:UTF-16BE】
2.伪协议.【如:data,file】
修复建议:
1.禁用外部实体
2.对用户输入项进行严格验证和过滤.
3.关闭错误信息提示.
4.限制XML解析器的功能.
实战链接:
Web安全 XXE漏洞的 测试和利用.
(6)文件包含 漏洞
原理:
该漏洞一般出现在应用程序需要包含外部文件时,如果应用程序接受用户输入项作为路径的一部分,并且没有进行验证和过滤这些输入项,导致攻击者可以利用这点进行恶意的攻击.
PHP文件包含函数:
1.include()【鹰库鲁】
2.include_once()
3.require()【飞{雷}快鳄】
4.require_once()
危害:
文件包含危害口诀:信命.
1.敏感信息泄露.
2.恶意代码执行.
绕过技术:
文件包含绕过口诀:伪%#空格双写
1.伪协议.
2.%00截断
3.# 绕过.
4.空格 绕过.
5.双写 绕过.
修复建议:
文件包含修复口诀:输白禁限使.
1.对用户输入进行严格过滤和处理.
2.使用白名单.
3.禁用远程文件包含.
4.限制文件访问路径.
5.使用安全函数.
实战链接:
Web安全:文件包含漏洞测试(防止 黑客利用此漏洞.)
(7)文件上传漏洞.
原理:
服务器对上传的文件后缀和文件类型没有进行严格验证和过滤.
危害:
文件上传危害口诀:webshell木病内
1.上传Webshell
2.上传木马
3.上传病毒.
4.内网渗透.
绕过技术:
文件上传绕过口诀:前后类%
1.前端JS验证绕过.
2.修改文件后缀绕过.
3.修改文件类型绕过.
4.%00截断.
修复建议:
文件上传修复口诀:输白目随.
1.对上传文件进行严格过滤.
2.使用白名单机制限制后缀和类型.
3.设置文件上传的目录不可文件执行.
4.上传的文件名和文件路径进行随机改写.
实战链接:
Web安全:文件上传漏洞测试(防止 黑客利用此漏洞.)
(8)命令执行 漏洞.
原理:
应用程序在执行系统函数时,未对用户输入项进行严格验证和过滤,导致攻击者可以将恶意命令拼接到正常的命令中,从而可以执行任意恶意命令.
函数:
1.system()【谁时省】
2.exec()
危害:
命令执行危害口诀:信内权系
1.数据泄露.
2.内网渗透.
3.权限提升.
4.系统控制.
绕过技术:
命令执行绕过口诀:编寻字
1.编码.
2.寻找未禁用的函数.
3.字符.【空格,通配符】
修复建议:
命令执行修复口诀:输白参关.
1.对用户输入项进行严格验证和过滤.
2.使用白名单
3.参数化查询和绑定.
4.关闭报错信息提示
实战链接:
Web安全:命令执行漏洞 测试(防止 黑客利用此漏洞.)
(9)逻辑漏洞.
原理:
程序在设计和实现过程中,由于逻辑错误或者逻辑缺陷导致的安全问题.【不是代码问题】
分类:
逻辑分类口诀:权业验登
1.权限分类
平行越权:
A和B同一级的用户,正常情况下不能修改对方信息.
如果A可以去修改B的信息那么这就是平行越权.
垂直越权:
低权限用户可以修改高权限用户的数据
2.业务逻辑缺陷.【支付逻辑】【订单金额】
3.验证码机制缺陷.【密码找回】【验证码爆破】
4.登录缺陷.【弱密码】
危害:
逻辑危害口诀:信滥财
1.信息泄露.
2.服务滥用.
3.财产损失.
修复建议:
逻辑逻辑修复口诀:多访全.
1.多因身份验证.
2.访问控制策略.
3.全面审计.
(10)未授权访问 漏洞.
原理:
系统或服务对用户访问没有做限制和认证,可能是由于配置不当,认证机制缺陷或代码逻辑出现问题,导致了攻击者能够未授权访问.
危害:
未授权访问 危害口诀:信账系
1.信息泄露
2.账号安全.【修改账号信息】
3.系统安全.【执行系统命令】
如何进一步绕过利用:
未授权访问绕过利用口诀:系数.
1.系统服务扫描.
2.数据窃取或恶意操作.
修复建议:
未授权访问修复口诀:认配权
1.认证机制加强.
2.服务配置审查
3.访问权限控制
常见的有:
1.Rwdis{微迪斯}未授权访问【端口6379】:默认安装情况下是没有设置密码的,如果没有做安全配置【限制IP访问】,直接暴露到公网上.
2.Memcached{梅卡死特}未授权【端口11211】:缓存系统,本身没有权限控制模块,默认配置也是没有密码的.
3.JBoss未授权【端口8080】:应用服务器,默认后台没有密码直接访问.
4.lnfiuxDB未授权【端口8086】:数据库,Jwt认证不当,生成时间戳,进行修改数据包,可以返回信息.
5.MongoDB{蒙狗DB}未授权【端口27017】:默认情况下不设置认证机制,没有密码,直接访问.
实战链接:
数据库安全:Redis 未授权访问漏洞 测试.(6379端口)
Web 安全:Memcached 未授权访问漏洞.(11211端口)
中间件安全:JBOSS 未授权访问漏洞.
数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞._
数据库安全:MongoDB 未授权访问漏洞.(27017端口)
(11)中间件解析 漏洞.
IIS解析漏洞:
原理 | 利用:
IIS5.x/6.0中分号{;}后面不会被解析,也就是说xx.asp;.jpg会被服务器看成是xx.asp,但是在上传文件的时候只校验后缀名,这样就可以上传xx.asp;.jpg,上传成功后服务器把这个文件当xx.asp去执行.
IIS7.0/7.5版本上传图片,默认Fast-CGI开启,如果图片文件后面加上/.php,服务器会把这个文件当做php去执行.
实战链接:
中间件安全:IIS 解析漏洞.[6.0版本]_
Nginx解析漏洞:
原理:
用户配置不当造成的解析漏洞.
利用:
上传图片,如果在访问图片后面加/.php,服务器会把这个上传的图片当php去执行.
实战链接:
中间件安全:Nginx 解析漏洞测试.
(12)反序列化 漏洞.
Shiro反序列化:
原理:
Shiro 有一个记住密码的功能,用户登录成功后 会生成 一个加密并编码 cookie ,然后服务器端对记住密码功能的cookie,进行 base64解密 ==》 AES解密 ==》反序列化 ,这样就导致了反序列化漏洞的产生.
这里面最重要的是:默认情况下 AES加密 一样的.
利用:
构成恶意 反序列化 ==》AES加密 ==》baes64加密 ==》替换到记住密码功能的 cookie 中,进行反序列化攻击.
版本:
Shiro < 1.2.4
FastJson反序列化:
原理:
FastJson 允许在 json 字符串中使用 @type {太婆}关键字来指定目标对象的类型,这意味在反序列化时,FastJson 会尝试加载并实例化这个类型的对象,如果应用程序配置允许自动类型识别,而没有适当限制,攻击者就可以构成特殊的 Json 字符串来指定恶意类.
利用:
攻击者可以构成一个包含 @type {太婆}字段的恶意 json 数据,将恶意类作为 Auto Type {O特太} 的值,当 FastJson 反序列化时,会实例化指定的恶意类,从而导致恶意代码执行.
JBoos反序列化:
原理:
JBoos某些版本中,由于没有对反序列化操作进行适当过滤,攻击者可以构成恶意的反序列化数据,当JBoos服务器反序列化这些数据时,就可以执行攻击者指定的恶意代码.
版本:
JBoos 4.x之前的版本.
JBoos 5.x/6.x 版本.
实战链接:
中间件安全:JBoss 反序列化命令执行漏洞.(CVE-2017-12149)