外链论坛

 找回密码
 立即注册
搜索
查看: 16|回复: 0

一次代码审计实战案例「思路流程」

[复制链接]

2843

主题

316

回帖

9191万

积分

论坛元老

Rank: 8Rank: 8

积分
91919680
发表于 2024-11-3 11:58:42 | 显示全部楼层 |阅读模式

前言:

利用这个 CMS 瞧瞧不可挖到漏洞,运气还是不错地挖到了两个,分别是 SSRF 与文件覆盖 GETSHELL,下面给大众讲解一下这次审计的思路过程。该 CMS 版本是 4.2。以下漏洞均被 CNVD 收录。

环境说明:

PHP版本用 7.0.9 就好了。

SSRF:

按照功能点定向审计,在后台的工具栏有一个采集功能,按照经验这种功能通常存在 SSRF。

运用 python3 在本地开启简易的 http 服务。

点击下一步,果不其然的存在 SSRF。

进行漏洞分析。

【→所有资源关注我,私信回复“资料”获取←】

1、网络安全学习路线

2、电子书籍(白帽子)

3、安全大厂内部视频

4、100份src文档

5、平常安全面试题

6、ctf大赛经典题目解析

7、全套工具包

8、应急响应笔记

按照 burpsuite 抓到的请求包很容易定位到代码的位置。

该文件

upload/plugins/sys/admin/Collect.php#Collect->add,POST 的参数cjurl 未做安全处理被传入到 $this->caiji->str 办法

那样咱们跟进到 $this->caiji->str 办法然则 phpstorm 找不到定义该办法的位置。

处理办法,咱们能够连续按两下 Shift 键直接寻找。

跟进到 str 办法后,发掘 url 参数被传入 htmlall 办法,继续跟进该办法

能够看到 htmlall 方法运用了 curl 请求 url。

基本上有调用 $this->caiji->str 办法地区都存在 SSRF 漏洞。

文件覆盖引起 GETSHELL:

经过敏锐函数回溯参数过程的方式找到该漏洞。

upload/cscms/app/helpers/common_helper.php#write_file 运用了文件写入的敏锐函数,跟 SSRF 的 htmlall 是同一个文件。

运用 Ctrl+Shift+F 查询那些位置调用了 write_file,在

upload/plugins/sys/admin/Plugins.php#Plugins->_route_file 调用了 write_file函数,并且 $note[$key][name] 和 $note[$key][url] 的值是以字符串方式拼接到文件内容的,该内容是注释,咱们能够运用换行绕过。

查询那些位置调用了 _route_file,跟踪 $note 的值是不是可控,调用该函数的位置有非常多最后找到一处可利用。在

upload/plugins/sys/admin/Plugins.php#Plugins->setting_save 调用了 _route_file,因为该函数内容有点多,因此我将它拆分成两个界面,有些不重要的内容进行闭合。画红线的位置是调用到 _route_file 必须设置的,能够看到在标蓝色3的位置获取到了 $note 的值,分析到这儿能够起始复现了。

运用 burpsuite 抓取请求包。

修改请求包内容写入构造好的代码,能够看到我运用了什么 %0a 换行去绕过去注释。

upload/cscms/config/dance/rewrite.php 能够看到成功写入。

寻找引用 rewrite.php 的位置,懒得去看代码了,经过点击各个页面,经过不懈奋斗最终在个人中心的音乐页面找到,因此你需要注册一个会员用户。

重放 burpsuite 抓到的请求包,成功输出内容。

这儿其实事情还结束,当我尝试写入恶意内容发掘被转移了。

试了 eval、shell_exec 等均被转移,然则 assert 被转移,思虑到 assert 在PHP7版本之后的问题,我还是需要找一个更好的办法。懒得去看转义的代码了,我按照PHP的动态特性运用以下办法成功 RCE。

总结:

此次代码审计运用了通用代码审计思路的两种,第1种:按照功能点定向审计、第二种:敏锐函数回溯参数过程,用到的是通读全文代码。活用 phpstorm 能够让代码审计的效率大大增多





上一篇:PHP代码审计入门之路(渗透测试补全篇)
下一篇:PHP代码审计中你不晓得的牛叉技术点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-23 15:14 , Processed in 0.096126 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.