ThinkSNS SQL注射一枚(无视WAF)

 

apps/page/Lib/Action/DiyAction.class.php 192行:

取到$_POST['channel']传入getPageInfo函数。我们看看这个函数:

光看默认值就知道,第二个参数是字段名,甚至不用考虑addslashes。

我们来试试,登录后发送如下数据包:
 

02.jpg

看看mysql执行了什么语句:
 

01.jpg

图中可以看到,我们可控的部分很多,从select 后面所有内容我们都可控。没有敏感词select,所以无视WAF。

同样的方法在这个文件中还有多处,我就不一一指出。

 

来构造一个盲注。看到代码:

$databaseData ['manager']传入了checkRole函数,进去看看:

如果$this->mid(就是你的uid)在$user中,则通过,否则显示“您没有管理权限”。

所以,通过是否显示“您没有管理权限”,可以来盲注。

我的$this->mid为2。>113显示“找不到方法”:
 

03.jpg

>114显示“您没有管理员权限”:
 

04.jpg

同理,注入用户密码只要改user()为password即可。

修复方案:

过滤