记一次畅捷通任意文件读取漏洞复现发现的问题

渗透技巧 1年前 (2023) admin
457 0 0

记一次畅捷通任意文件读取漏洞复现发现的问题

前言

在一次复现畅捷通任意文件读取漏洞的过程中,发觉这个“任意文件读取”漏洞其实暗藏了大坑。通过网上检索,一大堆的文章和工具都是copy只提到文件读取。


复现过程

1.首先就是用网上 公开的的poc试一下

/tplus/SM/DTS/DownloadProxy.aspx?preload=1&Path=../../Web.Config

记一次畅捷通任意文件读取漏洞复现发现的问题

成功读取到了文件内容

记一次畅捷通任意文件读取漏洞复现发现的问题

2.然后想通过读取源代码,来分析看看漏洞的成因。通过读aspx文件读取到的文件内容如下

记一次畅捷通任意文件读取漏洞复现发现的问题

3.通过网上查阅资料了解到,畅捷通系统是asp.net开发的,代码是采用了预编译。

简单说,就是提前将源码aspx文件转换成dll文件,这些dll文件保存在bin/ 文件夹下,当程序运行时,首先会加载bin目录下的程序。

当访问aspx文件时,会被对应的.dll文件处理。代码逻辑也是存储在dll中,不论aspx文件是否存在,只要dll文件存在,特定路由的功能就能正常处理。

而文件对应路径为:abc.aspx -> /bin/abc.dll

4.进一步利用读源码读取文件,成功读取相应的dll文件

记一次畅捷通任意文件读取漏洞复现发现的问题

5.然后再次请求,去读上传接口的文件,出了大问题了。竟然报错报。

错提示:文件找不到了

记一次畅捷通任意文件读取漏洞复现发现的问题

分析源码

网上找到了畅捷通源码,直接反编译DownloadProxy.aspx对应的dll文件

记一次畅捷通任意文件读取漏洞复现发现的问题

通过源码看出代码逻辑很简单,首先是获取了Path参数,赋给变量text。

然后也没有经过任何过滤,到了最下边WriteFile()函数(向浏览器输出文件),就发生了任意文件读取。

但紧接着下一行就是  File.Delete()  ,通过字面意思也知道这是个文件删除函数。

由于Path参数可控,就能读取任何文件,但同样也会删除任何文件。

这明明就是一个 任意文件读取+删除 漏洞!


总结

对于别人的漏洞还是要自己分析复现下,copy的东西是方便省力,但效果不可控。像任意文件删除还是很危险的,在生产环境打这种漏洞,系统崩了可就麻烦了。


往期回顾

01

src漏洞挖掘浅谈

02


网络安全运营工作浅谈(一)



03


关于OPENVPN流量传输的测试及应用思考


记一次畅捷通任意文件读取漏洞复现发现的问题

雷石安全实验室

商务咨询:

0571-87031601

商务邮箱:

[email protected]


原文始发于微信公众号(雷石安全实验室):记一次畅捷通任意文件读取漏洞复现发现的问题

版权声明:admin 发表于 2023年2月24日 下午5:01。
转载请注明:记一次畅捷通任意文件读取漏洞复现发现的问题 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...