天涯论坛

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

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

[复制链接]

2946

主题

3万

回帖

9997万

积分

论坛元老

Rank: 8Rank: 8

积分
99979427
发表于 2024-11-3 12:29:27 | 显示全部楼层 |阅读模式

前言

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

1.目录遍历漏洞

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

这儿说句题外话,之前有不少小伙伴私信我要网络安全关联的资源,我这儿都整理好了,需要的私信我自取 《黑客&网络安全入门&进阶学习资源包》免费领取

发掘此处的功能点能够遍历目录下的文件,接下来咱们抓包查看当前功能点的代码。

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

进入template.php文件。

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

发掘运用 opendir() 函数列出目录下的文件

漏洞复现:

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

抓包之后,进行测试。

而后在dirStr运用.../../来测试目录穿越。

2.任意文件读取漏洞

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

而后搜索 Read() 函数的调用状况

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

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

漏洞复现:

按照路由,去构造url路径,而后拜访

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

3.任意文件删除漏洞

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

首要咱们经过路由找对相应的源代码 template_deal.php 文件,且这儿的路由指向为 DelFile() 函数,该函数中接收了三个参数,其中filePath参数为重点掌控路径的参数,将filePath参数带入到File:el()中进行删除。跟进 del() 函数

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

漏洞复现:

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

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

而后在filepath参数后协同../来删除文件。

4.msql_getshell

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

进入功能点处。

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

而后运用抓包工具来定位路由。

而后看一下代码,发掘文件的开头以要求分支来选取对应要执行的功能点,因为以上 mudi=sql ,因此咱们找到该处要执行的sql所对应的函数

经过 OT:ostStr 办法传入五个参数,其中 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

按照传入第1个参数$seMode为0,会调用UseCurl函数,即进入漏洞关键函数

日前已知漏洞触发链条,接下来只需要按照进入函数的要求,构造poc就可

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

而后需要满足进入SaveRemoteFile函数的要求

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

漏洞复现:

拜访url位置运用post方式,在img参数后面输入dnslog位置

成功收到监听。

##总结 代码审计能够帮忙发掘各样类型的漏洞。这些漏洞可能包含输入验证问题、授权问题、会话管理问题、跨站点脚本漏洞、SQL注入漏洞等。





上一篇:命令执行底层原理探究-PHP(一)
下一篇:DakshSCRA:一款功能强大的源代码安全审计工具
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 05:19 , Processed in 2.210569 second(s), 40 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.