标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-2796] 作者: shanyuhe 发表于: [2020-12-11]
本文共 [424] 位读者顶过
看到个url于是就有了新的故事
[出自:jiwo.org]
漏洞思路1: 先访问下载的文件url是否在网站目录如是可尝试使用iis默认配置的web.config作为尝试 /get/?d=now&f=/web.config
这里尝试了一下是不是必须得upload/down/目录下面的文件才能下载
漏洞思路2: 看到报错是:文件不存在,那说明可以下载/uploads/目录下的文件,和下载文件出错的报错不一样于是就尝试绕过,绕过思路利用跨目录../
漏洞思路3: 好家伙,这是第三个报错了:下载文件路径出错 利用windows特性 支持..\来跨越目录 时长10年划水经验的我,这是../的原因,实践出真相。
绕过方法如下
过滤../ 白名单upload 利用: windows特性支持 ..\来跨越目录 https://www.xxxx.com/get/?d=now&f=/uploads/..\web.config
打开配置文件
下载数据库发现报错
进行url编码绕过 /data/%23%25%32%61ba76f16b10966d9219b4c972881e89.mdb
下载代码回来看黑盒测试的原理
代码:
If instr(request.ServerVariables("HTTP_REFERER"),request.ServerVariables("HTTP_HOST"))>0 or instr(FileUrl,"/uploads/")=1 Then
白盒代码可以看到,对uploads目录做了白名单 If instr(request.ServerVariables("HTTP_REFERER"),request.ServerVariables("HTTP_HOST"))>0 or instr(FileUrl,"/uploads/")=1 Then
这里绕过思路使用../来绕过
if instr(FileUrl,"./")>1 Then
然后发现过滤了./。使用windows特性支持..\来跨目录下载 最终白盒exp: /uploads/..\web.config
|