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

访问上传文件
