版本 ThinkSAAS 2.32 目前最新版。
app\group\action\do.php 281行
post变量全局做了转义,$content = tsClean($_POST['content']);这行去除了转义,导致可绕过单引号限制。
tsClean除去转义后做了一些过滤,但不影响注入。
$_POST['content']变成$content并带入sql语句。
复现过程:
新建小组,发布帖子,访问http://127.0.0.1/thinksaas/index.php?app=group&ac=topic&id=1 (id为小组帖子的id)
接着发送如下请求:
最后会执行这样的sql语句。
因为是insert类型的注入,我通过写入3条数据来实现利用。
数据包中token可以在http://127.0.0.1/thinksaas/index.php?app=group&ac=topic&id=1获取到。准确点说,post数据应该是这样:
发送注入请求:
访问http://127.0.0.1/thinksaas/index.php?app=group&ac=topic&id=1查看注入结果,出现了3条数据。