| 关键词: 进行 这里 backup 文件 内容 参数 方法 后缀 导出 有的 |
工具:Phpstrom、Seay源代码审计系统步骤:自动审计:找到关键点,这是在后台部分的备份功能。该点存在183行处,这三行代码的意思:打开(fopen)storage目录下的backup目录的(filename)文件,并将内容(optput)追加到这文件里,然后关闭文件。而请求的方式是由system/library/request.php下的构造参数组成,并将数值放到clean方法进行循环,而且在46行的进行了htmlspecialchars实体化编码。继续回到backup.php页面的backup方法,在124行对$table进行了一次判断,其判断的意思是要table参数=表名才能进行下一步。getTables该方法存在admin/model/tool/backup.php继续回到backup.php页面的backup方法,第160行这里的(output )写入,这里的意思是将指定表名,以及内容进行拼接操作,而参数fields是指定表的所有字段内容。到了这里,应该有的师傅想到了可以用存储xss进行写shell,这里说一下坑,前面也提起过,所有的请求都是通过了system/library/request.php的clean的方法,而该方法会一直将所有数组的键值进行循环直到所有的值都用htmlspecialchars函数过滤。寻找利用方式:首先备份一份下来,看看内容有什么,以及什么后缀,这里的备份默认是日期时间,sql后缀的,而且这里也是我们可控的点。导出来后,文件内容是这样的,导出指定表所有的字段参数内容,仅限于INSERT 语法,这里就好办了,既然是INSERT 语法那就改参数呗。改成带有shell的sql语法:然后上传该恶意文件并恢复,然后再进行导出.php后缀的文件,导出完成后就直接访问http://127.0.0.1/system/storage/backup/2.php |
| 本文出处: https://www.toutiao.com/a7000655721226371597/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|