前言
想挖掘src拒绝服务类型的漏洞,搜索了一圈社区相关文章较少,这里根据自己的一些实战案例归纳思路来抛砖引玉,希望能对各位师傅有所帮助!
从黑盒视角搭配实际场景,说明如何具体操作能够快速的挖掘拒绝服务漏洞。
判断拒绝服务攻击成功:
修改数据包后观察返回包的响应时间,若多次修改响应时间依次增大即有可能存在拒绝服务漏洞。
值得注意的是:测试拒绝服务漏洞时一定不要一下子将参数调得很大,有的系统比较脆弱,可能会将服务器打崩,而src中明确规定不允许对业务产生影响,若打崩服务器会造成不可预知的后果,需谨慎对待。甚至此类漏洞可以只当作学习/在平时内部项目中挖掘,企业src中请谨慎。
1、查询时间更改导致的拒绝服务
具体操作:抓包将两者时间调大,例如开始时间调为1000-6-1,结束时间调整为9000-6-1,看返回包的响应时间即可判断。
漏洞原因:后端逐天/逐次查询时间。
2、修改尺寸大小造成拒绝服务
最常见的图形二维码的长宽可控(例如请求包中携带width、length)
若请求包中未携带也可以自己尝试构造:&width=1000&length=1000
实战案例:
点击验证码并进行抓包
将长宽高调大,可以看到系统响应时间随之变长。
漏洞原因:后端接收前端传来的长宽来生成无限大的二维码。
3、退出登录处存在的拒绝服务
例如如下请求包:
POST /api/xxx/login/out HTTP/1.1
Host: xxx.xxx.xxx.xxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
Accept: application/json, text/plain, /
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/json
Origin: https://xxx.xxx.xxx.xxx
Connection: close
Referer: https://xxx.xxx.xxx.xxx/resources
{"userId":"1"}
漏洞原因:没有经过token校验,利用userid来识别用户,那么我们就可以直接遍历userid,让其他用户无法登录系统,从而达到影响业务
4、查询处存在拒绝服务
举个例子说明(有授权的内部项目,非src)
默认请求接口:
http://xxx/query?current=1&size=10&title=&type=&read=&r=1695628867371
将参数调大进行测试:
http://xxx/query?current=1000&size=1000000&title=&type=10000000&read=&r=1695628867371
然后发包,发现服务器的回显时间变得很长,达到了46337ms
此时再配合多线程就可以对服务器造成拒绝服务攻击致使服务器瘫痪,对所有用户的使用造成影响
漏洞原因:后端直接接收了前端要查询的数量然后无限去查询数据,此时就算数据库没有数据也会消耗大量计算机资源。(这种地方就纯粹是运气了,我也就碰到过一次)
5、忘记密码处恶意锁定他人账户
对于不同行业有不同的特殊拒绝服务场景。
例如:某些系统忘记密码处错误多次会将用户永久锁定,此时若再配合用户名枚举漏洞便可批量永久锁定用户,这样利用链就完整了,永久锁定的情况危害应该就够了,锁定一段时间就自动解锁估计不行。
6、特殊功能点的前台拒绝服务
主要针对特殊系统,思维要发散。
例如:机顶盒系统重启/恢复出厂功能存在未授权访问漏洞,这时未授权+系统重启无限循环就造成了一个前台拒绝服务,危害一下子就上来了。
此处没找到截图,主要是分享思路。
7、Zip炸弹--解压功能处的dos
前提条件:某些功能点后端会对上传的文件进行解压并且可以递归解压。
zbsm下载地址:
https://www.bamsoftware.com/hacks/zipbomb/zbsm.zip
直接上传zip炸弹观察服务器反应,若服务器很久没返回结果或者变很卡顿,就说明造成拒绝服务。(此思路存在风险性)
漏洞原因:解压zbxl.zip炸弹以后会出现16个压缩包,每个压缩包又包含16个,如此循环5次,最后得到16的5次方个文件,也就是1048576个文件,这一百多万个最终文件,每个大小为4.3GB。
8、小程序登录处逻辑缺陷导致的拒绝服务
这里找不到报告了就简述下思路。
某个小程序登录是要手机号+密码。测试了很久没找到漏洞,然后借朋友手机登录我的账户(账户是登录状态),换个手机登录时不小心输错了密码,然后点击登录后发现原本手机登录态的账户被强制退出了。
经过测试发现当输错密码发送请求包时,会强制账户退出登录。这样用bp一直跑就可以让此账户永远无法登录,一个奇怪的拒绝服务出现了。
漏洞原因:奇怪的代码问题。
9、退出接口配合csrf导致的拒绝服务
头像url可控,更改头像地址成退出接口,在评论区发表评论(任何和用户有交互且显示头像的地方),导致csrf其他人退出登录。