ThinkSAAS的SQL注入差不多了,剩下的就是很多越权,很多CSRF,还有几处包含漏洞了,也一起发了吧,求给力哦,来个大厂商吧!
第一处越权:
Thinksaas在编辑文章内容时,没有判断此文章的发表用户,造成任意用户可修改任意用户文章内容。
来看看编辑文章的代码,/app/article/action/edit.php
这里没有判断此文章的用户属性,只要用户登录,就能修改articleid和cateid下的任意文章内容。
漏洞证明:

用户111111发表的文章被222222用户修改了。
第二处越权:
ThinkSAAS在修改用户相册属性,以及修改相册中图片信息时存在越权操作,可修改任意用户相册以及图片信息。
app/photo/action/album.php
漏洞证明:
从代码中看出,这里没有判断相册的用户属性,导致用户可修改任意相册信息。
我们先账户111111建立一个相册:

然后我们换一个用户222222,构造如下请求:

这里的albumid就是相册的ID,修改这个ID,就能修改对应的相册信息。
此时111111用户的相册信息已被修改如下:

第三处越权:
在编辑小组基本信息时,没有判断此小组的创建用户属性,导致只通过小组id,groupid即可修改该小组的基本信息,导致越权修改他人创建的小组基本信息。
/app/group/action/do.php
第四处越权:
在小组中的帖子操作中,编辑帖子类型时存在越权:
/app/group/action/do.php:
没有判断此帖子类型所属用户属性,导致可以编辑任意用户所属的帖子类型。
第五处越权:
在小组中的帖子操作中,删除帖子类型时存在越权:
/app/group/action/do.php:
同样也没有判断帖子类型所属用户,导致删除任意用户帖子类型。
漏洞证明:
1、确定用户111111创建的小组111111的小组类型
2、然后用户222222登陆,界面上没有编辑小组111111信息的功能及权利,但我们构造编辑小组分类的请求。
3、然后发送修改小组111111帖子类型的构造请求。
4、最后,111111用户登陆查看自己的小组111111帖子类型被成功修改。
在编辑小组基本信息,删除帖子类型是也可用以上方法测试。
至于CSRF漏洞:
1、在前台有些地方有token,但是有些地方还是没有加token,防御不完善。
2、虽然加了token,但是整个站的token好像是一样的,这个token应该动态处理吧。
3、前台的CSRF就不说了。后台完全没有CSRF防御,像这样构造CSRF请求就可以操作后台的一切操作,拿shell,拖库,修改网站数据,添加管理员等等操作。
具体案例见:
WooYun: ThinkSAAS某功能设计不当可能导致可以csrf后台GETSHELL
WooYun: ThinkSAAS某处CSRF导致直接GETSHELL
WooYun: Thinksaas CSRF导致任意文件删除
第一处包含漏洞:
/app/group/action/plugin.php
这里没有判断是否登录,而且$app,$plugin,$in参数没有限制目录,导致文件包含。
那么我们只要找一个任意存在的文件就能执行该任意文件了。
第二处包含漏洞:
/app/home/action/plugin.php
第三处包含漏洞:
/app/pubs/action/plugin.php
第四处包含漏洞:
/app/user/action/plugin.php
包含原理通第一处。
漏洞证明:
我们通过上面的包含漏洞可以包含到后台的文件,执行后台的全部功能。
这里我们包含后台如下文件:
/app/system/action/sql.php
那么我们通过上面的包含就可以包含到此文件执行了。
再来看看这里的restore()函数,直接将$sql参数加到了需要回复的数据库文件后面,而且restore()函数并没有判断此文件的格式等有效性,直接打开文件,执行里面的内容,因为默认这是一个sql数据库文件,所以导致目录遍历漏洞。
这样就可以回复任意文件了,只要此文件中是合法的sql语句就行。
那我们在前台上传一个图片,图片内容为:
在sql参数处,把sql文件内容替换为我们自己上传的文件即可。
上传后的路径我们可以知道,上传后的文件名是按照1,2,3...这样的顺序命名的,所以上传后的文件路径,文件名都可以得到。这样就可以在非登录下直接拿到shell。

可能还有其他地方存在其他的很多漏洞,先发现,提交这么多,后面再继续挖掘。
希望厂商能把前面的那些SQL注入和这些漏洞修复了,做的更安全的产品!