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。
----vincebye---