首页
学习
活动
专区
工具
TVP
发布

某开源cms前台漏洞集合

前台getshell第一处:

漏洞文件:\app\controller\File.php 中的upload函数:

因为$options变量我们外部可控,导致我们可以设置允许的上传后缀。跟进upload方法:

checkFileType方法代码:

copyfile方法代码:

造成任意文件上传,并且此upload方法没有验证任何权限,属于公共方法,导致无需任何权限。

漏洞利用:Exp.html:

路径:域名/upload/文件名.php 这里的文件名就是上传时的文件名,不会重命名。

前台getshell第二处:

漏洞文件:\app\controller\User.php 中的base64Upload方法:

直接写入了文件,且并未判断文件后缀,导致了任意文件写入。

P.S:这段写入代码在我遇见的好几个cms中都存在,导致都造成了任意文件写入。

漏洞利用:

先登录会员(默认开启注册)->然后直接访问payload即可写入

php文件:

Payload:http://xxxx/user/base64Upload/?options[base64]=data:image/php;base64,PD9waHAgcGhwaW5mbygpOw==&options[path]=./

会在根目录生成一个以会员的uid为文件名的文件。

这个uid怎么得到,如图:

前台sql注入

漏洞文件:\app\controller\User.php 中的fanslist方法:

注:该类的构造方法没验证任何权限,验证权限在对应的方法里面,但该方法未验证任何权限,所以无需任何权限即可访问该方法。

跟进friend::getlist方法:

继续跟进_select方法:

直接拼接到了limit后面导致了注入,且使用的PDO连接方式,支持多语句查询。

漏洞利用:直接修改管理员账号密码。

Payload:

http://xxxx/user/fansList/?options[user_id]=1&options[pagesize]=1;update%20user%20set%20username=123456,password='e10adc3949ba59abbe56e057f20f883e';

成功修改管理员账号,密码都为:123456

注:user表中id=1的才是管理员,等于其他的都是会员,不是管理员。所以可以直接修改id=1的数据,或者修改id为你插入的数据,记得修改原来的id=1为其他,不然冲突。

还有一处sql注入:

漏洞文件:\app\controller\Column.php 中的list方法:

注:该类没有构造方法,该方法未验证任何权限,所以无需任何权限即可访问该方法。分析如上。

总结:本来最开始是想找sql注入的,但是where方法中用了参数绑定,而且使用都是数组,导致where方法上一直没找到注入,后来干脆放弃找注入,找下其他的漏洞,就找到了两处getshell的地方,后面又转回来再找sql注入,成功找到了sql注入。挖洞就是不抛弃不放弃,只要下够了功夫,肯定能挖到漏洞的。

最后:本来是想不写利用,说明什么cms,有兴趣的可以自己去看看,但是他官网也用的同一套源码,害怕有淘气的去破坏人家官网,所以直接打码了,源码也比较小众简单,大家看看就是了。见谅。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190114B0GMSU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券