PHP任意文件包含绕过截断新姿势
2016-03-18 21:15
459 查看
前言
此方法是@l3m0n叔叔给我分享的,原文已经发布在90sec我没有90sec的账号,所以自己实践一下,顺道安利给访问我博客的小伙伴。
适用情况
可以控制协议的情况下,如果%00无法截断包含,可使用这招。
<?php $a = $_GET['file']; include $a.'.html.php';
思路&方法
思路主要是利用了PHP的一个流封装的特性,可以参考PHP官方文档中的Example #3假设存在文件包含的代码为:
<?php $a = $_GET['file']; include $a.'.html.php';
但是我们
%00无法截断, 只能包含 xxxx.html.php
首先我们新建一个hello.html.php,内容为
phpinfo();
然后压缩成zip,结构如下图:
然后访问如下网址,成功包含压缩文件内的hello.html.php
http://localhost/test/blog.php?file=zip://test.zip%23hello
如图:
把我们输入的变量和include后面的变量合起来就是
zip://test.zip#hello.html.php
代表当前目录下的test.zip压缩包里面的hello.html.php,于是包含成功。
总结
代码审计要走的路还很长~我还要继续学习很早以前和柠檬草(l3m0n)叔叔搞站遇到过这种情况,当时无果放弃了,前几天草叔叔告诉我他有思路了。
感谢柠檬草叔叔给我分享这个技巧,让我学到了新知识 谢谢你 :)
相关文章推荐
- Hush Framework 作为PHP服务端框架
- PHP流程控制之循环结构
- php gettext 注释
- SVN+FTP服务器搭建(一)——SVN安装配置篇
- .htaccess禁止目录执行php方法
- PHP版本区别
- 为 Notepad++ 安装 NppFTP 插件,查看修改虚拟机上的文本文件
- php中rsa加密解密验证
- HDOJ 1094 A+B for Input-Output Practice (VI)
- HDOJ 1093 A+B for Input-Output Practice (V)
- HDOJ 1092 A+B for Input-Output Practice (IV)
- phpstom 实用laravel 需要附加的 命令
- HDOJ 1091 A+B for Input-Output Practice (III)
- PHP Ajax 跨域问题最佳解决方案
- HDOJ 1090 A+B for Input-Output Practice (II)
- 三、插入排序
- 三、插入排序
- HDOJ 1089 A+B for Input-Output Practice (I)
- php的单例模式
- php之单例模式