.1XPath注入破解介紹
電腦網(wǎng)頁通過XPath注入,攻擊者利用Web應(yīng)用對用戶提交的參數(shù)過濾不嚴(yán)的漏洞破解,提交經(jīng)過構(gòu)造的參數(shù),這些參數(shù)能夠被注入到電腦網(wǎng)頁通過XPath注入查詢語句中dnf,獲得權(quán)限信息的訪問權(quán)并在此基礎(chǔ)上更改這些信息。適用于使用XML文檔存儲數(shù)據(jù)的Web應(yīng)用系統(tǒng)。和SQL注入非常相似,區(qū)別在于SQL注入是用戶的輸入被注入到SQL語句中,而電腦網(wǎng)頁通過XPath注入是用戶的輸入注入到XPath查詢語句中。
先來看一個簡單的例子,下圖是登錄頁面:電腦網(wǎng)頁通過XPath注入
輸入登錄信息:
電腦網(wǎng)頁通過XPath注入
結(jié)果:
電腦網(wǎng)頁通過XPath注入
電腦網(wǎng)頁通過XPath注入
這時(shí)返回的結(jié)果包含了很多敏感的信息,可以判斷該應(yīng)用采用XML存儲用戶認(rèn)證信息。
為便于分析,在服務(wù)器端將查詢語句輸出到用戶的瀏覽器。
在用戶名或密碼處輸入:999'] | * | user[@role='admin ,另一個隨便輸入。
電腦網(wǎng)頁通過XPath注入
電腦網(wǎng)頁通過XPath注入
結(jié)果:
電腦網(wǎng)頁通過XPath注入
電腦網(wǎng)頁通過XPath注入
上圖中畫紅框處即為XPath查詢語句,可以看到,剛才輸入的 999'] | * | user[@role='admin 已經(jīng)成功的注入進(jìn)去了!
現(xiàn)在來看看服務(wù)器端是如何處理的,index.asp文件內(nèi)容為:
<script language="javascript" runat="server">
Response.write("<html><body>");
uid=Request.form("uid");
pwd=Request.form("pwd");
Response.write("<form method=\"POST\">Username:<input name=\"uid\" size=\"20\"/><br>Password:<input name=\"pwd\" size=\"20\"/><input type=\"submit\" value=\"Login\"/></form>");
var xmlDom=new ActiveXObject("Microsoft.XMLDOM");
xmlDom.async="false";
xmlDom.load("/Inetpub/wwwroot/xpath/user.xml");
var auth="http://users/user[loginID/text()='"+uid+"' and password/text()='"+pwd+"']";
Response.write(auth);
var UserObj=xmlDom.selectNodes(auth);
if(UserObj.length>0) Response.write("<br><br>Login OK!");
else Response.write("Please Input Correct Username and Password!");
Response.write(UserObj.Xml);
for(var i=0;i<UserObj.length;i++)
{
Response.write("<xmp>");
Response.write(UserObj(i).xml);
Response.write("</xmp>");
}
Response.write("</body></html>");
</script>
用于認(rèn)證的user.xml內(nèi)容為:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<firstname>Ben</firstname>
<lastname>Elmore</lastname>
<loginID>abc</loginID>
<password>test123</password>
</user>
<user>
<firstname>Shlomy</firstname>
<lastname>Gantz</lastname>
<loginID>xyz</loginID>
<password>123test</password>
</user>
</users>
從index.asp中可以看到,查詢語句為:
auth="http://users/user[loginID/text()='"+uid+"' and password/text()='"+pwd+"']"
其含義是:選取這樣的user節(jié)點(diǎn),它的loginID=用戶提交的uid且password=用戶提交的pwd ;
其中uid和pwd變量未經(jīng)任何檢查和過濾,直接傳遞到查詢語句中,上圖中實(shí)際執(zhí)行的XPath語句為://users/user[loginID/text()='999' and password/text()='999'] | * | user[@role='admin'] ,含義變成:選取loginID=999且password=999的用戶 或者 選取XML所有節(jié)點(diǎn) 或者 選擇role屬性(如果有)為admin的用戶。該例中邏輯運(yùn)算的結(jié)果是選取XML所有節(jié)點(diǎn),從而導(dǎo)致XPath注入的發(fā)生。
弈安傳媒科技微課堂,每天分享財(cái)經(jīng)資訊,計(jì)算機(jī)技術(shù)知識,人生感悟,創(chuàng)業(yè)指導(dǎo)以及各種專業(yè)技
術(shù)知識資料學(xué)習(xí)交流.移動學(xué)習(xí)平臺、知識分享平臺。隨時(shí)隨地的學(xué)習(xí),如果你喜歡成長,這里
你不容錯過的地方.弈安傳媒科技培訓(xùn)關(guān)注:關(guān)注自己成長,分享內(nèi)容,分享自己的技術(shù),成就未
來.
[弈安傳媒科技提升自己的平臺]請關(guān)注:頭條號及公眾號 弈安傳媒科技
TML 服務(wù)器控件是服務(wù)器可理解的 HTML 標(biāo)簽。
HTML 服務(wù)器控件
ASP.NET 文件中的 HTML 元素,默認(rèn)是作為文本進(jìn)行處理的。要想讓這些元素可編程,需向 HTML 元素中添加 runat="server" 屬性。這個屬性表示,該元素將被作為服務(wù)器控件進(jìn)行處理。
注釋:所有 HTML 服務(wù)器控件必須位于帶有 runat="server" 屬性的 <form> 標(biāo)簽內(nèi)!
注釋:ASP.NET 要求所有 HTML 元素必須正確關(guān)閉和正確嵌套。
HTML 服務(wù)器控件 | 描述 |
---|---|
HtmlAnchor | 控制 <a> HTML 元素 |
HtmlButton | 控制 <button> HTML 元素 |
HtmlForm | 控制 <form> HTML 元素 |
HtmlGeneric | 控制其他未被具體的 HTML 服務(wù)器控件規(guī)定的 HTML 元素,比如 <body>、<div>、<span> 等。 |
HtmlImage | 控制 <image> HTML 元素 |
HtmlInputButton | 控制 <input type="button">、<input type="submit"> 和 <input type="reset"> HTML 元素 |
HtmlInputCheckBox | 控制 <input type="checkbox"> HTML 元素 |
HtmlInputFile | 控制 <input type="file"> HTML 元素 |
HtmlInputHidden | 控制 <input type="hidden"> HTML 元素 |
HtmlInputImage | 控制 <input type="image"> HTML 元素 |
HtmlInputRadioButton | 控制 <input type="radio"> HTML 元素 |
HtmlInputText | 控制 <input type="text"> 和 <input type="password"> HTML 元素 |
HtmlSelect | 控制 <select> HTML 元素 |
HtmlTable | 控制 <table> HTML 元素 |
HtmlTableCell | 控制 <td> 和 <th> HTML 元素 |
HtmlTableRow | 控制 <tr> HTML 元素 |
HtmlTextArea | 控制 <textarea> HTML 元素 |
務(wù)器控件是服務(wù)器可理解的標(biāo)簽。
經(jīng)典 ASP 的局限性
下面列出的代碼是從上一章中復(fù)制的:
<html>
<body bgcolor="yellow">
<center>
<h2>Hello W3CSchool.cc!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>
*請認(rèn)真填寫需求信息,我們會在24小時(shí)內(nèi)與您取得聯(lián)系。