渗透测试 | 黑白盒测试配合实战经验分享(第二篇)

2024-07-02 300 0

前言

在上一篇文章【渗透测试 | 黑白盒测试配合实战经验分享】,我们共同踏上了黑白盒渗透测试的旅程,探索了黑白盒测试的奇妙配合。那篇文章中,我们接触某个系统的PHP源代码,如同打开了一扇通往系统内部的隐秘之门。对于那些熟悉代码语言的人来说,这或许是一段轻松的旅程,但对于初学者来说,这片代码的海洋却充满了未知与挑战。然而,我们并非仅仅满足于代码审计,更重要的是要洞察代码背后的隐患,随后我找来了一个Web系统,让我我们再次踏上 - 渗透测试 | 黑白盒测试配合实战经验分享(第二篇)。

常见PHP风险函数

其实我把风险函数放出来,是因为我上期没有加进去,这是句废话,但是我想起来了!在巨量代码面前,直接审直接肝爆,所以还得需要借助代码审计工具,目前有些特定的代码审计工具运行逻辑是模式匹配工具会使用预定义的正则表达式或模式,匹配代码中可能存在漏洞的代码片段,还有就是词法分析、语法分析、语义分析

1. 命令执行函数:

  • exec(): 执行系统命令并返回命令执行后的最后一行输出结果。

  • system(): 执行系统命令并将命令执行结果直接输出到浏览器。

  • passthru(): 执行系统命令并将命令执行结果直接输出到浏览器,不会进行任何过滤。

  • shell_exec(): 执行系统命令并返回命令执行结果。

  • popen(): 打开一个进程管道,用于与进程进行通信。

  • proc_open(): 打开一个进程,并返回一个资源句柄用于与进程进行交互。

这些函数如果接收了来自用户输入的未经验证的命令,就可能被攻击者利用来执行任意系统命令,造成严重的安全风险。

2. 代码执行函数:

  • eval(): 将字符串作为 PHP 代码进行执行。

  • assert(): 与 eval()相似,将字符串作为 PHP 代码进行执行。

  • preg_replace(): 当使用 /e修饰符时,会将匹配到的字符串作为 PHP 代码进行执行。

  • create_function(): 创建一个匿名函数,该函数可以使用 eval()执行。

  • include()include_once()require()require_once(): 用于包含外部文件,如果包含了来自用户输入的未经验证的文件,就可能被攻击者利用来执行恶意代码。

这些函数如果接收了来自用户输入的未经验证的代码,就可能被攻击者利用来执行任意代码,造成严重的安全风险。

3. 数据库操作函数:

  • mysql_query()mysqli_query()pdo_query(): 用于执行 SQL 查询,如果使用不当,就可能导致 SQL 注入漏洞。

  • mysql_fetch_array()mysqli_fetch_array()pdo_fetch_all(): 用于从数据库中获取数据,如果接收了来自用户输入的未经验证的数据,就可能被攻击者利用来读取敏感数据。

4. 文件操作函数:

  • file_get_contents(): 读取文件内容,如果接收了来自用户输入的未经验证的文件路径,就可能被攻击者利用来读取敏感文件。

  • file_put_contents(): 写入文件内容,如果接收了来自用户输入的未经验证的文件路径和内容,就可能被攻击者利用来写入恶意文件。

  • fopen(): 打开文件,如果接收了来自用户输入的未经验证的文件路径,就可能被攻击者利用来访问敏感文件。

5. 其他风险函数:

  • parse_str(): 将字符串解析成变量,如果接收了来自用户输入的未经验证的字符串,就可能被攻击者利用来覆盖系统变量,造成安全风险。

  • extract(): 将数组中的键值对提取成变量,如果接收了来自用户输入的未经验证的数组,就可能被攻击者利用来覆盖系统变量,造成安全风险。

  • header(): 设置 HTTP 头部信息,如果接收了来自用户输入的未经验证的头部信息,就可能被攻击者利用来进行重定向攻击或跨站脚本攻击 (XSS)。

以上是在PHP代码审计中会存在的一些风险函数,当然你需要结合实际的代码逻辑和接收的输入数据是否有验证或者过滤的一些代码层来发现缺陷,其实在新手可以尝试先挖掘后审计,通过功能点在找到相关的代码和运行逻辑进行审计,当然如果是在有指导下学习知识点比较容易吸收,至少不会绕很大的弯子甚至便秘!

黑白盒测试

先用黑盒测试从外部攻击者的视角进行测试,模拟真实攻击场景,看看能够发现什么漏洞,首先是这样的类似于线上兼职做任务那些。

渗透测试 | 黑白盒测试配合实战经验分享(第二篇)插图

可以注册,我们先落地一个账号,进行登陆!

渗透测试 | 黑白盒测试配合实战经验分享(第二篇)插图1

头像功能 - 文件上传漏洞

在我的-账号信息-头像功能,修改头像,直接上传任意上传文件,生成一个冰蝎Shell直接传上去先看看有没有杀掉,如果有安全防护估计上传到目录会被杀掉!这个审计可以看下面的【聊天室 -  反射型XSS漏洞+文件上传】章节,都是同一个方法。

渗透测试 | 黑白盒测试配合实战经验分享(第二篇)插图2

可以上传,上传成功了,后面继续看,没有返路径!

渗透测试 | 黑白盒测试配合实战经验分享(第二篇)插图3

然后在下一个包以GET方式返回了路径 - http://XXX.XX.XX.XX/uploads/20240628/41b6384e8f7dd5434c55ab5f1573dde0.php?imageMogr2/auto-orient/thumbnail/!200p/blur/1x0/quality/10|images


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论