WeChall_PHP-Local File Inclusion(LFI)

PHP - Local File Inclusion(LFI)

题目:

在这里插入图片描述
中文翻译如下:
在这里插入图片描述

核心代码:
$filename = 'pages/'.(isset($_GET["file"])?$_GET["file"]:"welcome").'.html';
include $filename;
代码详解:
  • 当要 判断一个变量是否已经声明的时候 可以使用 isset 函数
  • 判断表达式是否成立?表达式1:表达式2(三目运算符)
    如果条件成立,执行表达式1,否则执行表达式2
  • include:运行指定文件

从以上代码中看出,我们每次输入的文件名都会在最后加上.html,我们需要删除.html,在php<5.3.4版本之前,是存在00截断漏洞的,因此我们可以尝试使用00截断

%00截断介绍:
%00截断,例如1.php%00.txt,白名单在测试时会直接将这个带入,判断后缀名(因为此时1.php%00.txt是一个字符串整体),但执行该代码时,会自动截断%00后面的内容,只要记住会删除包括%00及后面的所有内容
解题过程:
  • 首先题目提到,需要执行solution.php,那么我们直接访问试试看呢
    在这里插入图片描述
    (中文释义:您不能直接执行此脚本。请在up/index.php中使用LFI vuln包含它。)

  • 这是最简单的本地文件包含,这里不能直接在lfi目录下执行solution.php,需要使用到../,看到下方有文件包含,因此,我们先在题目中选择一个进去看看
    在这里插入图片描述
    如下图:
    在这里插入图片描述

  • 我们在url中再来试试下面的测试

http://www.wechall.net/challenge/training/php/lfi/up/index.php?file=solution.php

在这里插入图片描述
(中文释义:
PHP警告(2):include(pages / solution.php.html):无法打开流:/ home / wechall / www / wc5 / www / challenge / training / php / lfi / up / index中没有这样的文件或目录 .php(54):eval()‘代码 行 1
PHP警告(2):include():无法在/ home / wechall / www / wc5 / www / challenge中打开’pages / solution.php.html’以包含(include_path =’。:/ usr / share / php’) /training/php/lfi/up/index.php(54):eval()'d代码 行 1)

  • 看到这个显示up中没有中没有solution.php.html,猜想可能是html的问题,于是我们使用00截断
http://www.wechall.net/challenge/training/php/lfi/up/index.php?file=solution.php%00

结果如下图:
在这里插入图片描述

  • 这回是删除了,但是还是没有显示,于是我们返回上面几层目录看看
    在这里插入图片描述
    根据这个我们才看出,solution.php是在lfi目录下,因此,我们使用…/来访问(注:这里直接使用http://www.wechall.net/challenge/training/php/lfi/solution.php是不行的,他强制要求你使用本次文件包含)
  • 最后在http://www.wechall.net/challenge/training/php/lfi/up/index.php?file=solution.php%00中重新构造url,构造时需要注意,solution.php在lfi目录下,但他代码在执行中会增加一个pages目录,本来我们使用下面这个构造就可以
http://www.wechall.net/challenge/training/php/lfi/up/index.php?file=../solution.php%00

但执行后却是下图所示这时(注:它这时的目录为http://www.wechall.net/challenge/training/php/lfi/up/index.php?file=pages/../solution.php%00):
在这里插入图片描述

多了一个pages目录,我们需要到达lfi目录就需要使用两个../,第一个../跳出pages,第二个../跳出up到达lfi。最后,构造的url为

www.wechall.net/challenge/training/php/lfi/up/index.php?file=../../solution.php%00

执行结果为:
在这里插入图片描述
成功完成LFI

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1stPeak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值