摘要:?jiǎn)栴}簡(jiǎn)述在用做注入檢測(cè)時(shí),遇到一個(gè)小小的問題猜出來的列數(shù)跟數(shù)據(jù)庫表中的列數(shù)不匹配。在未了解之前,我一直想當(dāng)然的以為就是獲取數(shù)據(jù)庫表中的列數(shù),在兩次實(shí)際檢測(cè)過程中,確實(shí)發(fā)現(xiàn)這個(gè)是我所不能理解的。所以猜解得到的列數(shù)還跟在后端的邏輯有關(guān)。
環(huán)境: xampp-win32-5.6.3-0-VC11 dvwa-1.0.8前言
有幸在網(wǎng)上搜到一款非常不錯(cuò)的滲透測(cè)試演練系統(tǒng) — dvwa ,作為學(xué)習(xí),演練真的非常強(qiáng)大啊! 在學(xué)習(xí)的過程中也遇到一些問題,所以這里做學(xué)習(xí)分享記錄。
問題簡(jiǎn)述在用dvwa做sql 注入檢測(cè)時(shí),遇到一個(gè)小小的問題 — order by 猜出來的列數(shù)跟數(shù)據(jù)庫表中的列數(shù)不匹配。(注入時(shí)猜出來兩個(gè)字段,但是實(shí)際數(shù)據(jù)庫的表中卻有6個(gè)字段)。在未了解之前,我一直想當(dāng)然的以為 order by就是獲取數(shù)據(jù)庫表中的列數(shù),在兩次實(shí)際檢測(cè)過程中,確實(shí)發(fā)現(xiàn)這個(gè)是我所不能理解的。
問題詳情在發(fā)現(xiàn)注入點(diǎn)后,進(jìn)行猜列數(shù)時(shí),用了如下語句:
故此我們猜出有兩列,但是我去數(shù)據(jù)庫查看相應(yīng)的表時(shí),發(fā)現(xiàn)字段比這個(gè)多
搞定問題在別人的指導(dǎo)下作了如下分析:
將猜列數(shù)語句直接在sql數(shù)據(jù)庫執(zhí)行,發(fā)現(xiàn)他們的結(jié)果跟在web頁面注入時(shí)都是不一致的
而在數(shù)據(jù)庫執(zhí)行得到的6列則是跟數(shù)據(jù)庫匹配的,難道order by 猜的列數(shù)有問題?
最后去注入代碼看到源碼一下豁然開朗:
$getid = "SELECT first_name, last_name FROM users WHERE user_id = "$id"";
你也看到了,我在mysql執(zhí)行的語句是 select * ,而 注入代碼則是 select first_name, last_name。
小結(jié)網(wǎng)上大多資料說的order by來猜列數(shù),實(shí)際是猜查詢出的列數(shù),而不是表實(shí)際的列數(shù)。order by本來就是指定的結(jié)果如何order,針對(duì)的就是查詢結(jié)果而不是原表。所以order by猜解得到的列數(shù)還跟在后端的邏輯有關(guān)。
實(shí)用這個(gè)有什么用?我用一個(gè)例子來簡(jiǎn)述。
在注入時(shí),用order by 猜出結(jié)果集有兩個(gè)字段,且兩字段名分別為:user pwd (實(shí)際數(shù)據(jù)庫表中還有id一字段)
在爆字段值時(shí):當(dāng)注入語句這樣時(shí)可能什么也得不到,甚至直接報(bào)錯(cuò):
代碼:
and 1=2 union select user, 2 from admin
error:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /usr/local/webroot/cw/about/index.php on line 95
這時(shí)我們需要對(duì)注入語句進(jìn)行轉(zhuǎn)換下:
and 1=2 union select concat(id,0x232323,user,0x232323,pwd),2 from admin
這樣就能到兩字段的值了
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/31928.html
摘要:當(dāng)后面的數(shù)字大于表的列數(shù)時(shí)就會(huì)報(bào)錯(cuò)訪問頁面正常,訪問頁面異常所以這個(gè)表有個(gè)字段。聯(lián)合查詢獲取信息運(yùn)算符可以將兩個(gè)或兩個(gè)以上語句的查詢結(jié)果集合合并成一個(gè)結(jié)果集合顯示,即執(zhí)行聯(lián)合查詢。 sqli-labs靶機(jī)搭建 docker部署: docker pull acgpiano/sqli-labs docker run -d -p 80:80 acgpiano/sqli-labs 訪問127...
閱讀 1960·2023-04-26 02:14
閱讀 3860·2021-11-23 09:51
閱讀 1470·2021-10-13 09:39
閱讀 4052·2021-09-24 10:36
閱讀 3073·2021-09-22 15:55
閱讀 3597·2019-08-30 12:57
閱讀 2095·2019-08-29 15:30
閱讀 2049·2019-08-29 13:19