This commit is contained in:
L4oZu1
2017-04-26 13:55:17 +08:00
parent c6054602dc
commit 84cf1a5a0e

View File

@@ -1,6 +1,6 @@
#LFILocal File Include漏洞 # LFILocal File Include漏洞
##漏洞简介 ## 漏洞简介
下面是纯bb了解过的跳过这部分 下面是纯bb了解过的跳过这部分
@@ -32,7 +32,7 @@ include和require区别主要是include在包含的过程中如果出现错
当使用这4个函数包含一个新的文件时该文件将作为PHP代码执行PHP的内核并不会在意被包含的文件是什么类型。即你可以上传一个含shell的txt或jpg文件包含它会被当作PHP代码执行图马 当使用这4个函数包含一个新的文件时该文件将作为PHP代码执行PHP的内核并不会在意被包含的文件是什么类型。即你可以上传一个含shell的txt或jpg文件包含它会被当作PHP代码执行图马
##这个玩意儿与CTF的渊源协议基础 ## 这个玩意儿与CTF的渊源协议基础
1. `php://`伪协议 >> 访问各个输入/输出流; 1. `php://`伪协议 >> 访问各个输入/输出流;
- php://filter - php://filter
1. 解释php://filter是一种元封装器设计用于"数据流打开"时的"筛选过滤"应用,对本地磁盘文件进行读写。简单来讲就是可以在执行代码前将代码换个方式读取出来,只是读取,`不需要`开启allow\_url_include 1. 解释php://filter是一种元封装器设计用于"数据流打开"时的"筛选过滤"应用,对本地磁盘文件进行读写。简单来讲就是可以在执行代码前将代码换个方式读取出来,只是读取,`不需要`开启allow\_url_include
@@ -90,7 +90,7 @@ include和require区别主要是include在包含的过程中如果出现错
- allow\_url_fopen = On `默认打开` 允许URLs作为像files一样作为打开的对象 - allow\_url_fopen = On `默认打开` 允许URLs作为像files一样作为打开的对象
- allow\_url_include = On `默认关闭` 允许include/require函数像打开文件一样打开URLs - allow\_url_include = On `默认关闭` 允许include/require函数像打开文件一样打开URLs
##函数解释 ## 函数解释
1. file\_get_contents():这个函数就是把一个文件里面的东西 字符全部return出来作为字符串。 1. file\_get_contents():这个函数就是把一个文件里面的东西 字符全部return出来作为字符串。
- 除此之外通过实践我发现这个函数如果直接把字符串当作参数会报错但如果包含的是http协议的网址则会像curl命令一样把源码读出来。而php伪协议也是识别http协议的所以说上面php://input可以将POST的数据读过来来赋值给参数这就造成了上述那个例子的漏洞。 - 除此之外通过实践我发现这个函数如果直接把字符串当作参数会报错但如果包含的是http协议的网址则会像curl命令一样把源码读出来。而php伪协议也是识别http协议的所以说上面php://input可以将POST的数据读过来来赋值给参数这就造成了上述那个例子的漏洞。