ctf从入门到放弃:文件包含漏洞190522

文件包含漏洞概述

在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用“包含”函数功能。 比如把一系列功能函数都写进fuction.php中,之后当某个文件需要调用的时候就直接在文件头中写上 一句就可以调用函数代码。
但有些时候,因为网站功能需求,会让前端用户选择需要包含的文件(或者在前端的功能中使用 了“包含”功能),又由于开发人员没有对要包含的这个文件进行安全考虑,就导致攻击着可以 通过修改包含文件的位置来让后台执行任意文件(代码)。
这种情况我们称为“文件包含漏洞”
文件包含漏洞有“本地文件包含漏洞”和“远程文件包含漏洞”两种情况

图解:
ctf从入门到放弃:文件包含漏洞190522_第1张图片

一个是本地,下面的是远程。

文件包含漏洞:包含函数
**
通过 include() 或 require() 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服 务器执行它之前)。 include 和 require 语句是相同的,除了错误处理方面: •require 会生成致命错误(E_COMPILE_ERROR)并停止脚本 •include 只生成警告(E_WARNING),并且脚本会继续
Test.php:
Index.html:

欢迎访问我的首页!

**

有漏洞的情况:
开发的没给输入的加上白名单或者是限制。
结果:
把攻击代码也弄上去了。

本地,就是直接去弄他的源代码,
远程,就是自己把自己写的弄进去。
远程危害更大,
因为自己写的攻击代码极具攻击性。


远程文件包含漏洞:

**远程文件包含漏洞形式跟本地文件包含漏洞差不多,在远程包含漏洞中,攻击着可以通过访问外部地址 来加载远程的代码。
远程包含漏洞前提:如果使用的incldue和require,则需要php.ini配置如下(php5.4.34): allow_url_fopen = on //默认打开 Allow_url_include=on //默认关闭
**

ctf从入门到放弃:文件包含漏洞190522_第2张图片

你可能感兴趣的:(学习日记)