这个文章主要是记录一些我在审计过程中一些比较常规比较简单的漏洞,后续会一直更新
Discuz
Discuz! X 3.4 admincp_misc.php SQL注入漏洞
这个漏洞就是没有对输入进行过滤导致的,没啥好说的
source\admincp\admincp_misc.php 721行
复现
Discuz ML! V3.X 代码注入漏洞
复现
参考链接:
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
进入后台,点击管理数据表
创建一个1.mod,内容为:
<?php file_put_contents("shell.php","<?php phpinfo(); ?>"); ?>
然后点击导入系统模块,如图
点击马上导入
然后程序到e\admin\ecmsmod.php导入模型
跟进loadinmod函数,红框可知首先对于存放路径是根据时间随机生成,然后再2452行将上传的文件保存在path下
可以看到我们上传的文件的文件名被重新随机生成了
虽然我们上传了文件并且后端会给我们以php结尾存放这个文件,但是文件名是随机生成,所以我们不知道我们上传的shell名字是什么,也就无法继续利用
但是!走到2458行的时候会包含这个文件,我们可以利用包含文件写shell来重新写一个shell,1.mod内容如下
<?php file_put_contents("shell.php","<?php phpinfo(); ?>"); ?>
包含文件后,就会在e/admin/目录下生成shell.php
内容为
访问,成功拿到phpinfo
总结
代码审计三大难点
- 该变量怎么来的,是否可控
- 怎么绕过对于这个变量的过滤
- 怎么复现这个漏洞,因为往往要到达危险函数处还需要一些其他参数(尝试在web页面上找到触发该漏洞的点)
|