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

访问上传文件

相关推荐
BingoGo13 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack13 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack3 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理3 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1233 天前
matlab画图工具
开发语言·matlab
dustcell.3 天前
haproxy七层代理
java·开发语言·前端
norlan_jame3 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone3 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc