前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代码审计之 UsualToolCMS

代码审计之 UsualToolCMS

作者头像
信安之路
发布2019-01-23 16:18:52
1.3K0
发布2019-01-23 16:18:52
举报
文章被收录于专栏:信安之路

本文作者:0x584A(信安之路作者团队成员)

不知不觉又过了一年,本来想写的文章是分享我是如何学习代码审计的。

写到一半全部删了,觉得自己还不够经验写这样的东西,以免自己的文章对各位大佬带来误导。

早上在一网站的 CMS建站 分类中,看到这款CMS,就审计了一下。

希望能对学习代码审计的童鞋带来点帮助,各位大佬见笑了哈。

版本: UsualToolCMS-8.0-Release MD5 (UsualToolCMS-8.0-Release.zip) = 3bcf74b94f22e6cca8e35fe43905292b

安装

正常安装就好,不过这个系统在设置数据库连接参数时挺有意思的。

一般别的 CMS 系统都是一个 input=text,然后填入对应的参数接口,它这里是 textarea 文本框,让你自己填写进去。(存在任意文件删除,所以这里提一下提一嘴

前端反射 XSS

我比较喜欢审计前台的代码,一般每个 PHP 后缀的文件我都会去点开看看,尝试读一下里面的代码。

然后就了发现此处:

问题存在:umedit/php/imageUp.php

接收了一个 $_GET['callback'] 参数,在后面的代码中输出到浏览器。

SSRF 漏洞

问题存在:cmsadmin/ueedit/php/Uploader.class.php

触发方式:/cmsadmin/ueedit/php/controller.php?action=catchimage&source[]=http://0.0.0.0

首先接收我们传递的 $_GET['action']=catchimage,走到对应的 include

然后在 action_crawler.php 文件中,会通过循环数组中的参数最终调用 get_headers 函数。

文件:cmsadmin/ueedit/php/Uploader.class.php

就这样,我们可以通过判断返回的消息,验证 ssrf 是否正确。

当前请求一个不存在的地址会返回:

验证下 http://127.0.0.1 是不是真的请求不到:

然后我们来请求一台存在的服务器 http://192.168.1.199

这个时候返回的是:

提示:链接contentType不正确

这是因为后面的代码中,判断了请求的连接是否是一个图片。

所以,SSRF 在这里是存在的。

XXE 和盲注

问题存在:cmsadmin/wechat/index.php

这里看到,当 echostr 不存在的时候,走 $mywechat->responseMsg() 方法

跟进:class/UsualToolCMS_WeChat.php

这里存在两个漏洞,当 libxml 低于 2.9 时,会存在 XXE 漏洞加载外部 DTD。

另一个就是 SQL 注入了,可以看到 $msgname 被直接拼接进了SQL语句。

因为 cms_wechat_message 这个表里默认没数据,所以这里要用到时间盲注的技巧。

payload:

代码语言:javascript
复制
<!--?xml version="1.0"?-->
<userInfo>
   <FromUserName><![CDATA[' union select 1,2,3,4 and sleep(2)-- ]]></FromUserName>
   <MsgType>text</MsgType>
   <Content>12312</Content>
</userInfo>

类似的地方还存在:paypal/index.php,接收参数 $_GET["no"],因为表里没数据,也只能使用时间盲注来验证。

任意文件删除

问题存在:myupimg.php

但受到第 4、第 5 行影响(第 4 加载的 session.php 文件里,又将第 5 行的代码重写了一遍,汗),需要前台登录才可以,刚好前台默认是允许注册的。

登录后,我们来实现删除安装锁文件,通过重装写入 shell :

总结

对这款 CMS 的审计暂时这里了,没太多想说的话,祝大家 2019 年学业有成,身体健康。

我的 2019 吗?额... 整年过的不好都没事,希望母亲病情有所好转,早日康复...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 前端反射 XSS
  • SSRF 漏洞
  • XXE 和盲注
  • 任意文件删除
  • 总结
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档