php伪协议、代码审计工具和实战

1、安装fortify并以pikachu靶场为目标进行练习熟练使用fortify

2、复习php代码审计函数精讲相关内容,重点是SESSION验证绕过、urldecode二次编码绕过、str_replace绕过


urldecode⼆次编码绕过。攻ji者利用这个漏dong的关键在于,他们对想要注入的字符(如单引号 ')进行两次URL编码。

单引号 '的一次编码:%27

单引号 '的二次编码:对%27中的每个特殊字符再次编码。即,对%编码为%25,得到 %2527

经过这个精心构造的输入会经历以下阶段:

第一次解码(通常由Web服务器自动完成):%2527被解码为 %27。此时,简单的安全检测如果只查找 '字符,会认为这是无害的%27普通字符串而放行。

第二次解码(由应用程序代码调用 urldecode()函数触发):%27被再次解码,最终还原为攻ji者真正想要注入的单引号 '。

这个过程使得危险的字符绕过了初始的安全过滤。

经典场景:路径遍历gong击

利用方式:

?file=%252E%252E%252Fetc%252Fpasswd

安全检查时:%252E%252E%252Fetc%252Fpasswd(不包含".../")

第一次urldecode:%2E%2E%2Fetc%2Fpasswd

服务器最终解析:.../etc/passwd
URL编码参考手册

经典场景二:SQl注入绕过

利用方式:编码单引号为%2527,解码后最终变成'

经典场景三:XSS攻ji绕过

利用方式:

?content=%253Cscript%253Ealert(1)%253B%253C%252Fscript%253E

最后变成alert(1)

str_replace绕过

经常出现在字符过滤等功能逻辑中,由于仅仅过滤⼀次,因此容易被绕过。

仅替换 .../ 不够安全,攻ji者可能使⽤ ...// 或 ...\ (Windows) 绕过

建议:使⽤ realpath() 或专⻔的路径规范化函数

3、复习php伪协议

先看file://协议

作⽤:

⽤于访问本地⽂件系统,在CTF中通常⽤来读取本地⽂件的且不受 allow_url_fopen 与 allow_url_include 的影响。include()/require()/include_once()/require_once() 参数可控的情况下,如导⼊为⾮ .php ⽂件,则仍按照php语法进⾏解析,这是 include() 函数所决定的。


接下来看php://协议




自测a可以,b没反应,b过目一下就好

自测a可以,b没反应,b过目一下就好,c也可以

data://的ab方法都可以

http:// & https:// 也可以

phar://协议运行也可以

4、搭建并部署微商城系统并结合fortify审计文件上传漏dong

fortify扫描查看文件上传lou洞情况,分析原理

构造简单上传表单,并上传简单的phpinfo

抓包修改上传文件content-type

并发送请求,得到响应ok

访问上传文件

相关推荐
社交怪人12 分钟前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言
郭涤生1 小时前
不同主机之间网络通信-以太网连接复习
开发语言·rk3588
山居秋暝LS1 小时前
【无标题】RTX00安装paddle OCR,win11不能装最新的,也不能用GPU
开发语言·r语言
卢锡荣1 小时前
单芯通吃,盲插标杆 —— 乐得瑞 LDR6020,Type‑C 全场景互联 “智慧芯”
c语言·开发语言·计算机外设
Xin_ye100861 小时前
C# 零基础到精通教程 - 第七章:面向对象编程(入门)——类与对象
开发语言·c#
AI科技星2 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
审判长烧鸡2 小时前
【Go工具】go-playground是什么组织?官方的?
开发语言·安全·go
kkeeper~2 小时前
0基础C语言积跬步之字符函数与字符串函数(上)
c语言·开发语言
不正经的小寒2 小时前
PHP 8.2 核心特性
php
不正经的小寒2 小时前
PHP 8.1 核心特性
php