CMS常规漏洞审计

这个文章主要是记录一些我在审计过程中一些比较常规比较简单的漏洞,后续会一直更新

Discuz

Discuz! X 3.4 admincp_misc.php SQL注入漏洞

这个漏洞就是没有对输入进行过滤导致的,没啥好说的

source\admincp\admincp_misc.php 721行

CMS常规漏洞审计_第1张图片

复现

CMS常规漏洞审计_第2张图片

Discuz ML! V3.X 代码注入漏洞

CMS常规漏洞审计_第3张图片

复现

CMS常规漏洞审计_第4张图片

参考链接:

https://www.anquanke.com/post/id/181887

Joomla

SESSION反序列化导致的rce

大概就是session解析时,|被认定为键名和键值的分割,导致攻击者构造特定的payload并用特殊字符截断session后面的字符串,可以控制反序列化的内容导致反序列化rce

https://www.leavesongs.com/PENETRATION/joomla-unserialize-code-execute-vulnerability.html

EmpireCMS

EmpireCMS 7.5 后台文件上传getshell(CVE-2018-18086)

这个漏洞是在上传文件时,虽然对于文件名进行了随机修改,但是后面又包含了这个文件,导致可以包含文件写shell

进入后台,点击管理数据表

CMS常规漏洞审计_第5张图片

创建一个1.mod,内容为:

 file_put_contents("shell.php",""); ?>

然后点击导入系统模块,如图

CMS常规漏洞审计_第6张图片

点击马上导入

然后程序到e\admin\ecmsmod.php导入模型

CMS常规漏洞审计_第7张图片

跟进loadinmod函数,红框可知首先对于存放路径是根据时间随机生成,然后再2452行将上传的文件保存在path下

CMS常规漏洞审计_第8张图片

可以看到我们上传的文件的文件名被重新随机生成了

CMS常规漏洞审计_第9张图片

虽然我们上传了文件并且后端会给我们以php结尾存放这个文件,但是文件名是随机生成,所以我们不知道我们上传的shell名字是什么,也就无法继续利用

但是走到2458行的时候会包含这个文件,我们可以利用包含文件写shell来重新写一个shell,1.mod内容如下

 file_put_contents("shell.php",""); ?>

包含文件后,就会在e/admin/目录下生成shell.php

CMS常规漏洞审计_第10张图片

内容为

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r43rUXLs-1648783376627)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220401111917964.png)]

访问,成功拿到phpinfo

CMS常规漏洞审计_第11张图片

总结

代码审计三大难点

  1. 该变量怎么来的,是否可控
  2. 怎么绕过对于这个变量的过滤
  3. 怎么复现这个漏洞,因为往往要到达危险函数处还需要一些其他参数(尝试在web页面上找到触发该漏洞的点)

你可能感兴趣的:(漏洞复现,web安全,php)