题目:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
分析:题目说,小宁写了一个ping功能(可以看做有一个执行shell命令的位置),但是没有写waf(可以简单理解为没有验证输入内容),那么我们可以尝试通过拼接shell命令来达到我们预期结果。
看题:当我们ping本机可以正常运行,说明这个位置可以运行shell命令。
那么,接下来我们尝试拼接shell语句。
补充几种常见的shell语句拼接方法:
1、用 && || 拼接。cmd1 && cmd2;表示cmd1执行成功就执行cmd2;cmd1 || cmd2;表示cmd1执行不成功在执行cmd2,如果成功就不执行cmd2了。
2、用 | 链接。cmd1 | cmd2;表示将cmd1 的结果作为cmd2 的输入执行。
3、用 ; 链接。cmd1;cmd2;依次执行两条命令,前一条命令执行是否成功不影响后面的命令执行。
这里我用的是“;”连接的命令。
首先判断系统类型,是windows还是linux,毕竟他们的命令啥的不同。
;ls
执行成功,表明是linux系统,且这种拼接方法可通过。
那么接下来要寻找flag文件的位置。
;find / -name "*flag*" //这句命令是指搜索所有文件名中含“flag”的文件或文件夹。
发现目标,读取文件。
提交,结束!