01、前言
大家好,我是阿里斯,一名IT行業(yè)小白。今天分享的內(nèi)容是二次注入。二次注入很有意思,因?yàn)樗窍劝褠阂獾膕ql數(shù)據(jù)存入數(shù)據(jù)庫,然后再取出來添加到sql語句中產(chǎn)生的一種漏洞。
02、二次注入原理
點(diǎn):
網(wǎng)站在執(zhí)行查詢語句時(shí),對(duì)前端傳輸?shù)挠脩魯?shù)據(jù)進(jìn)行了轉(zhuǎn)義,導(dǎo)致惡意用戶不能在登錄或類似功能處進(jìn)行注入。然而網(wǎng)站在插入數(shù)據(jù)庫時(shí)保留了原數(shù)據(jù)或者取出時(shí)又恢復(fù)了原數(shù)據(jù)的樣子。
第二點(diǎn):
網(wǎng)站在取出數(shù)據(jù)時(shí)沒有考慮安全問題直接將數(shù)據(jù)添加到SQL語句中,結(jié)果導(dǎo)致注入。
03、二次注入邏輯分析&簡單步驟
1、當(dāng)我們使用引號(hào)以及注釋在登錄處進(jìn)行登錄時(shí),引號(hào)被轉(zhuǎn)義,不能閉合網(wǎng)站后臺(tái)SQL語句中的引號(hào),或者因?yàn)槠渌蛩貙?dǎo)致不能在這里注入。
2、注冊(cè)點(diǎn)注入使用用戶admin'---,注冊(cè)成功,并能正常登錄,并且數(shù)據(jù)沒用發(fā)生變化。
3、修改admin'---的密碼,修改成功
4、登錄admin,使用剛剛admin'---修改后的密碼
04、靶機(jī)測(cè)試
1、在登錄處曾經(jīng)各種嘗試,沒能注入成功
2、注冊(cè)一個(gè)用戶admin'---,密碼為123456
3、使用admin'---登錄
4、因?yàn)槭前袡C(jī),下面直接就是修改密碼,我們直接修改密碼,把a(bǔ)dmin'---的密碼改為123456789
5、直接登錄admin,使用admin'---的新密碼成功!
05、結(jié)語
通過上面的測(cè)試大家對(duì)二次注入的威力應(yīng)該有所感知,我們偉大的開發(fā)者還是應(yīng)該秉承一個(gè)核心原理:所有來自外界的數(shù)據(jù)都是不可靠的,不管是新來的,還是已經(jīng)存儲(chǔ)在數(shù)據(jù)庫的數(shù)據(jù)。