SQL注入-二阶注入(十)
實(shí)驗(yàn)?zāi)康?br /> 普及二階注入的原理及發(fā)生的場(chǎng)景,了解二階注入與普通注入的區(qū)別,熟悉二階注入的方法和過(guò)程。
實(shí)驗(yàn)環(huán)境
攻擊機(jī):Pentest-Atk
(1)操作系統(tǒng):Windows10
(2)安裝的應(yīng)用軟件:sqlmap 、Burpsuite 、FireFox瀏覽器及其插件Hackbar 、 等
(3)登錄賬號(hào)密碼:操作系統(tǒng)帳號(hào)Administrator,密碼Sangfor!7890
靶機(jī):A-SQLi-Labs
(1)操作系統(tǒng):本機(jī)(建議用虛擬機(jī))不過(guò)我太懶了[]~( ̄▽ ̄)~*
(2)安裝的應(yīng)用軟件:Apache、MySQL(MariaDB)、PHP:DVWA、SQLi-Labs、
webug3.0環(huán)境搭建
(3)登錄賬號(hào)密碼:操作系統(tǒng)帳號(hào)root,密碼Sangfor!7890
實(shí)驗(yàn)原理
所謂二階注入(又稱存儲(chǔ)型注入)是指已存儲(chǔ)(數(shù)據(jù)庫(kù)、文件)的用戶輸入被讀取后再次進(jìn)入到SQL查詢語(yǔ)句中導(dǎo)致的注入。
二階注入與普通注入的區(qū)別:
(1)普通SQL注入:發(fā)生在一個(gè)HTTP請(qǐng)求和響應(yīng)中,對(duì)系統(tǒng)的攻擊是立即執(zhí)行的:1)攻擊者在http請(qǐng)求中提交非法輸入:2)應(yīng)用程序處理非法輸入,使用非法輸入構(gòu)造SQL語(yǔ)句:3)在攻擊過(guò)程中向攻擊者返回結(jié)果。
(2)二階SQL注入:1)攻擊者在http請(qǐng)求中提交某種經(jīng)過(guò)構(gòu)思的輸入:2)應(yīng)用程序存儲(chǔ)該惡意輸入(通常保存在數(shù)據(jù)庫(kù)中)以便后面使用并響應(yīng)請(qǐng)求:3)攻擊者提交第二次(不同的)http請(qǐng)求:4)為處理第二次http請(qǐng)求,程序會(huì)檢索存儲(chǔ)在數(shù)據(jù)庫(kù)中的惡意輸入并進(jìn)行處理,從而導(dǎo)致攻擊者構(gòu)造的SQL查詢被執(zhí)行:5)如果攻擊成功,在第二次請(qǐng)求響應(yīng)中向攻擊者返回查詢結(jié)果。
實(shí)驗(yàn)步驟
本實(shí)驗(yàn)的目標(biāo)是:以SQLi-Labs網(wǎng)站的Less-24為入口,利用二階注入的方式
將目標(biāo)用戶名admin的密碼更改成指定的aabbcc。
1.訪問(wèn)SQLi-Labs網(wǎng)站
在攻擊機(jī)Pentest-Atk打開FireFox瀏覽器,并訪問(wèn)粑機(jī)A-SQLi-Labs上的
SQLi-Labs網(wǎng)站Less-24。訪問(wèn)的URL為:
2.注冊(cè)新用戶
在Less-24的初始頁(yè)面點(diǎn)擊右下方的“New...re?”(我網(wǎng)頁(yè)自動(dòng)翻譯懶得關(guān)了)
?在用戶注冊(cè)頁(yè)面新建用戶admin#,并設(shè)置其登錄密碼(123456)
新用戶注冊(cè)成功后將自動(dòng)跳轉(zhuǎn)至Less-24的初始頁(yè)面。
3.利用新用戶admin#登錄并修改密碼
利用剛剛注冊(cè)的新用戶admin'#登錄
登錄后出現(xiàn)可修改密碼的認(rèn)證界面,在此處將admin#的密碼123456修改為
aabbcc,修改完成后點(diǎn)擊Reset按鈕確認(rèn)
修改成功提示
4.用用戶名admin、密碼aabbcc嘗試登錄網(wǎng)站
(1)重新訪問(wèn)SQLi-Labs網(wǎng)站Less-24,訪問(wèn)的URL為
此時(shí)admin#用戶仍然處于登錄狀態(tài),點(diǎn)擊Logout按鈕退出登錄,會(huì)跳轉(zhuǎn)至Less-24的初始頁(yè)面。
(2)在Less-24的初始頁(yè)面,利用用戶名admin、密碼aabbcc登錄:
實(shí)驗(yàn)至此結(jié)束。
思考一下:為什么明明執(zhí)行了修改 admin#用戶密碼的操作,實(shí)際上卻是修改了admin用戶的密碼呢?
從原理上來(lái)看,修改 admin#的密碼為 aabbcc時(shí),此時(shí)后端數(shù)據(jù)庫(kù)執(zhí)行的命令
UPDATE users SET PASSWORD='aabbcc' where username='admin'#' andpassword='123456’;
#表示注釋,上述語(yǔ)句即等價(jià)于:
UPDATE users SET PASSWORD='aabbcc where username= 'admin'
所以這條語(yǔ)句執(zhí)行的最終效果是將用戶 admin的密碼修改為了 aabbcc
SOL注入——HTTP頭部注入(2)(七)_Gjqhs的博客-CSDN博客
SOL注入——基干聯(lián)合查詢的POST注入(四)_Gjqhs的博客-CSDN博客
SQL注入 ——sql數(shù)據(jù)庫(kù)操作基礎(chǔ)(一)_Gjqhs的博客-CSDN博客
...
更多包括而不限于SQL注入的文章,關(guān)注我全部帶走吧(≧?≦)ノ
總結(jié)
以上是生活随笔為你收集整理的SQL注入-二阶注入(十)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SQL注入——基于时间的盲注(九)
- 下一篇: SQL注入-SQLMAP基础使用(十二)