某商城代码审计

## 工具: #### Phpstrom、Seay源代码审计系统 ## 步骤: ### 自动审计: ##### 找到关键点,这是在后台部分的备份功能。 [![](https://cdn-yg-zzbm.yun.qianxin.com/attack-forum/2021/08/attach-...

工具:

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

  • 发表于 2021-08-17 18:00:29
  • 阅读 ( 7026 )
  • 分类:代码审计

0 条评论

请先 登录 后评论
N1eC
N1eC

7 篇文章

站长统计