php二次注入:
本次主要了解什麼是二次注入:
概念:攻擊者構造了惡意的數據存儲到數據庫後,惡意數據被讀取並進入到sql語句中執行,因此判定爲二次注入。
主要分爲兩個步驟:
第一步:插入惡意數據:進行數據庫插入時,對其中的特殊字符進行轉義處理,在寫入數據庫的時候又保留了原來的數據。
第二步:引用惡意數據,程序默認認爲已經存入到數據庫的數據是安全的,直接從數據庫中取出惡意數據,沒有進行下一步的檢驗處理。
例子:DZ 1.5
1.在論壇留言板中填寫留言:aaaaaaaaaaaa’
添加成功
2.在修改中隨便輸入內容,報錯即可判定爲二次注入,在url地址中修改mod=misc&action=postappend&tie=[當前tid]&pid=[當前pid]
進入到獨立的修改頁面,因爲該頁面沒有對數據進行任何處理,可直接引用第1步中的數據帶入到數據庫執行。
具體操作:
1.查數據庫名:留言:’,subject=(/*!select*/concat(tabasese()),comment=’)
提交
2.進入獨立編輯頁面後直接提交,返回到留言板可看到數據庫名爲discuz,因此在第1步中輸入的sql語句被執行了。
3.重複1步替換sql語句查出數據
4.重複2步驟,之後一直重複1,2步驟直到查出後臺賬號密碼爲止