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

访问上传文件

相关推荐
WYH2872 小时前
为什么在cubeide里勾选了can1,生成的工程里没有can.c?
c语言·开发语言
2 小时前
java关于键盘录入
java·开发语言
马猴烧酒.2 小时前
JAVA后端对象存储( 图片分享平台)详解
java·开发语言·spring·腾讯云
Lam㊣2 小时前
Ubuntu(Ubuntu 22.04.4 LTS)更改IP地址及网关
tcp/ip·ubuntu·php
wearegogog1232 小时前
基于MATLAB的D2D仿真场景实现
开发语言·网络·matlab
froginwe112 小时前
Chart.js 散点图详解
开发语言
独自破碎E2 小时前
【纵向扫描】最长公共前缀
java·开发语言
nuo5342022 小时前
C语言实现类似面向对象的三大特性
c语言·开发语言
321.。2 小时前
深入理解 Linux 线程封装:从 pthread 到 C++ 面向对象实现
linux·开发语言·c++