记一次真实渗透排序处发现的SQL注入学习

admin 2022年8月27日23:31:01安全文章评论4 views1458字阅读4分51秒阅读模式

为啥叫真实渗透的sql注入“学习”呢,嘿嘿,自然不是本人挖到的,是同事大佬挖到的,本着学习的态度,去复现了下,结果遇到些问题,才有了这篇文章。

复现失败


大佬发现的这个sql注入非常快,另一个同事刚把站的后台管理系统弱口令给发出来几分钟,大佬就发sql注入得到数据库名的截图了。


我人麻了,太强了。我寻思那么多接口,那么多参数,是怎么那么迅速的发现问题的?带着这个疑问我去试了一下。

大佬的图是这样的。

记一次真实渗透排序处发现的SQL注入学习


我按着接口找到漏洞点。

记一次真实渗透排序处发现的SQL注入学习


我直接点击查询,然后抓包,并利用上大佬的payload,可是数据库第一个字母不是i吗,我a怎么也返回200?(试了其他的,全都返回200)

记一次真实渗透排序处发现的SQL注入学习


换个判断长度的语句,根据大佬跑出来的数据库名长度为7,我填8还是返回200,说明有问题。

记一次真实渗透排序处发现的SQL注入学习


后来发现order参数的值undefined有些奇怪,就随意更改了一下,发现返回500,但是不管是啥都返回500,看样子确实是参数的问题,猜想应该是order为某个特殊的值,才会触发SQL注入(大佬的截图刚好没有截到order参数的值),FUZZ了半天也不知道是啥,就跑去请教大佬,大佬说确实是这样,是需要让其值为asc或者desc才能触发。


asc在sql语句中起到升序作用,desc为降序。具体原理后面再总结。


重新复现

得到大佬的指示,开始重新复现,更换order值为asc,column参数加单引号果真报错。

记一次真实渗透排序处发现的SQL注入学习

输入payload,数据库名第一位a,返回500(i的话就会返回200)

记一次真实渗透排序处发现的SQL注入学习

这里忘截图了,借用一下大佬的图,数据库长度为7。返回200(其余的都会返回500)

记一次真实渗透排序处发现的SQL注入学习

发送数据包到intruder模块爆破一下

攻击类型选择第四个cluster bomb

把数据库名的位数和数据名的字母给添加一下

记一次真实渗透排序处发现的SQL注入学习

设置payload1为1-8的数字

记一次真实渗透排序处发现的SQL注入学习

设置payload为a-z的字母。

记一次真实渗透排序处发现的SQL注入学习

开始爆破,成功得到数据库名。

记一次真实渗透排序处发现的SQL注入学习


总结

后来又测试了其他参数后,发现并不存在注入,仅仅只有column参数在order为asc和desc时存在注入。又去找大佬交流了一下。大佬说这个是一个小技巧,像这种java站的,这种排序的地方都可以测一下,可能就有order by注入。


大佬解释了下大概原理:参数化会将参数值加上引号,但是order by字段不能带引号,所以很多排序功能常存在注入问题,如mybatis中预编译使用 #{} 而order by 字段使用参数化后有问题,所以开发者可能直接就使用 ${ }从而存在注入问题。本次遇到的也正是mybatis。

记一次真实渗透排序处发现的SQL注入学习

对于本次使用的payload我也解释一下:IF(substr(database (),1,1)='i',1,(select+1+union+select+2))


因为此处是order by注入,这句payload翻译过来就是:如果数据库名字的第一个字母是i,就执行1,如果不是i,就执行select 1 union select 2,又因为这个语句返回的是两行数据,在语法规范上是错误的,导致整条语句都不执行,所以报错。


这样就可根据返回码来区分,并进行快速爆破来判断出数据库名,类似于布尔盲注。

作者:clearyy原文地址:https://www.freebuf.com/articles/web/338744.html

声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权否则需自行承担,本公众号及原作者不承担相应的后果.

学习更多渗透技能!供靶场练习技能


记一次真实渗透排序处发现的SQL注入学习

扫码领白帽黑客视频资料及工具

记一次真实渗透排序处发现的SQL注入学习

原文始发于微信公众号(渗透师老A):记一次真实渗透排序处发现的SQL注入学习

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月27日23:31:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  记一次真实渗透排序处发现的SQL注入学习 http://cn-sec.com/archives/1258124.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: