一個比較好玩的WebShell上傳檢測繞過案例
*本文作者:a.tm.k,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載
背景介紹
一次普通的 WEB 測試過程,遇到了一個上傳點,可以上傳固定圖片格式但是可以任意名字+任意後綴名的文件。
環境
IIS 7.5/ ASP.NET - Windos SERVER 2008 R2
過程
0x1 測試
看起來懟這個好像沒有任何技術含量,直接扔圖片馬就是了。
但是呢,一般的圖片馬是不行的,回顧一下我們經常用也是流傳最廣的做圖片馬的方式。
1: 直接在 shell 頭加 gif89a
2: 使用 Copy 大法
3: 沒了
相信大多數人都是用的都是以上的幾種方式,
平常來說圖片馬不能用都是直接放棄的這個點的。
那麼這裡介紹另外一種,拓展信息插一句話。
先說說上傳點的檢測機制:程序採用 GDI+ 插件將用戶上傳的圖片處理後保存。
作者的腦子很簡單,當然這個思路也沒什麼錯,畢竟只要是正常的圖片文件沒必要攔截。
而作者寫的這個程序也的確很牛逼,copy 大法是完全失效的。
經過 copy 的圖片馬在程序過濾後都被剔除乾淨了。
可以看到用 Copy 打發做出來的被過濾的啥也不剩了,嘗試了各種混合模式都不行。
所以看起來理論上這玩意能攔截除了圖片本身的信息之外的任何額外附加信息。
0x2 繞過
但是呢, 程序作者好像漏了什麼,圖片本身的信息也是大有作為的。
前面提到的拓展信息插一句話,右鍵屬性然後添加就行。
而這種手段,基本上四肢健全不需要像我一樣定期去看獸醫的一看就會,不需要寫代碼也不需要額外的工具。
用 BurpSuite 懟上去。
總結:
不要相信用戶輸入的任何信息,也不要對自己的編碼水平有太高的期望。
在本次案例中,首先是未對上傳文件的名稱做任何校驗就寫入硬碟這明顯是不可取的。
其次就是對 GDI+ 插件的過分信任,並沒有對擴展信息內容做校驗便立即放行了。
更加厲害的是,通過查詢伺服器進程發現,伺服器是裸奔狀態。
*本文作者:a.tm.k,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載
※老闆說安全很重要,但是沒錢咋辦?
※挖洞經驗 | 看我如何發現Google的第三方應用服務漏洞
※Splashdata發布2017年度最不安全密碼報告,看看你的密碼安全嗎?
※年終盤點 | 2017臨近尾聲,你的年度「安全關鍵詞」是什麼?
※【今晚見】揭秘生物識別驗證的 AI 攻防 | AI安全嘉年華·公開課
TAG:FreeBuf |