深入解析PHP代码审计技术与实战【网络安全】
登录网站并浏览其页面时,我注意到看起来不太对劲。这些迹象可能是网站有缺陷或被黑客攻击的迹象。为了保证这个网站的安全,需要进行代码审计,代码审计是一种检查和分析软件代码的技术。在本文中,我们将讨论代码审计的重要性以及如何进行有效的代码审计。
1.目录遍历漏洞
进入模板功能-模板管理功能处。
发现这里的函数点可以遍历目录中的文件。接下来我们抢包,看看当前功能点的代码。
image.png
通过路由到对应的文件 template.php ,然后接着通过 mudi=manage 进行分支选择进入到对应的函数中。
image.png
进入template.php文件。
image.png
在 manage() 函数中,首先传入了两个参数, dirStr 参数则是控制路径的参数,而 sel 参数则是控制是否进入代码的if,而最后将路径传入到File类下的 GetDirList() 函数中。跟进GetDirList() 函数
image.png
发现使用 opendir() 函数列出目录下的文件
image.png
漏洞复现:
进入模板管理功能,然后抢包。
image.png
抓包之后,进行测试。
image.png
然后在dirStr使用.../../来测试目录穿越。
image.png
2.任意文件读取漏洞
全局fread() 函数,发现Read()函数中调用了 fread() 函数。
image.png
然后搜索 Read() 函数的调用情况。
image.png
进入class文件。
image.png
然后搜索fread()函数的用法。
image.png
发现在 sysCheck 文件中调用了 () 函数,跟进该函数。
image.png
漏洞复现:
根据路由,去构造url路径,然后访问。
image.png
接着抓包,配合../进行目录穿越读取文件。
image.png
3.任意文件删除漏洞
在测试模板管理功能点,发现有删除的功能点,发现有文件删除漏洞。
image.png
首先我们通过路由对相应的源代码 template_deal.php 文件,且这里的路由指向为 DelFile() 函数,该函数中接收了三个参数,其中参数为主要控制路径的参数,将参数带入到()中进行删除。跟进 del() 函数
image.png
image.png
这个函数非常简单。首先判断路径是否为空。如果不为空,请修改权限。最后,删除文件。
image.png
漏洞复现:
进入功能点处。然后点击X号。
image.png
然后在根路径写入一个文件。
image.png
然后在参数后配合../来删除文件。
image.png
4.msql_getshell
在 黑盒 测试中中存在一个 SQL语句调试 的功能点,该处没有对SQL语句关键字的过滤而造成SQL语句的任意执行,导致getshell。
进入功能点处。
image.png
然后执行简单的SQL语句进行测试。
image.png
然后使用抓包工具来定位路由。
image.png
然后看一下代码,发现文件的开头以条件分支来选择对应要执行的功能点,由于上述 mudi=sql ,所以我们到该处要执行的sql所对应的函数
image.png
image.png
通过 OT::PostStr 方法传入五个参数,其中 sqlContent 中是需要传入的SQL语句,而下面对
into_outfile 、 global general_log 等SQL关键字进行了过滤
image.png
image.png
在下面检测你填入的后台密码是否正确,如果正确继续执行下面代码,在代码中执行了我们输入
的SQL语句。未对其进行过滤完全,导致我们可以绕过过滤,来执行SQL语句。
image.png
漏洞复现:
首先打开数据库日志功能,发现有过滤。
image.png
然后我们构造payload成功绕过过滤。
image.png
然后我们写入phpinfp文件。
image.png

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。