ideacms(微信商城)sql注射漏洞

from:90sec

首先注意变量keys 跟踪函数getForm

可以看到 一些特殊的SQL字符符号都被正则过滤了  这里就好像PHP中的全局addslashes

再回到上面,注意这里

有个URLDecode

跟踪一下

这里能够对一些特殊字符进行decode 经典的URL双编码

这里是先getform 在进行decode

先将特殊字符进行过滤 在decode的 那么这里就可以利用URL双编码将特殊字符输出了 所以这里形成了注射

首先构成一下SQL语句

1

显示正常  那么开始构成EXP

由于可控点在’%%’之中 所以只能盲注  老规矩 时间盲注

成功执行 并且延迟

由于过滤了select where 单引号等 特殊字符  所以这些特殊字符都要利用双编码绕过

但是在测试过程中  不知道为什么会吃掉一部分的字符 比如:select  会变成slc

这是union select 的双URL编码 在提交后会变成这样

2

中间的字符被吃掉了。。。  经过很久的摸索  终于发现门道了

只要双URL编码x2 就会显示正常了  举个栗子

union select双URL编码是这样的

变成下面这样就会显示正常了

3

好了 既然知道了原理  那么就写个POC跑起来吧

结果如下图:

4

原文链接:,转发请注明来源!

发表评论

要发表评论,您必须先登录