【渗透测试】一次运气很好的文件上传
文件上傳
發(fā)現(xiàn)源代碼泄露
打開自己珍藏已久的辣雞字典,掃描發(fā)現(xiàn)存在bin.zip信息泄露,嘗試進行代碼審計
文件位置:SimpleDataPlatform.SimpleDataPlatform.fileUpload
找到ProccessRequest接收請求,可以看到獲取了一堆參數(shù)后(初始化),后進入了HandleFiles方法,
跟進HandleFiles進行處理,如果dateType=ZBJHSB時,就繼續(xù)處理請求,dateType為GET傳參
路徑為/Uploads/SetData/ZBJHSB,str名稱為時間戳,且str2(后綴)沒有進行限制就進行保存,
OK,這應該是一個妥妥的任意文件上傳了,只要有返回值,那么這個站就沒了。但是很不湊巧的是,他沒有返回值。
由于方法fileUpload,瞎猜文件名為
加上自己現(xiàn)有的字典爆破了一波,成功找到了返回了200的文件名http://xxx.com:6039/FileUploads.ashx
直接構(gòu)造上傳表單,這里Form里的name字段應該是沒有具體設置的(代碼里沒有找到),發(fā)包后返回200,可能真的傳上去了吧?【網(wǎng)絡安全學習資料·攻略】
POST /FileUploads.ashx?DataType=ZBJHSB HTTP/1.1 Host: xxx.cn:6039 Content-Length: 195 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 X-Requested-With: XMLHttpRequest Content-Type: multipart/form-data; boundary=----WebKitFormBoundarySVkAJfiOUeRxhsu8 Accept: */* Connection: close------WebKitFormBoundarySVkAJfiOUeRxhsu8 Content-Disposition: form-data; name="File"; filename="1.aspx" Content-Type: image/jpeg11111111111 ------WebKitFormBoundarySVkAJfiOUeRxhsu8--
之前我們看到使用的格式為yyyyMMddHHmmssfff作為文件名,然后直接截取后綴作為ext,而且我們有了具體的路徑,那么只需要爆破時間戳文件名即可拿下該站點,以前還沒有這么做過,不妨試試。
爆破時間戳
使用Powershell生成時間戳,然后此時在Burp按下go發(fā)送請求包
powershell -c Get-Date -Format yyyyMMddHHmmssfff
再爆破后面5位數(shù)字,也就是ssfff(由于電腦上的時間不一定準,有時候甚至可能要爆破6位)
不知道等了多久
運氣真好,后面的就不多說了。
站點2:文件上傳
找到上傳接口
打開網(wǎng)站http://xxxx:880/zwwpt/#/就發(fā)現(xiàn)存在一個webpack debug模式未關閉,查看JS發(fā)現(xiàn)上傳接口
http://xxxxxx:880/zwwpt/data/menuData.json
發(fā)現(xiàn)了一個隱藏的html頁面,這個頁面在前端的功能點是點不到的。
http://xxxxxx:880/jtwxt/xgjt/security_risk.html
點擊附件上傳抓包
發(fā)現(xiàn)存在waf,當攔截住waf的時候,會返回404,大概數(shù)據(jù)包就是這樣(省略了一些其他的無用參數(shù))【網(wǎng)絡安全學習資料·攻略】
繞過
修改HOST:
xxxx.cn:880為xxxx.cn或xxx.cn:8888(不為880端口應該都可以)
成功饒過waf,上傳成功,但是沒有返回路徑
尋找路徑
但是之前爆破目錄找到了/uploads/目錄和/image/目錄
而且發(fā)現(xiàn)html名為security_risk.html,構(gòu)造路徑securityrisk、security_risk、security等,然后跑了一下目錄【網(wǎng)絡安全學習資料·攻略】
最終發(fā)現(xiàn)存在 http://xxx.cn:880/uploads/securityrisk/ 這個目錄
猜測可能上傳的文件很有可能在該目錄下,不然沒必要起這么像的名字吧,而且還叫upload,于是嘗試直接訪問剛剛的文件名1.txt,返回是404
http://xxx.cn:880/uploads/securityrisk/1.txt
爆破時間戳
根據(jù)自己微不足道的經(jīng)驗,dot.net架構(gòu)的網(wǎng)站喜歡使用時間戳來命名,因此構(gòu)造當前時間戳,嘗試爆破上傳時間附近的時間點的時間戳值。
時間戳一般為10位或者13位
文件上傳后強制轉(zhuǎn)換的文件名命名規(guī)律一般有
1、隨機字符串
xxx-xxx-xxx–xxx.jpg 格式這種類型我們沒法猜,如果沒目錄遍歷或者返回路徑,那么基本上只能放棄
2、時間戳類型
直接以時間戳+.jpg為文件名(如1631868676.jpg) 時間戳+00001 時間戳+0001 時間戳+001 時間戳+01 時間戳3、yymmddHHmm類型
這種類型一般以20210917xxxxx這種格式,xxxx應該為毫秒級別的數(shù)字,我們可以直接使用Burp進行爆破跑,4——6位還是可能跑的出來的,再多就跑不出來了。
powershell -c Get-Date -Format yyyyMMddHHmm
經(jīng)過大量爆破后,發(fā)現(xiàn)了上傳的文本文件,格式內(nèi)容為
yyyyMMddHHmmss+0001
成功找到路徑后,后面的就無需多言了
至此,兩個站都拿到了權(quán)限,夢醒了。
最后
關注私我獲取2021最新【網(wǎng)絡安全學習資料·攻略】
總結(jié)
以上是生活随笔為你收集整理的【渗透测试】一次运气很好的文件上传的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【安全漏洞】一次前台任意文件下载漏洞挖掘
- 下一篇: 渗透测试中的一波三折