记一次从AES加解密到除零报错盲注的SQL注入
背景:某客户系统存在AES加密,利用autoDecoder插件实现了自动加解密后发现了一处order by参数可控,由于系统无回显具体报错信息等信息,后续选择使用除零报错的盲注方法成功实现SQL注入。
系统数据包为请求响应加密:
前端JS逆向:
搜索关键字encrypt进行断点:
控制台打印出key和iv:
此处得到key和iv,均为同一个值,且为数组形式,转为明文:
这里用到autoDecoder插件:
测试可正常加解密
这里在burp的proxy窗口也是自动解密成明文,这里发现一个oderBys的参数并且可控
此处先换成数字判断字段数:

此处可22正常回显,23报错,初步判断此处参数可控并且存在order by注入

这里将desc换成1依旧正常回显,但明显长度不一致了,但说明了此处可控
使用exp()函数判断数据库:

这里exp(709)和exp(710)都报错,正常来说exp(709)是正常回显,说明此处不是Mysql数据库


这里exp(290)正常回显,exp(291)报错,说明该系统为Oracle数据库
因为不回显报错语句,此处只能盲注,下面使用除零盲注判断用户名长度:
Payload:1/decode(length(user),xxx,1,0) |


此处5正常返回,说明数据库用户名长度为5,至此点到为止。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 做 讓 人 远 远 聽 見 的 風!
评论