DVWA漏洞练习平台
一、Brute Force
【Low】
【Medium】
【High】
【Impossible】
二、Command Injection
【Low】
【Medium】
【High】
【Impossible】
三、CSRF
【Low】
【Medium】
【High】
【Impossible】
四、File Inclusion
【Low】
【Medium】
【High】
【Impossible】
五、File Upload
【Low】
【Medium】
【High】
【Impossible】
六、Insecure CAPTCHA
【Low】
【Medium】
【High】
【Impossible】
七、SQL Injection
【Low】
①判断是否存在注入,注入是字符型还是数字型
输入1,查询成功
输入1’and ‘1’ =’2,查询失败,返回结果为空;
输入1’and ‘1’ =’1,查询成功,说明存在字符型注入。
②猜解SQL查询语句中的字段数
从1开始,逐渐增加order by后面的数字的大小进行猜测
当输入3时就出现了错误,说明数据查询的表的字段数是2,只有两列
④确定显示的字段
我们发现,1和2都是显示位
④获取当前数据库
查看当前数据库名称和版本:1’ union select database(),version()#
⑤获取数据库中的表
当mysql≥5.0的时候,mysql中存在一个数据库,名为:information_schema ,该数据库中存在一张表,名为:tables,表中存在字段table_schema、table_name,分别存放着所有数据库名称、所有表名。获取数据库dvwa中的表名:1’ union select table_name,table_schema from information_schema.tables where table_schema= ‘dvwa’#
存在两张表: guestbook、users
6.获取users表中的字段名
1’ union select 1,group_concat(column_name) from information_schema.columns where table_name=‘users’#
7.查看账号密码
1’ union select user,password from users#
我们得到的是密码的md5值,将md5值在线解密,
【Medium】
【High】
【Impossible】
八、SQL Injection (Blind)
【Low】
【Medium】
【High】
【Impossible】
九、Weak Session IDs
【Low】
【Medium】
【High】
【Impossible】
十、XSS (DOM)
【Low】
【Medium】
【High】
【Impossible】
十一、XSS (Reflected)
【Low】
①在表单输入,有输出,在dvwa的目录vulnerabilities\xss_r\source\,查看low.php源代码,可以看到没有对参数做任何防御处理措施,直接输出
②插入代码,反弹
【Medium】
①在dvwa的目录vulnerabilities\xss_r\source\,查看Medium.php源代码,可以看到这里对输入进行了过滤,使用str_replace函数将输入中的 ,是没有办法反弹的。
②大小写绕过:,成功反弹
③组合过滤条件绕过:<scr,成功反弹
④尝试使用别的标签来绕过:<body οnlοad=alert(‘xss’)>,成功反弹
【High】
①在dvwa的目录vulnerabilities\xss_r\source\,查看high.php源代码,可以看到这里也对输入进行了过滤,preg_replace() 函数用于正则表达式的搜索和替换,这使得双写绕过、大小写混淆绕过(正则表达式中i表示不区分大小写)不再有效,虽然对
②尝试使用别的标签来绕过:<img src="" οnerrοr=alert(‘xss’)>,成功反弹
【Impossible】
十二、XSS (Stored)
【Low】
①在dvwa的目录vulnerabilities\xss_s\source\,查看low.php源代码,
使用trim函数对两个参数过滤掉两边的空格;
使用mysql_real_escape_string函数转义SQL语句中的特殊字符;
使用stripslashes函数过滤掉”\”
这些源码没有防御XSS漏洞,只防御了SQL注入漏洞
②尝试一般的XSS攻击: ,成功
【Medium】
①在dvwa的目录vulnerabilities\xss_s\source\,查看Medium.php源代码,
strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签,但允许使用标签;
addslashes() 函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串;
htmlspecialchars函数对message参数进行编码,因此无法再通过message参数注入XSS代码;
对于name参数,只是简单过滤了
②双写绕过:burpsuit抓包改name参数:
<sc
(name参数有长度限制)
③大小写绕过:burpsuit抓包改name参数:
【High】
①在dvwa的目录vulnerabilities\xss_s\source\,查看high.php源代码,
使用正则表达式过滤了
②尝试使用别的标签来绕过:burpsuit抓包改name参数:
<img src="" οnerrοr=alert(‘sss’)>
【Impossible】
十三、CSP Bypass
【Low】
【Medium】
【High】
【Impossible】
十四、JavaScript
【Low】
【Medium】
【High】
【Impossible】