首页 > 其他分享 >文件包含漏洞——练习靶场lfi-labs

文件包含漏洞——练习靶场lfi-labs

时间:2024-11-12 12:48:44浏览次数:3  
标签:文件 源代码 包含 lfi labs file 靶场 php

目录

 

原理

lfi-labs1

lfi-labs2

lfi-labs3

lfi-labs4

lfi-labs5

lfi-lab6


 

原理

文件包含:为了更好地使用代码重用性,引入了文件包含函数,可以通过文件包含函数将文件包含进来,直接使用包含文件的代码

原因:在包含文件时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量来引入需要包含的文件时,用户可以对变量的值可控而服务器端未对变量值进行合理地校验或者校验被绕过,这样就导致了文件包含漏洞。通常文件包含漏洞出现在PHP语言中。

文件包含函数:

include
include_once     //_once 在于重复调用同一文件时,程序只会调用一次
require
require_once
include和require区别:
发生错误时,include会发出警告后继续执行,而require会直接终止程序
hightlight_file         //读取文件
show_source             //查看文件隐式代码信息
readfile                //读取文件
file_get_contents       //读取文件
fopen                   //读取文件
file                    //读取文件

文件包含漏洞类型:

本地文件包含

远程文件包含:同过url包含文件

两个重要参数:

allow_url_fopen:为on时,能读取远程文件,例如:file_get_contents()就能读远程文件
allow_url_include:为on时,就可使用include和require等方式包含远程文件 

文件包含漏洞地利用方式——伪协议

协议php版本要求allow_url_fopenallow_url_include用法
file://>=5.2off/onoff/on?file=file://D:/soft/phpStudy/WWW/phpcode.txt
php://filter>=5.2off/onoff/on?file=php://filter/read=convert.base64-encode/resource=./index.php
php://input>=5.2off/onon?file=php://input [POST DATA] <?php phpinfo()?>
zip://>=5.2off/onoff/on?file=php://D://soft/phpStudy/WWW/file.zip%23phpcode.txt
compress.bzip2://>=5.2off/onoff/on?file=compress.bzip2://D:/soft/phpStudy/WWW/file.bz2或者?file=compress.zlib://.file.bz2
compress.zlib://>=5.2off/onoff/on?file=compress.zlib://D://soft/phpStudy/WWW/file.gz或者?file=compress.zlib://./file.gz
data://>=5.2onon?file=data://text/plain,<?php phpinfo()?>或者?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=或者?file=data:text/plain,<?php phpinfo()?>或者?file=data:text/plain:base64,PD9waHAgcGhwaW5mbygpPz4=
phar://>=5.2off/onoff/on?file=phar://xxx.png/shell.php

 

其他方式:

  • %00截断,“ ”字符,可以注释掉后面地内容

例如:

<?php
    $file=$_GET[file].'.php';
    include($file);
.....
    ?>

这里文件包含限制了文件格式,只能是.php文件,可以通过%00截断:?file.txt%00

lfi-labs1

查看页面源代码,这个的参数是pagee64d454d6a6f49a588af2593710d429b.png

 查看index.php代码

1e1a4ef960404335ab72b5759c1f4b97.png

并没有进行任何过滤。我们可以通过通过对变量page进行传参,查询想要的文件

例如:82ab657858694944a8e330ca4da2ca01.png

这里查询的是C盘下的flag.txt文件(自己创建的)

lfi-labs2

和lfi-labs1同理,要先确定参数,library

查看源代码:fa02755f61654d44bdb2031cf800a36c.png

源代码显示查询的是includes下的文件,且带有文件后缀.php只能查询php文件。

解决方法:

1.使用相对路径

2.用%00截断,注释掉.php。但是%00截断仅用在php版本低于5.3.4,magic_quotes_gpc=off环境下。

c9c46b29bd2d429e99d27b51f0796793.png

这里查询的c盘下的flag.php文件。

lfi-labs3

试一下2关的方法

c56ade7328414e96b1fb2be3e2c7e8ff.png

题目进行了过滤,查看源代码:

6b2dfbef4dfe4e5ea423806517ee56a8.png

根据源代码了解,对输入的参数进行了判断,参数的后4个字符不能是.php,否则会显示“You are not allowed to see source files!”。

解决办法:

在flag.php后面加"."或者"%00"。

这样substr截取时,截取的时php.或php 而不是.php。而.和 在查询时会被自动剔除(不符合命名规则)

77bc9b3cdf704f29a054a55fd6374f98.png

查看页面源代码(包含文件函数不同):

b8c1c3cc1aff403c9f4982ee2fceea0b.png

lfi-labs4

源代码:

a172b24a36934c978f9e31b22fdbf58f.png

addslashes()函数:返回在预定义字符之前添加反斜杠的字符串。

预定义字符是:

