具体场景——伪装协议

利用php流


如果要实现文件包含漏洞,前提是非可执行文件,例如网站的源码都是可执行文件,拿php来说,大部分情况下都是.php文件,如果包含就没有意义了,因为直接包含相当于把代码拿来做执行,不可执行代码包进来没有任何反应,所以把文件变成不可执行代码就可以了。

举栗子

执行过程中会发现时间变慢了,接下来它的页面会不停的输出asdf,这样会消耗它的内存,结束之后它的内容就会输出来。

拿到这个页面index.php其实是没有用的,要考虑存在包含,如果能够读源码可能会有一定的作用。

输出一串base64编码,这时候我们已经读到base64文件,给他做个解码,最后就有一串字符串,就是flag的内容。

Php://input

类似于传递文件的作用。

打开空白页面,什么都没有,去看看他的源代码,还是什么都没有,那就去考虑扫后台。扫完之后会发现存在着这么个文件,可以看到一个源代码,我直接把它复制出来,再把它退回去。

我们需要理解这段代码的逻辑,

先去定义变量flag,有值非空,接下来的函数需要注意一下,从数据中变量导到当前符号表,通过这个函数会变成一些变量,相当于把传进去的值变成变量。


具体场景——日志文件


具体场景——系统环境



具体场景——session

cookie是放在我们自己这边,session是放在服务器端,session中包含你的一些信息比如用户名密码账号,用户名是非常高的一个关联性。

会发现路径下存在字开头是sess的文件,我们再来看sess里面的文件和它没有关联性。

定义的信息中要首先有内容可以影响到session才能做包含。其次要知道session的路径,默认情况下会存在一个在目录下,可以通过读到的内容来获取路径,或者自己设置也可以。