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