深入解析 PHP 代码审计技术与实战【网络安全】

前言

登录某个网站并浏览其页面时,注意到了一些看起来不太对劲的地方。这些迹象可能是该网站存在漏洞或被黑客入侵的标志。为了确保这个网站的安全性,需要进行代码审计,这是一项专门针对软件代码进行检查和分析的技术。在本文中,我们将深入探讨代码审计的重要性和如何进行有效的代码审计。

1.目录遍历漏洞

进入模板功能-模板管理功能处。

发现此处的功能点可以遍历目录下的文件,接下来我们抓包查看当前功能点的代码。

通过路由找到对应的文件 template.php ,然后接着通过 mudi=manage 进行分支选择进入到对应的函数中。

进入 template.php 文件。

在 manage() 函数中,首先传入了两个参数, dirStr 参数则是控制路径的参数,而 sel 参数则是控制是否进入代码的 if,而最后将路径传入到 File 类下的 GetDirList() 函数中。跟进 GetDirList() 函数

发现使用 opendir() 函数列出目录下的文件

漏洞复现:

进入模板管理功能处,然后进行抓包。

抓包之后,进行测试。

然后在 dirStr 使用.../../来测试目录穿越。

2.任意文件读取漏洞

全局 fread() 函数,发现 Read()函数中调用了 fread() 函数。

然后搜索 Read() 函数的调用情况。

进入 classFile.php 文件。

然后搜索 fread()函数的用法。

发现在 sysCheckFile_deal.php 文件中调用了 File::read() 函数,跟进该函数。

漏洞复现:

根据路由,去构造 url 路径,然后访问。

接着抓包,配合../进行目录穿越读取文件

3.任意文件删除漏洞

在测试模板管理功能点处,发现该处存在一个删除的功能点,发现存在任意文件删除漏洞。

首先我们通过路由找对相应的源代码 template_deal.php 文件,且这里的路由指向为 DelFile() 函数,该函数中接收了三个参数,其中 filePath 参数为主要控制路径的参数,将 filePath 参数带入到 File::Del()中进行删除。跟进 del() 函数

该函数很简单,首先判断路径是否为空,不为空修改权限最后进行文件的删除操作。

漏洞复现:

进入功能点处。然后点击 X 号。

然后在根路径写入一个 xxx.txt 文件。

然后在 filepath 参数后配合../来删除文件。

4.msql_getshell

在 黑盒 测试中中存在一个 SQL 语句调试 的功能点,该处没有对 SQL 语句关键字的过滤而造成 SQL 语句的任意执行,导致 getshell。

进入功能点处。

然后执行简单的 SQL 语句进行测试。

然后使用抓包工具来定位路由。

然后看一下代码,发现文件的开头以条件分支来选择对应要执行的功能点,由于上述 mudi=sql ,所以我们找到该处要执行的 sql 所对应的函数

通过 OT::PostStr 方法传入五个参数,其中 sqlContent 中是需要传入的 SQL 语句,而下面对

into_outfile 、 global general_log 等 SQL 关键字进行了过滤

在下面检测你填入的后台密码是否正确,如果正确继续执行下面代码,在代码中执行了我们输入

的 SQL 语句。未对其进行过滤完全,导致我们可以绕过过滤,来执行 SQL 语句。

漏洞复现:

首先去开启数据库日志功能,发现有过滤。

然后我们构造 payload 成功绕过过滤。

然后我们写入 phpinfp 文件。

构造 payload,成功写入。

访问之后,成功 getshell。

5.xss 漏洞

进入 users_deal.php

检测 type 是否为数组中的固定值,不是则带入 AlertEnd 方法中跟进 AlertEnd 方法

发现 type 被带<script>标签,使用 AlertFilter 函数处理后直接 alert,跟进 AlertFilter 函数

漏洞复现:

构造 payload,成功实现弹窗。

6.xss 漏洞 2

进入 read.php

发现在 GetCityData 函数中,idName 参数没有做任何处理,带入 GetCituOptionJs 函数中跟进该方法

该方法中 idName 参数被直接带入 DOM 方法中输出

漏洞复现:

要调用 GetCityData 函数需 mudi 参数,然后在 idName 处输入 XSS 的 payload。

成功实现弹框。

7.ssrf 漏洞

在浏览代码过程中,发现该处使用 curl_exec()函数来执行命令。

在函数 UseCurl 中,调用 curl_exec 函数执行了一个 curl 会话,只有 $url 参数可控,即可造成 ssrf 漏洞

进入 info_deal.php

跟进 AddOrRev 函数

接着跟进 PostStr 函数,发现其调用了 post 函数。

跟进 post 函数。

$img 参数通过 POST 方式传入,并且无过滤措施继续跟进 SaveRemoteFile 函数

第二个参数被带入 GetUrlContent 函数,跟进 GetUrlContent 函数

根据可控参数的带入,跟进 UseAuto 函数,并且此处传入 3 个参数 0,GET,$url

根据传入第一个参数 $seMode 为 0,会调用 UseCurl 函数,即进入漏洞关键函数

目前已知漏洞触发链条,接下来只需要根据进入函数的条件,构造 poc 即可

首先需要进入 AddOrRev 函数,只需 $mudi 值为 add

然后需要满足进入 SaveRemoteFile 函数的条件

发现输入的参数为 http://,接着来复现漏洞。

漏洞复现:

访问 url 地址,使用 post 方式,在 img 参数后面输入 dnslog 地址。

成功收到监听。

                   如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)

👉网安(嘿客)全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉网安(嘿客红蓝对抗)所有方向的学习路线👈

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

 学习资料工具包

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。

在这里插入图片描述

面试题资料

独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
在这里插入图片描述

👉嘿客必备开发工具👈

工欲善其事必先利其器。学习客常用的开发软件都在这里了,给大家节省了很多时间。

这份完整版的网络安全(客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】

在这里插入图片描述

如果你有需要可以点击👉网络安全现状,一个黑客真实的收入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值