首页 网络安全 安全学院 查看内容

某商城代码审计

2021-8-29 14:13 1168 0

摘要: 工具:Phpstrom、Seay源代码审计系统步骤:自动审计:找到关键点,这是在后台部分的备份功能。该点存在183行处,这三行代码的意思:打开(fopen)storage目录下的backup目录的(filename)文件,并将内容(optput) ...
关键词: 进行 这里 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/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部