首页 > 代码库 > DVWA系列の命令注入&暴力破解

DVWA系列の命令注入&暴力破解

Brute Force(暴力测试):

 技术分享

 

对比难度为Low和high的代码可以发现

 技术分享

相对于Low,High在用户名和密码处分别加了两个过滤函数

Stripslashes:

输入:字符串。

输出:返回一个去除转义反斜线后的字符串(\‘ 转换为 等等)。双反斜线(\\)被转换为单个反斜线(\)。

mysql_real_escape_string以下字符前添加反斜杠: \x00, \n, \r, \, , "\x1a.

 

代码是用来防止sql注入代码,对暴力破解这一项并没有影响,只不过上面爆破成功的万能密码就没有作用了。

 

 

 

Command Execution(命令注入攻击)

 等级为Low时代码

 

 技术分享

代码此时仅做了对Win和linux情况下的不同指令的区别,在Win下直接进行Ping指令,在Linux下,进行Ping –c 3指令(Linux不加-c 3会一直发包),但是并未对target有任何过滤操作。

window 和 linux 下可以直接用 &&和;来执行多条命令

此时在框内输入127.0.0.1;net user

 技术分享

成功执行命令

 

Medium时候代码为

 技术分享

添加了对&&和;的过滤,此时可使用||

 

 技术分享

||为当执行前面的命令失败时,执行||后的命令

 

当等级为high时,代码为

 技术分享

其中先是利用stripslashes函数将target中反斜线去除,再判定是否target为以.为划分的四个数字类别数组。

目前不会。

 

Stristr:

stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

->返回 haystack 字符串从 needle 第一次出现的位置开始到结尾的字符串。

-> 如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符顺序值

php_uname:

string php_uname ([ string $mode = "a" ] )

mode 是单个字符,用于定义要返回什么信息:

  • ‘a‘:此为默认。包含序列 "s n r v m" 里的所有模式。
  • ‘s‘:操作系统名称。例如: FreeBSD
  • ‘n‘:主机名。例如: localhost.example.com
  • ‘r‘:版本名称,例如: 5.1.2-RELEASE
  • ‘v‘:版本信息。操作系统之间有很大的不同。
  • ‘m‘:机器类型。例如:i386

DVWA系列の命令注入&暴力破解