DVWA 命令注入 实验
首先我们探讨一下 什么叫命令注入,指的是利用没有验证过的恶意命令或代码,对网站或者服务器进行渗透攻击。
注入有很多种,并不仅仅是SQL注入。比如:
- 命令注入(Command injection)
- Eval注入(Eval injection)
- 客户端脚本攻击(Script insertion)
- 跨网站脚本攻击(Cross Site Scripting,XSS)
- SQL注入攻击(SQL injetion)
- 动态函数注入攻击(Dynamic Variable Evaluation)
- 序列化注入&对象注入
话不多说 开始上图 ,我最近开始学习关于web开发,以至于要练习一下关于web漏洞的使用,就玩了一下
DVWA
LOW级
1.首先 来到这里 先ping一下127.0.0.1
如果返回的值有乱码的,不要慌,找到WWW下的目录,把DVWA的文件夹下的dvwaPage.inc的php文件。
把里面的所有的“charset=utf-8”全部换成“charset=gb2312”,这里网站里使用utf-8未能正确解码。
2.
127.0.0.1 ; ls 这里说的是环境是centos
127.0.0.1 && net user windows下查看用户
若是windows下 则“;”不能使用 ,因为centos可以使用分号进行俩条命令执行
medium级
这里我提前在靶机系统里面建立了个flag.txt
构造我们的语句127.0.0.1 | cat /flag.txt
| 的意思是前面命令的输出结果作为后面的命令的输入。下面出来的是我自己乱打的几行 意思就是 能够查看到flag.txt 的内容!
这道题注入题实际考的是对于源代码的审计,根据它所过滤的管道符来进行绕过,能够使得ping命令和下一条命令能够正常使用,通过ping命令来得到下一条命令的执行,获取到漏洞环境中自己所需要的信息!
知识拓展:
-
; 分号在linux命令执行的时候,可以直接执行几条命令,命令和命令之间用分号隔开。
-
& 前面的命令执行后接着执行后面的命令
-
&& 前面的命令执行成功后才可以执行下面的命令
-
| 前面的命令输出结果为后面的命令输入的内容
-
|| 前面的命令执行失败后才会执行后面的命令