DVWA-写给自己看的傻瓜式教程

安装

下载PHPstudy

->官网下载

下载DVWA

->官网下载64位版本
->将压缩包解压在PHP study的WWW文件目录下
->将DVWA-master下config下的文件改名为config.inc.php
->将文件中密码改为root

配置DVWA

->打开http://localhost/dvwa-master/setup.php

->点击create,进入登陆页面即成功
->然而我第一次创建时候的提示是:

->然后根据网上搜的解决方法,把config下的php文件密码改成了空,依然不行
->然后我通过改PHP study里数据库的密码为123456

->php文件里的密码也改成了123456.

->然后重启PHP study
->创建成功,进入登陆页面

DVWA登录

->用户名admin,密码password

我也不知道为什么这次就成功了,也并不知道问题出在哪里,GG
我对着运行管理器看了半天端口问题,最后改密码倒是成功了
有小可爱会解答一下给我吗



暴力破解—弱口令漏洞

处置措施:限定登录错误次数、设置验证码、使用复杂强密码
挖掘方法:使用 GoogleHacking 语法进行寻找登录页面

inurl:login
intext:后台登录

遗留:ssh弱口令爆破?带验证码破解?密码加密?


Low/Medium

->Low与Medium,操作相同,但Medium时间延长
在这里插入图片描述
->抓包,send to intruder

Sniper –
这个是我们最常用的,Sniper是狙击手的意思。这个模式会使用单一的payload【就是导入字典的payload】组。它会针对每个position中$$位置设置payload。这种攻击类型适合对常见漏洞中的请求参数单独地进行测试。攻击中的请求总数应该是position数量和payload数量的乘积。
Battering ram –
这一模式是使用单一的payload组。它会重复payload并且一次把所有相同的payload放入指定的位置中。这种攻击适合那种需要在请求中把相同的输入放到多个位置的情况。请求的总数是payload组中payload的总数。简单说就是一个playload字典同时应用到多个position中
Pitchfork –
这一模式是使用多个payload组。对于定义的位置可以使用不同的payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。比如:position中A处有a字典,B处有b字典,则a【1】将会对应b【1】进行attack处理,这种攻击类型非常适合那种不同位置中需要插入不同但相关的输入的情况。请求的数量应该是最小的payload组中的payload数量
Cluster bomb –
这种模式会使用多个payload组。每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会被测试一遍。比如:position中A处有a字典,B处有b字典,则两个字典将会循环搭配组合进行attack处理这种攻击适用于那种位置中需要不同且不相关或者未知的输入的攻击。攻击请求的总数是各payload组中payload数量的乘积

在这里插入图片描述
->start attack
在这里插入图片描述


High

->数据包多一字段,不能继续使用相同方法
在这里插入图片描述
->Pitchfork模式
在这里插入图片描述
->线程为1
在这里插入图片描述
->允许重定向
在这里插入图片描述
->通过正则截取response中信息
在这里插入图片描述
->分别设置字段字典
在这里插入图片描述
->爆破
在这里插入图片描述



命令注入

防范措施:禁用高危系统函数、严格过滤字符、限制允许的参数类型

问题:为什么不能使用net 命令


Low

问题一:乱码
在这里插入图片描述
解决方法:将dvwa目录下includes文件夹中dvwaPage.inc.php文件的编码格式由utf8改为GBK

在这里插入图片描述
->顺利ping 127.0.0.1

在这里插入图片描述
在这里插入图片描述

问题二:对net user 无反应???
经查,将php.ini中disable_functions中的shell_exec()删除
在这里插入图片描述
结果:依旧不行
在这里插入图片描述
其他命令可执行
在这里插入图片描述
在这里插入图片描述


Medium

->代码截图
在这里插入图片描述
->‘&&’已不可
在这里插入图片描述
->’&'可
在这里插入图片描述
->net user 依旧没反应(气炸)
在这里插入图片描述


High

->代码
在这里插入图片描述
->‘&&‘和’&‘都不可
->注意代码中’| '有一空格符
->执行127.0.0.1|ping www.baidu.com(符号后无空格)
在这里插入图片描述



CSRF—跨站请求伪造

防范措施:


Low

->抓取URL
在这里插入图片描述
->构造含链接文档


404

file notfound.

->页面效果

在这里插入图片描述
->使用与运行DVWA同一浏览器(同一浏览器才读得出cookie)打开HTML文档,即可篡改密码


Medium

->对比代码
->stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)
->意思即:在http包中referer字段处找到server_name服务器名=在伪造请求的连接中,referer字段要有被攻击方的服务器名
在这里插入图片描述
->构造伪造请求文档,文件名改为被攻击方ip(192.168.239.129.html),放在DVWA根目录下(本地127.0.0.1路径),使用相同浏览器访问
在这里插入图片描述
->查看包,referer中存在192.168.239.129(被攻击的用户服务器名,127.0.0.1相当于攻击方服务器)
在这里插入图片描述

问题:发现,点击此请求伪造连接,需要在DVWA登录状态时,若登出时点击,则无法更改密码,为什么???
因为一旦退出,则服务器与浏览器之间的会话已失效,具体可再看看CSRF原理


High

->分析源码,每次访问csrf页面,服务器会返回一个token值,向服务器发起请求时需要提交正确的token。
在这里插入图片描述
->利用xss存储型high漏洞,通过抓包修改,利用name框得到token值