DVWA---命令行注入等级演练(亲测0)
命令行注入
原理:
web应用程序中调用了系统可执行命令的函数,而且输入参数是可控的,如果黑客使用命令拼接符,拼接获取数据的命令,就可以进行非法操作了。
低级
步骤
- 代码分析
低级的命令行注入没有任何的过滤,只要使用&&、 || 、 |等都可进行注入。 - Ping 127.0.0.1
如图所示: - 使用命令连接符进行测试:
命令连接符:
1)&&:代表首先执行命令a在执行命令b,但是前提条件是命令a执行正确才会执行命令b,在a执行失败的情况下不会执行b命令。所以又被称为短路运算符。
2)&:代表首先执行命令a在执行命令b,如果a执行失败,还是会继续执行命令b。也就是说命令b的执行不会受到命令a的干扰,在执行效率上来说“&&”更加高效。
3)||:代表首先执行a命令在执行b命令,如果a命令执行成功,就不会执行b命令,相反,如果a命令执行不成功,就会执行b命令。
4)|:代表首先执行a命令,在执行b命令,不管a命令成功与否,都会去执行b命令。
而且IP与命令之间与符号是否有空格,并不影响。
中级
步骤:
- 代码分析:
将&&和:过滤成了空字符,但是并没有过滤“|”等其他命令连接符。因此可利用其他命令连接符来执行。 - 测试
使用&&,不管有没有空格隔开都会报错。
其他的则可以正常使用。IP与命令之间与符号是否有空格,也并不影响
高级
步骤:
- 代码分析:
高级中将很多符号进行了过滤。
所以我们用之前的输入很多都是错误的结果。
2.测试
只有利用空格,来执行,”|”是管道符,意思是将前者处理后的结果作为参数传给后者。。