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

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

作者: 顶峰相见8号 | 来源:发表于2023-05-08 22:32 被阅读0次

前言

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

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

进入classFile.php文件。


image.png

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


image.png

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


image.png

漏洞复现:

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

image.png

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

image.png

3.任意文件删除漏洞

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


image.png

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


image.png
image.png

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

image.png

漏洞复现:

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


image.png

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


image.png

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


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

构造payload,成功写入。


image.png

访问之后,成功getshell。


image.png

5.xss漏洞

进入users_deal.php


image.png

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


image.png

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


image.png

漏洞复现:

构造payload,成功实现弹窗。


image.png

6.xss漏洞2

进入read.php


image.png

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


image.png

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


image.png

漏洞复现:

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

成功实现弹框。


image.png

7.ssrf漏洞

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

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


image.png

进入info_deal.php


image.png

跟进AddOrRev函数


image.png

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


image.png

跟进post函数。


image.png

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


image.png

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


image.png

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


image.png

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

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

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


image.png

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


image.png
image.png

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


image.png

漏洞复现:

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


image.png

成功收到监听。


image.png

总结

代码审计可以帮助发现各种类型的漏洞。这些漏洞可能包括输入验证问题、授权问题、会话管理问题、跨站点脚本漏洞、SQL注入漏洞等。


默认标题__2023-04-25+17_06_22.png

相关文章

  • 卷积神经网络CNN(一)——简单介绍

    本节主要来自《TensorFlow技术解析与实战》,这本书内容还行,代码就是官方代码

  • 大数据开发必读书目(持续更新)

    1.Hadoop Hadoop大数据开发案例教程与项目实战.pdf Hadoop技术内幕 深入解析YARN架构设计...

  • 代码审计

    代码审计工具 1、三款自动化代码审计工具教程2、seay源代码审计系统 PHP核心配置详解 注意PHP各个版本中配...

  • 【代码审计】PHP代码审计

    1. 概述 代码审核,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应用程序在开发阶段存在的一...

  • 攻防世界(进阶)--WEB--8.Web_php_unseria

    考察点:php代码审计 1.进入场景,得到php代码 2.化简代码,审计 3.写脚本 得到参数:TzorNDoiR...

  • 2019-07-28-php代码审计

    一、PHP代码执行代码审计首先讲一下PHP代码执行漏洞和命令执行漏洞的区别,PHP代码执行指的是将php代码植入到...

  • 1.1 php标记

    标记 php解析器会解析开始和结束标记之间的 php代码,其余部分,会...

  • PHP 漏洞与代码审计

    作者:lanz 博客链接:http://netsecurity.51cto.com/art/201303/3862...

  • php和html混编

    php引擎只解析.php文件,可以在php文件里面写html代码,但是不能在html中写php代码,php引擎解析...

  • Php代码审计

    Challenge show_source(__FILE__); $flag="xxxx"; if(isset($...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/lguksdtx.html