Web小白的靶场初体验-DVWA
一、DVWA简介
-
学习渗透测试,特别是 Web 渗透,最头疼的无疑就是寻找靶机环境,通常是不同的漏洞需要找不同的靶机源码,而不同的源码通常 Web 架构又不一样,所以要找到一套能够练习所有 Web 渗透技巧的靶机环境,经常需要搭建 N 个 Web站点,无疑大大提高了学习的入门门槛。
-
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web 应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
-
DVWA 一共包含了十个攻击模块,分别是:Brute Force(暴力(破解))、Command Injection(命令行注入)、CSRF(跨站请求伪造)、- File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA (不安全的验证码)、SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、XSS(Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨站脚本)。包含了 OWASP TOP10 的所有攻击漏洞的练习环境,一站式解决所有 Web 渗透的学习环境。
-
另外,DVWA 还可以手动调整靶机源码的安全级别,分别为 Low,Medium,High,Impossible,级别越高,安全防护越严格,渗透难度越大。一般 Low 级别基本没有做防护或者只是最简单的防护,很容易就能够渗透成功;而 Medium 会使用到一些非常粗糙的防护,需要使用者懂得如何去绕过防护措施;High 级别的防护则会大大提高防护级别,一般 High 级别的防护需要经验非常丰富才能成功渗透;最后 Impossible 基本是不可能渗透成功的,所以 Impossible 的源码一般可以被参考作为生产环境 Web 防护的最佳手段
二、靶场详情(同一关卡按安全等级排序)
1.Brute Froce
- LOW:
打开靶场,随便猜测用户名和密码进行登录,当然不可能一发入魂啦~
接下来,点击View Source查看本题源码,并分析源码可以发现,本题并没有进行过滤。
那么第一种解题方法就来了,可以构建payload为admin' or '1'='1,输入在用户,密码为空,进行登录测试,得到结果如下,可以看到在成功登陆之后,构建的payload会显示在最后。
那么有没有第二种方法呢?当然有,使用burp进行抓包,然后将有效负载设置为username和password,导入字典(可怜的小黑并没有字典,随便写了一些常见的弱口令进行测试啦~)
对所有攻击结果进行分析,可以看到所有的请求方法都是GET,所有的返回状态码都是200表示成功,那么应该分析哪里呢?长度!可以看到在长度中有一个突出的结果4684,那么就可以得到正确的username和password了。尝试登录,并发现显示结果与方法一不同,恭喜你成功用不同方法解决了LOW难度。
- Medium:
这边的代码加入了延迟两秒才能发送下一个的条件,所以延长了爆破时间,增加了时间成本。
mysqli_real_escape_string(string,connection) :函数会对字符串string中的特殊符号(\x00,\n,\r,\,‘,“,\x1a)进行转义,基本可以抵抗SQL注入
从实际操作上来看,Medium和Low的难度差别并不大,但是需要进行额外的操作。设置时停。但是爆破需要一定时间,这里直接进行最后的输入测试,尝试将admin和password作为正确的口令输入,成功登录。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义