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

最新文章

  1. Xcode playground markdown常用语法
  2. 微软ASP.NET技术“乱谈”
  3. 自定义NSLog无时间
  4. NeHe OpenGL教程 第十二课:显示列表
  5. Undefined symbols for architecture x86_64 解决之道
  6. 修改linux默认jdk版本
  7. UVa 821 Page Hopping【Floyd】
  8. 使用Open Live Writer 的代码高亮插件体验
  9. Mysql基础之字符集与乱码
  10. Andrew 机器学习课程笔记
  11. 00_Python面试题_迭代更新
  12. python的exec
  13. Linux内核优化
  14. 记一次生产环境thrift服务的配置问题
  15. Nginx防压力测试
  16. 利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD
  17. (转)SQL知识_SqlParameter数组
  18. [Eclipse]如何往eclipse中导入单个python文件,其它类型代码文件也可以参照该方法
  19. HDU-3506 Monkey Party (环形石子合并)
  20. 一头扎进 Java IO中

热门文章

  1. 从零开始实现简单 RPC 框架 8:网络通信之 Request-Response 模型
  2. 为 Memcached 构建基于 Go 的 Operator 示例
  3. 命令行解析函数:getopt_long、getopt
  4. SQL-INSERT触发器练习
  5. vue+element+echarts柱状图+列表
  6. 常见shell脚本测试题 for/while语句
  7. Spring5(七)——AOP注解
  8. 使用Python来临时启动端口,用来做安全时候的扫描用
  9. linux下分卷压缩,合并解压的3种方法
  10. scrum项目冲刺_day05总结