小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
命令注入原理:由于后台代码并未对用户输入的参数ip的值进行过滤就直接与ping命令进行拼接并执行,因此可以使用常见的命令拼接字符对命令进行拼接,如使用“&”,“|”,“&&”,“||”,然后再执行后面的命令
首先ping一个ip
执行了输入的ip地址,题目告知未设置waf,尝试能否使用命令拼接的方式来执行其它命令
Windows:
|:直接执行后面的语句
||:如果前面的语句出错,则执行后面的语句,否则执行前面的语句
&:前后的语句都可以执行,但是如果说前面的语句执行结果为假,仅输出后面语句的结果
&&:如果前面的语句结果为假,直接报错,也不执行后面的语句
Linux:
;:【whoami;ipconfig;ls /】:按顺序执行
|:只执行后面的语句
||:如果前面的语句执行失败,则执行后面的语句,如果前面的语句执行成功,则不执行后面的语句
&:如果前面的语句为假,则执行后面的语句,否则两条语句均会执行
&&:如果前面的语句出错,则停止,否则两条均会执行
ping的同时,成功执行后面的语句
查看一下根目录
在home目录下成功找到flag .txt