问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
某商城代码审计
漏洞分析
## 工具: #### Phpstrom、Seay源代码审计系统 ## 步骤: ### 自动审计: ##### 找到关键点,这是在后台部分的备份功能。 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-...
工具: --- #### Phpstrom、Seay源代码审计系统 步骤: --- ### 自动审计: ##### 找到关键点,这是在后台部分的备份功能。 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-a9e06fcee1b4028806da118a2cff12e82b267269.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-a9e06fcee1b4028806da118a2cff12e82b267269.png) ##### 该点存在183行处,这三行代码的意思:打开(fopen)storage目录下的backup目录的(filename)文件,并将内容(optput)追加到这文件里,然后关闭文件。 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-c432d48bd2eac7961786da99ff828716c88646b5.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-c432d48bd2eac7961786da99ff828716c88646b5.png) [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-0cff8c963f04f58fc106d56d9a6ed3c35b833b54.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-0cff8c963f04f58fc106d56d9a6ed3c35b833b54.png) ##### 而请求的方式是由system/library/request.php下的构造参数组成,并将数值放到clean方法进行循环,而且在46行的进行了htmlspecialchars实体化编码。 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-5a298fcb7f02c9f46392f0a14f57c6f068ce2a78.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-5a298fcb7f02c9f46392f0a14f57c6f068ce2a78.png) ##### 继续回到backup.php页面的backup方法,在124行对$table进行了一次判断,其判断的意思是要table参数=表名才能进行下一步。 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-a0280f3d698cc6aa3bed5dc82b11bbee42e801a2.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-a0280f3d698cc6aa3bed5dc82b11bbee42e801a2.png) ##### getTables该方法存在admin/model/tool/backup.php [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-3ba3314724212ab2f7700346c1cb709c1d29005b.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-3ba3314724212ab2f7700346c1cb709c1d29005b.png) ##### 继续回到backup.php页面的backup方法,第160行这里的(output )写入,这里的意思是将指定表名,以及内容进行拼接操作,而参数fields是指定表的所有字段内容。 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-201b814f77b34a3110541b060d72a54ab6297d9d.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-201b814f77b34a3110541b060d72a54ab6297d9d.png) [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-901d8d6fe1f4994c35b74da1fa580d797ac63f1b.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-901d8d6fe1f4994c35b74da1fa580d797ac63f1b.png) ##### 到了这里,应该有的师傅想到了可以用存储xss进行写shell,这里说一下坑,前面也提起过,所有的请求都是通过了system/library/request.php的clean的方法,而该方法会一直将所有数组的键值进行循环直到所有的值都用htmlspecialchars函数过滤。 ### 寻找利用方式: ##### 首先备份一份下来,看看内容有什么,以及什么后缀,这里的备份默认是日期时间,sql后缀的,而且这里也是我们可控的点。 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-88b5a011c10a7c4f72f67eb6347dca349005e2fa.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-88b5a011c10a7c4f72f67eb6347dca349005e2fa.png) [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-0ff2d9e69d8cb1c24239e2904b671910e55631f6.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-0ff2d9e69d8cb1c24239e2904b671910e55631f6.png) ##### 导出来后,文件内容是这样的,导出指定表所有的字段参数内容,仅限于INSERT 语法,这里就好办了,既然是INSERT 语法那就改参数呗。 [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-c8bd84926409a91acedb1f33e0fe413b8e8d753d.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-c8bd84926409a91acedb1f33e0fe413b8e8d753d.png) ##### 改成带有shell的sql语法: [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-2a66cd4e244a70be81e43ddc1bf16f1b628167a6.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-2a66cd4e244a70be81e43ddc1bf16f1b628167a6.png) ##### 然后上传该恶意文件并恢复,然后再进行导出.php后缀的文件,导出完成后就直接访问 <http://127.0.0.1/system/storage/backup/2.php> [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-2946de82027e0a4d7d45483c220450556f75e74e.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-2946de82027e0a4d7d45483c220450556f75e74e.png) [![](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-f33ed19acb04d107d8db2bc4708f2825b290017b.png)](https://shs3.b.qianxin.com/attack_forum/2021/08/attach-f33ed19acb04d107d8db2bc4708f2825b290017b.png)
发表于 2021-08-17 18:00:29
阅读 ( 5600 )
分类:
代码审计
1 推荐
收藏
0 条评论
请先
登录
后评论
N1eC
7 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!