DVWA笔记(2)--Command Injection(命令注入)

command injection

简单说说命令注入:

命令注入,即是php通过各种能够执行系统命令的函数,如exec,shell_exec等,来执行外部输入的不可靠的命令。严重的服务器可以被控制,一般被黑客配合文件上传来控制靶机。防御命令注入其实很简单,只要不使用php危险函数就可以了,更彻底的话,在php.ini中禁止危险函数即可。

Low

页面:

乍一看,是用来ping某个ip的

正常使用一下

确实是用来ping的。

ping命令是通过cmd来运行的。所以这就是命令注入漏洞。我们可以通过这个漏洞来得到该主机的控制权。那我们就用新建用户来测试吧。

 

cmd中新建用户的命令: net user username /add

cmd中,可以通过&符号来分割两条命令。如:

net user & net user xiaopan233 /add

意思是先查看当前用户,接着再新建用户。所以我们可以利用这个特性来注入。

根据上图我们可以猜测。这个执行的命令是ping 192.168.1.1。所以我们可以这样子输入

192.168.1.1&net user xiaopan233 /add

我们到靶机那里看看

发现确实注入成功了。

来看看源码:

发现并没有进行安全过滤。所以一下就可以注入了

 

Medium

和low一样的注入。输入

192.168.1.1&net user xiaopan234 /add

也成功执行了。我们去靶机那里看看

发现也成功注入。。。那么medium和Low有什么区别嘛。。。看看源码

原来它是过滤了&&。。。通过str_replace来去掉&&。然鹅我用的是&来分割。这就绕过了。。

百度了一下。原来cmd中有三种方式分割命令。&  &&  ||

&是不管前后命令是否执行成功都会执行前后命令

&&是前面的命令执行成功才能执行后面的命令

||是前面的命令执行不成功才能执行后面的命令

涨知识了。。。       

 

high

知道了cmd有三种分割方式,那么我们就可以围绕这三种方式来绕过。

逐个测试

&:

可以看到是乱码,我们到kali的火狐里面看。因为可以调字体。

在meau ---> more --->Text Encoding 。选择中文简体

说明&被过滤了。

 

&&:

 

&&也被过滤了。

||:

使用||的时候要注意,||是前面语句执行错误才能触发后面的语句。所以我们输入的ip要故意弄错。我们输入:

asdf || net user xiaopan235 /add

因为ip是数字加点。弄个字母上去就会报错

成功绕过了,我们去靶机那里看看是否新增成功

 

看看源码吧。。(估计过滤时就是加了一个&的黑名单。。。)

可以看到不是只加了一个&。。。我们看到居然有||,但我们还是成功绕过了。估计是我打的时候||与语句之间有空格。测试一下没有空格会怎么样。

看来成功过滤了。去掉||,所以变成了asdfnet。那么为什么加了空格就能绕过呢。我们仔细看可以看到。过滤的数组中|多了一个空格!

而又因为str_replace的特性,它替换数组时是从上到下替换的(即在上面的数组中,从”&”开始一个个查找)。所以当打了空格的时候。”| ”比”||”先匹配到。所以我们的” || ”就变成了” |”。”| ”变为了空。如下图:

 

而|在cmd中是管道符。将前面的语句的输出作为后面语句的输入。就像linux的|一样。实例:

查看cmd进程。

所以我们可以通过这个特征,使用管道符,也可以绕过。

 

impossible

不可能级别。。之间看源码吧。。

先是通过stripslashes去掉了反斜杠\。

然后通过explode按点拆分ip地址。逐个判断是否为数字。这就防止了打字母来触发错误。并且就算想通过&&或者&来绕过,因为已经通过explode拆分了。所以最后一个肯定不是数字,就无法通过了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DVWA(Damn Vulnerable Web Application)和sqli-labs(SQL Injection Labs)都是用于学习和测试网络安全的漏洞应用程序。它们的区别在于以下几个方面: 1. 目的:DVWA是一个包含多种不同类型漏洞的Web应用程序,旨在帮助用户了解和学习Web应用程序的安全性。它提供了各种漏洞场景,如SQL注入、跨站脚本攻击(XSS)、文件包含等,供用户进行渗透测试和漏洞利用的实践。 而sqli-labs则是专注于SQL注入漏洞的实验平台,提供了一系列具有不同难度级别的SQL注入漏洞场景。它旨在帮助用户深入理解SQL注入漏洞的原理、检测方法和防御措施。 2. 功能:DVWA提供了一个完整的Web应用程序,用户可以通过浏览器访问并与其进行交互。它还提供了一些辅助功能,如自动化工具和提示,以帮助用户更好地理解和利用漏洞。 sqli-labs则更加专注于SQL注入漏洞的实验,提供了一系列具体的实验场景,用户需要通过手动输入恶意代码来利用这些漏洞。 3. 难度级别:DVWA提供了不同难度级别的漏洞场景,从简单到复杂,适合不同水平的用户进行学习和实践。 sqli-labs也提供了多个难度级别的实验场景,用户可以根据自己的能力选择适合的挑战。 总的来说,DVWA是一个综合性的漏洞应用程序,而sqli-labs则更加专注于SQL注入漏洞。用户可以根据自己的需求和兴趣选择适合的平台进行学习和实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值