《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等服务都有记录日志的功能。如果开启了记录日志功能,用户访问的日志就会存储到不同服务的相关文件中。如果日志文件的位置是默认位置或者是可以通过其他方法获取,就可以通过访问日志将恶意代码写人日志文件中,然后通过文件包含漏洞包含日志中的恶意代码,获得Web服务器的权限。比较典型的日志文件包含有两种:中间件日志文件包含和SSH日志文件包含
利用条件:
–日志文件存储位置可知
–有可读权限
7、有限制远程文件包含的绕

本文探讨了Web安全中的文件包含漏洞,详细解释了其原理、危害及常见函数。提到了本地和远程文件包含的区别,列举了绕过限制的技巧,如%00截断、问号和#号绕过。此外,阐述了Session和日志文件包含的利用条件和原理,并列出了PHP伪协议的用途。最后,提出了修复文件包含漏洞的代码层面和服务器配置方法。
最低0.47元/天 解锁文章

3671

被折叠的 条评论
为什么被折叠?



