Command Injection{DVWA}
2018-08-04
Command Injection
很久没有更新,也很有没有玩过DVWA、Web for Pentester等等一系列的渗透测试练习平台,最近又突然重新开始搞一下,发现原来很有都没有做,还有很多方法和技巧都已经生疏,甚至忘记,那就重新开始整理记录吧。
练习示例
下面是该练习的示例,通过在输入框中输入构造的字符串,实现命令注入的功能。

如果想要实现命令注入的功能,直观想法就是在输入框中输入想要执行的命令。从上图中可以看出(虽然很多乱码),该测试平台运行在windows系统上,所以只能执行一些windows命令,如dir、ipconfig等进行测试。另外,进行简单测试之后,可以发现虽然该页面没有对输入进行验证,但是如果直接输入命令,如dir会提示出错,猜想代码应该是ping $ip,所以为了实现命令注入,考虑一行执行多条命令。
多命令执行
在windows操作系统中,存在三个操作符,可以实现一行运行多条命令:&、&&、||。
&
示例:a & b
含义:先运行a命令,再运行b命令
说明:无论a命令执行是否成功,b命令都会执行
&&
示例:a && b
含义:先运行a命令,如果a命令执行成功再执行b命令
说明:如果a命令执行失败,就直接退出,不再执行b命令。可以理解为与操作,命令运行成功返回1,运行失败返回0。
||
示例: a || b
含义:先运行a命令,如果a命令执行失败再执行b命令
说明:如果a命令执行成功,直接退出,不再执行b命令。可以理解为或操作。
Level-{low}
所以,如果想要实现命令注入,输入0.0.0.0 & dir即可。