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

访问上传文件

相关推荐
Chester_199925 分钟前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
EXI-小洲2 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员2 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导2 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan2 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
m0_695251492 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
大衛說4 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
可乐鸡翅yeah_5 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线
2601_962203515 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理5 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php