🍀预计时间:二十五分钟
学习目标:
🎉1理解原理
🎉2学会思路
🎉3了解过滤cat,flag,空格的处理方式
⭐贤鱼原创
漏洞原理
控制可执行系统命令的函数
基本操作及其思路(无过滤讲解例题,培养思路)
例题如下
很明显,我们可以通过get传参方式控制c,但是system中该如何执行前半段而不执行后半段呢?
==这里需要用到一些连接符==
1 ;(封号) 执行完第一个再执行下一个
2 &&第一个成功执行再执行第二个
3 ||前面执行失败后执行后面,也就是前面执行成功后面不执行
4 | 第一个的输入作为后面一个的输出
这几个较为常用,如果有其他的再后文还会提及
==继续看这个题==
首先讲一下思路,我们先看当前目录有没有目标文件(flag),没有的话去根目录下找,然后打开目标文件接下来看到题目,首先我们传参/?c=ls||查看当前目录下有没有flag,用||隔绝后面,前文讲了这个的作用
很明显,没有flag
接下来传参ls /||,这个的意思是查看根目录,如果在当前目录下找不到,就去根目录下看看
嗨嗨嗨,这不就有了,现在我们找到了flag,该怎么打开呢?
我们这里传参 cat /flag,记得cat后面有个空格,这个意思是打开根目录下的flag,如果不在根目录下,不需要加/
绕过过滤(例题+详解)
过滤cat
明显看到,cat被过滤掉了,在此花费2分享一下绕过方法:
== cat=tac=more=less=head=nl=od=vi=vim=sort=uniq=paste=xxd==
这些的方法和cat使用方法都一样,在需要的时候可以互相转换
接下来就简单了,还是一样的操作,查看当前目录,如果没有查看根目录
这里发现了flag,因为cat被过滤了,这里我们用tac(tac /flag)
🎇🎇🎇题目完成
其他的效果一样
过滤cat和flag
上文cat的过滤方法讲过了,这里就不多赘述,主要讲讲flag的过滤方法
我们可以拼接字符串的方法来过滤flag
还是老规矩找到flag的位置
这里利用==单引号==绕过过滤,
传参tac fl'a'g||
就可以得到flag了
过滤cat,flag 空格
绕过cat和flag的方法都讲过了,现在分享下绕过空格的方法
==空格等于$IFS等于${IFS}==
传参tac$IFS/fl'a'g||
🏆🏆结束语:
==命令执行漏洞的内容会不定期更新,如果对您有帮助的话可以订阅一下专栏==