《web安全原理分析与实践》-文件包含漏洞思考题
1、什么是文件包含漏洞?它有哪些危害?
文件包含函数的参数没有经过过滤或者严格的定义,并且参数可以被用户控制,这样就可能包含非预期的文件。如果文件中存在恶意代码,无论文件是什么类型,文件内的恶意代码都会被解析并执行。
危害:服务器的网页被篡改、网站被挂马、服务器被远程检制、被安装后门等
2、文件包含的函数有哪几个?它们有什么区别?
include()
include_once():PHP会检查指定文件是否已经被包含过
request()
request_once():PHP会检查指定文件是否已经被包含过
3、本地文件包含和远程文件包含的区别有哪些?
本地文件包含:包含的是本地文件
远程文件包含:包含的是其他服务器上的文件
4、有限制本地文件包含有哪些绕过方式?
–%00截断文件包含
–路径长度文件包含(/./././././)
–点号文件包含(…)
5、简述Session文件包含的原理及利用条件。
原理:PHP代码会将获取的GET型ctfs变量的值存人Session中。 攻击者可以利用GET型ctfs参数将恶意代码写入Session 文件中,然后再利用文件包含漏洞包含此Session文件,向系统中传入恶意代码。
利用条件:
—可以获取Session文件的路径
—Session文件的内容可控
6、简述日志文件包含的原理及利用条件。
原理:服务器中的中间件SSH等服务都有记录日志的功能。如果开启了记录日志功能,用户访问的日志就会存储到不同服务的相关文件中。如果日志文件的位置是默认位置或者是可以通过其他方法