单引号(')

双引号(")

反斜杠(\)

NULL

解决方法:

ee939d88d5cc4c55afdfd10e1a3f3290.png

lfi-labs5

源代码:75db7f8567d04a2d86e5e3838b3e466f.png

根据源代码,这题是过滤"../"。

str_replace('../',' ',$_GET['file'])将变量中的"../"用” “替代。

解决方法:

通过双写绕过

例如:"../"双写:”..././“或者”....//“

3bfea9e3a81a467fb54ddb3f30e861ff.png

lfi-lab6

f570f6c34a5543f986f429b48128ad32.png

第六关只是把请求方式换成post而已

bfe1c1bf3e0d4e2ca208434b923bf5e1.png

009541996b5c4b728af04dbab4ceff67.png

后几关同理

 

标签:文件,源代码,包含,lfi,labs,file,靶场,php
From: https://blog.csdn.net/y14ffhgcg56_/article/details/143686432

相关文章

  • IMF靶场
    首先:扫描同网段的地址扫描出IP地址后,扫描它的的端口信息flag1查看80端口下的源码找到了flag1和三个邮箱flag2还是查看源码,在开始界面查看源码,发现加密的js文件名,解密查看拼接ZmxhZzJ7YVcxbVlXUnRhVzVwYzNSeVlYUnZjZz09fQ==解密,出flag2flag2{aW1mYWRtaW5......
  • xss-labs-master靶机1-20关解题思路
    xss-labs-master靶机1-20关解题思路xss-labs-master靶机是xss-labs作者在github上发布的后来不知道为什么就把它删了,可能是因为这个靶机属于静态页面有一个通用的推广方式(具体在后面),不过还是希望读者使用实战中的攻击手段学习,这个靶机是对XSS漏洞的专项练习,一共有二十关,也是小......
  • bp靶场之SQL注入
    靶场链接https://portswigger.net/web-security/all-labssql注入payload速查表https://portswigger.net/web-security/sql-injection/cheat-sheetSQL注入WHERE子句中的SQL注入漏洞允许检索隐藏数据进入lab,点击类别xia_sql显示√,说明有可能有sql注入直接往参数后拼'o......
  • bp靶场之xss
    靶场链接https://portswigger.net/web-security/all-labsxss备忘录:https://portswigger.net/web-security/cross-site-scripting/cheat-sheet将XSS反射到HTML上下文中,无需任何编码搜索123后,url上出现123,页面也直接回显123,说明可能有反射xsshttps://0a1a0050044ea608c471......
  • BUU LFI COURSE 1
    BUULFICOURSE1php文件包含漏洞|Chybetahint在标题了。<?php/***CreatedbyPhpStorm.*User:jinzhao*Date:2019/7/9*Time:7:07AM*/highlight_file(__FILE__);if(isset($_GET['file'])){$str=$_GET['file'];include......
  • 打靶记录-红日靶场1
    靶机地址http://vulnstack.qiyuanxuetang.net/vuln/detail/2/按照网络拓扑搭建好环境确认靶机nmap-sn192.168.161.0/24扫开放端口nmap-sT-p-192.168.161.128-oA./ports扫详细信息nmap-sT-sC-sV-O192.168.161.128-p80,3306-oA./detailsnmap--script=vu......
  • 红日七靶场--Writeup
     环境下载地址http://vulnstack.qiyuanxuetang.net/vuln/detail/9/前置配置环境拓扑网络编辑(这里桥接模式的网段不能通第二层也就是52的网段,笔记中桥接模式无法联网所以使用了52的nat网段)DMZ区域:-给Ubuntu(Web1)配置了两个网卡,一个桥接可以对外提供服务;一个连接在......
  • 网络安全ctf比赛/学习资源整理,解题工具、比赛时间、解题思路、实战靶场推荐收藏!
    前言对于想学习或者参加CTF比赛的朋友来说,CTF工具、练习靶场必不可少,今天给大家分享自己收藏的CTF资源,希望能对各位有所帮助。CTF在线工具首先给大家推荐我自己常用的3个CTF在线工具网站,内容齐全,收藏备用。1、CTF在线工具箱:http://ctf.ssleye.com/包含CTF比赛中常用的编码......
  • upload-labs
    upload-labs1-13upload-labs1-13upload-labs1-13pass-01pass-02pass-03pass-04pass-05pass-06pass-07pass-08pass-09pass-10pass-11pass-12pass-13pass-01首先我们新建文件a.php并用一句话木马<?php@eval($_POST['cmd']);?>然后我们上传1.php发现弹窗给出了白名......
  • 零基础‘自外网到内网’渗透过程详细记录(cc123靶场)——上
    一、网络环境示意图二、环境搭建首先将三个虚拟机使用VMware打开。接下来对虚拟机进行配置。首先配置虚拟机“护卫神主机大师(项目四)”。点击编辑虚拟机设置。发现存在两个网卡。打开虚拟网络编辑器。点击更改设置。点击添加网络。选择VM19后点击确定。根......