DVWA(Damn Vulnerable Web Application)是建和个故意留了一堆后门的PHP网站。搭建它不需要什么高深技术,使用但用它练手时,建和你可能会发现,使用自己比想象中更不懂安全。建和
先讲搭建。使用我用的建和环境是Windows 10 + XAMPP,下载DVWA源码后扔进`htdocs`目录,使用改一下`config/config.inc.php`里的建和数据库密码,访问`http://localhost/dvwa`,使用点一下“Create/Reset Database”,建和完事。使用整个过程不到十分钟。建和但要注意,使用PHP版本别太高,建和8.0以上容易报错,7.4最稳。我一开始用PHP 8.2,页面直接白屏,查了半天才发现是`mysql_connect`函数被删了——这就是DVWA的脾气,它太老了,老到和现代环境格格不入。
登录默认账号`admin/password`,进去后你会看到十个漏洞模块,从SQL注入到文件上传,全是经典。但别急着点,先看左边的“DVWA Security”选项,把难度从`low`调到`medium`或`high`。低难度下,SQL注入直接输入`' or 1=1 -- `就能绕过登录,这确实能让你爽一把,但也容易让你误以为黑客攻击就这么简单。真实世界里的系统,绝不会把`id`参数直接拼进SQL语句,连过滤都不做。
我建议你从SQL注入模块开始练。在low难度下,输入`1' AND SLEEP(5) -- `,页面会卡五秒才返回,那一刻你会直观感受到“时间盲注”的力量。但如果你只停留在low,那DVWA就白搭了。把难度调到high,你会发现同样一个输入框,它加了`mysqli_real_escape_string`,还用了预编译语句——你之前的招数全失效了。这时候你才真正开始学东西:原来防御不是靠某个函数,而是靠代码结构。
还有个模块我必须提——文件上传。low难度下,你传一个`shell.php`,它直接就给你存到服务器上,访问一下就能执行命令。但medium难度加了文件类型检查,你得改包;high难度直接检查文件头,你得把PHP代码藏在图片的`EXIF`信息里。这个模块的递进设计,比任何教科书都讲得清楚:安全是攻防双方不断升级的过程,不是一劳永逸的配置。
用DVWA时有个坑——它会真的攻击你的本地数据库。有一次我在测试SQL注入时,不小心把`users`表删了,整个DVWA直接崩掉,只能重新初始化。所以建议你装个虚拟机或者用Docker,别拿自己日常用的电脑当靶场。我后来改用`docker run -d -p 80:80 vulnerables/web-dvwa`,一条命令搞定,还方便随时重置。
这工具最大的价值,是让你在“合法环境”里体验破坏的快感。但别沉迷于那种“我黑进去了”的幻觉。DVWA的代码就摆在你面前,它所有漏洞都是刻意设计的,你只是按图索骥。真正的渗透测试,你得先花几个小时做信息收集,然后面对一个未知框架的漏洞,那才是硬仗。
最后说一句,DVWA的PHP代码写得很烂,但恰恰是这种烂,让你看清了漏洞的本质——不是某个函数的问题,而是开发者对用户输入的习惯性信任。你用十分钟搭好它,但可能要花几个月才能真正理解它想教你的东西。
顶: 47踩: 8






评论专区