巧妙利用参数污染进行sql注入

admin 2025年5月30日13:52:14评论7 views字数 788阅读2分37秒阅读模式

过程

前端的功能点是这样
巧妙利用参数污染进行sql注入
点击排序的数据包如下
巧妙利用参数污染进行sql注入
orderByField参数值为30正常,为31报错,列数还挺多
巧妙利用参数污染进行sql注入

巧妙利用参数污染进行sql注入

这里使用了一些函数都不能进行注入,怎么构造结果都是返回正常页面

巧妙利用参数污染进行sql注入

这里试下参数污染,当第二个参数为31回显异常,这说明第二个参数的值是被传到后端了

巧妙利用参数污染进行sql注入

当第一个参数为31回显异常,这说明第一个参数的值也被传到后端了

巧妙利用参数污染进行sql注入
这里验证一下,当两个参数都为30回显正常,这说明多个参数值都会被传进去了
巧妙利用参数污染进行sql注入

这就说明他后面是用逗号连接的,就像这样

xxx order by 30,30 desc xxxx

然后正常使用if语句会服务异常

巧妙利用参数污染进行sql注入

然后将逗号全都换成下面这样竟然返回正常了
巧妙利用参数污染进行sql注入

这里我为了测试select能不能用,于是用的下面这个语句构造报错

if(1=1,(select 1 union select 2),1)
巧妙利用参数污染进行sql注入

也是我测试经常用的语句,只有两个数相等才返回正常,其他大于或小于就会报错

巧妙利用参数污染进行sql注入

当1=2返回了正常,没想到select能用

巧妙利用参数污染进行sql注入
这里剩下就简单多了,正常替换逗号即可,不过多叙述了
判断user长度if(length(user())=1,(select 1 union select 2),1)注数据库if(ascii(substring(database(),1,1))=1,(select 1 union select 2),1)注表if(ascii(substring((select table_name from information_schema.tables where table_schema='数据库名字' limit 0,1),1,1))=1,(select 1 union select 2),1)
巧妙利用参数污染进行sql注入

如下,注数据库中第一张表名字的第一个字符,稍微变换下大小写即可

巧妙利用参数污染进行sql注入

剩余同理,后续找了半天也没找到绝对路径,暂时放弃写shell

网安交流群

巧妙利用参数污染进行sql注入

原文始发于微信公众号(起凡安全):巧妙利用参数污染进行sql注入

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

发表评论

匿名网友 填写信息