[WeChall] Training: PHP LFI (Exploit, PHP, Training)

http://www.wechall.net/challenge/training/php/lfi/up/index.php

这次接触到了PHP,需要利用的是LFI漏洞,也就是本地文件包含漏洞

本地文件包含就是通过浏览器读取(包含)Web服务器上的文件,这种漏洞一般发生在浏览器读取(包含)文件时没有进行严格的过滤,允许遍历目录的字符注入浏览器并执行,从而读取非法目录(比如:asp?file=index.html)。

首先可以尝试一下直接打开那个 ../solution.php 的链接:

显然,浏览器没有权限去打开这个PHP文件。但是从题目知道,index.php有这个权限,并且它就是在执行打开文件的操作。因此只需要想办法把 ../solution.php 的路径传到 index.php?file= 里面就可以了。

这里需要注意的是solution.php的路径,它被放在/lfi/目录下。

下一步,点开 highlighted version 查看需要利用的代码:

绿色框表明程序设定打开/pages/目录下的文件。红色框表明设定打开.html文件。

那么唯一一个难点就是,file参数传进来之后,index.php会在后面加一个 ‘.html’,这就使得你的文件名有一个不对的后缀。

其实注释已经告诉你怎么做了(不愧是很好的安全教学网站)——Poison Null Byte.

其实意思就是字符串在取得时候会”\\0″处截断,在URL里就是%00

所以考虑要读取的文件所在的文件夹以及截断的问题,解决办法如下:

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

 

1 Comments

Leave a Comment