PHP伪协议与文件包含漏洞1
PHP文件包含漏洞花样繁多,需配合代码审计。
看能否使用这类漏洞时,主要看:
(1)代码中是否有include(),且参数可控;
如:
(2)php.ini设置:确保 allow_url_fopen=1, allow_url_include=1;
确定了使用的参数之后,就可以开始用伪协议了。
1. data://text/plain 伪协议
可以执行任何代码;需要fopen和include全部打开。
用法示例1:?page=data://text/plain,<?php phpinfo(); ?>
用法示例2:?page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOyA/Pg==
注:经过base64编码后的加号和等号最好手动将其换成url编码形式,以免识别不了。( =[%3d]; +[%2b] )
2.php://input 伪协议
可以将post请求中的数据作为php代码执行;只需要include打开。
用法示例:(抓包,在get参数后输入伪协议,在post区域输入php代码。)
3.php://filter 伪协议
读取文件源代码;只需要fopen打开;一般在知晓网站路径的情况下使用。
用法示例:?page=php://filter/read=convert.base64-encode/resource=learn.php
这样,其返回的就是learn.php base64加密后的代码内容。此处learn.php与漏洞文件在同一目录下;否则,还要写相对路径的。
(我在测试时,稍微改动一下这个语句,它的效果就变成执行learn.php了;原理和更多用法还待探究。)
将参数改为post后,data和php://filter还可使用,php://input失效。
参考:https://blog.csdn.net/weixin_45588247/article/details/119348342?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.searchformbaiduhighlight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.searchformbaiduhighlight
最新文章
- Xcode playground markdown常用语法
- 微软ASP.NET技术“乱谈”
- 自定义NSLog无时间
- NeHe OpenGL教程 第十二课:显示列表
- Undefined symbols for architecture x86_64 解决之道
- 修改linux默认jdk版本
- UVa 821 Page Hopping【Floyd】
- 使用Open Live Writer 的代码高亮插件体验
- Mysql基础之字符集与乱码
- Andrew 机器学习课程笔记
- 00_Python面试题_迭代更新
- python的exec
- Linux内核优化
- 记一次生产环境thrift服务的配置问题
- Nginx防压力测试
- 利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD
- (转)SQL知识_SqlParameter数组
- [Eclipse]如何往eclipse中导入单个python文件,其它类型代码文件也可以参照该方法
- HDU-3506 Monkey Party (环形石子合并)
- 一头扎进 Java IO中