已知此版本thinkcmf采用TP3.1.3
根据采用的TP版本,已知在TP3低版本中存在一些漏洞
其中where()可支持表达式查询
我们利用数组传参的方式,可以将表达式带入SQL语句
username[0]=in (1))— a&password=admin
那么这种情况,只要传入where($where)的参数我们可控,那就可以注入
使用seay全局搜索where($
找到一处参数可控的点,是application\Admin\Action\PublicAction.class.php下的
dologin方法,就是后台登录验证处
http://192.168.1.5/index.php?g=admin&m=public&a=dologin
那么我们可以构造
username[0]=in (1))or sleep(5)— a&password=admin&verify=sdas
来验证注入
可以看到参数带入了SQL查询
响应时间5s,可以时间盲注。
