业务逻辑与非常规漏洞原理和利用

权限绕过漏洞

案例扩展一:水平越权

通过水平越权漏洞实现修改或删除其他用户个人信息
简单的说,就是在修改用户的信息时,通过BurpSuite抓取到的数据中,
对用户的ID进行修改成别人的,以达到修改别人账户ID下的信息的能力

案例扩展二:垂直越权

通过垂直越权漏洞实现在没有任何权限的情况下添加管理员用户,获得管理员权限

支付流程逻辑漏洞

支付逻辑漏洞是指系统的支付流程中存在业务逻辑层面的漏洞

1.支付过程中可以修改支付金额
2.可以将订单中的商品数量修改为负值
3.请求重放(通过修改商品基本信息,价格等,然后重复自动请求购买)
4.其他问题(程序异常,其他参数修改导致的问题等)

解决方法:
1.对敏感数据加密传输
2.每次请求验证数据

密码找回漏洞

验证码暴力破解

自动组合验证码,看看是否正确,组合可以是0-9,a-z, A-Z

验证码重复使用

通过使用同一个验证码来尝试破解登录密码,登录密码的key都是预制在字典里的

验证码客户端回显

发送的验证码会通过cookie或者localStorege或者直接显示到页面上,我们仔细排查既可找出正确的验证码

验证码绕过测试

就是在点击使用JS验证验证码时,服务器端返回了一个正确还是错误的状态,
然后在BurpSuite里将错误的验证状态改成正确的状态

验证码自动识别测试

一般对图片验证码的识别流程为:图像二值化处理 --> 去干扰 --> 字符分割 --> 字符识别
自动识别图形验证码网上有很多工具和教程,比如Pkav HTTP Fuzzer

https://www.freebuf.com/sectool/61313.html

商城购买逻辑漏洞与防御实验操作

案例:
1.将一个iPhone加入到购物车,加入时通过BurpSuite拦截并记住商品id
2.将一个手机壳加入到购物车,加入时通过BurpSuite拦截病修改手机壳的商品id为iPhone的商品id
3.去购物车结算,会发现把iPhone当成手机壳的价格来购买了



SSRF 漏洞原理与利用

SSRF (Server Side Request Forgery)服务器端请求伪造
一般主要攻击的内网系统。SSRF形成的原因主要是由于服务器端提供了从其他服务器应用获取
数据的功能,且没有对目标地址过滤与限制。
比如从指定URL获取网页文本内容,加载指定的地址的图片、文档、json数据等

SSRF 高危触发点
1.图片加载与下载:通过URL地址加载或下载图片
2.从远程服务器请求资源
3.数据库内置功能(Oracle,MongoDB, MSSQL, PostgreSQL, CouchDB)
4.WebMail收取其他邮箱邮件
5.文件处理,编码处理,属性信息处理(FFmpeg、ImageMagick、DOCX、PDF、XML处理器)

危害性
1.内网扫描,泄露内网拓扑
2.绕过防火墙后,内网测试环境及开发环境安全级别较低,可被进一步攻击,导致内网沦陷
3.内网服务指纹识别与相应服务攻击
如果内网中存在redis/Memcache等服务且存在已知的漏洞,可以进行识别并攻击,进而获取内网主机权限
4.内网资源未授权访问
数据泄露(本地任意文件读取,使用file:///协议读取本地文件)
5.DoS拒绝服务风险

SSRF 防御
一、代码防御(严格按照公司的内部代码规范进行代码的编写)
检测请求URL流程
a.解析目标URL,获取其Host
b.解析Host,获取Host指向的IP地址
c.检查IP地址是否为合法IP
d.请求URL
e.如果有跳转,取出跳转URL,重新执行步骤a

业务逻辑与非常规漏洞原理和利用_第1张图片

SSRF 案例
Discuz论坛漏洞,主要是dfsockopen函数的底层实现



XXE漏洞原理与利用

1.什么是XXE
XXE(XML External Entity),就是XML外部实体注入攻击,漏洞绝对不安全的外部实体数据
进行处理时引发的安全问题

2.XML和DTD的关系
XML是一种可扩展标记语言,就是自定义标签名字
DTD(Document Type Definition)就是每一个HTML开头就会写的。
DTD就是文档类型定义,是一种XML约束的模式
如:

3.XXE漏洞原理
在定义xml中,可以加载任意外部文件

4.XXE漏洞的类型与危害
通过外部实体引用,可以获取任意文件内容
递归调用,占用大量服务器资源
远程代码执行

5.XXE漏洞存在的意义
1.数据存储
2.数据传输
3.数据共享

XXE漏洞发现小结
1.Service是Xfire,Xfire是Java的WebServer引擎
2.明显的XML作为内容的输入点的
3.某些以JSON格式的Request

https://www.jianshu.com/p/77f2181587a4

非常好的演示教程
https://www.freebuf.com/articles/web/177979.html

解决方案:
上面讨论的主要问题就是XML解析器解析了用户发送的不可信数据。
然而,要去校验DTD(document type definition)中SYSTEM标识符定义的数据,
并不容易,也不大可能。大部分的XML解析器默认对于XXE攻击是脆弱的。
因此,最好的解决办法就是配置XML处理器去使用本地静态的DTD,
不允许XML中含有任何自己声明的DTD。

实用工具:
https://requestb.in/
https://hookbin.com/

你可能感兴趣的:(Web,安全)