1. 实验环境搭建与工具准备
大家好,我是老张,一个在网络安全领域摸爬滚打了十多年的老兵。今天,我想带大家完整地走一遍一个经典的Web渗透测试实战流程。这个实验很有意思,它把两种最常见、也最危险的Web攻击——XSS和SQL注入——串联了起来,模拟了一个从客户端浏览器劫持到后端数据库攻陷的完整攻击链。整个过程就像一部侦探电影,从一个不起眼的留言板开始,一步步深入,最终拿到整个数据库的控制权。我会把每一步的操作细节、踩过的坑,以及背后的原理掰开揉碎了讲给你听,保证你跟着做一遍就能上手。
我们先来聊聊这次实验需要准备的东西。整个实验环境需要三台“机器”,它们扮演着不同的角色。第一台是靶机,也就是存在漏洞的网站服务器。为了简单起见,我们可以在Windows系统上用IIS搭建一个老式的ASP留言板网站,这种网站通常安全措施比较薄弱,非常适合我们练手。第二台是攻击机,我推荐使用Kali Linux,因为它集成了我们这次要用到的所有“神兵利器”,比如BeEF和SQLMap。第三台是受害者机器,任何一台能上网的电脑都行,用来模拟普通用户访问那个被我们动了手脚的留言板。
这里有个我踩过的大坑,必须提醒你。当你辛辛苦苦在Windows上配好IIS和留言板程序后,第一次访问网站,它可能会弹出一个要求输入账号密码的窗口。我当时就卡在这里好久,心想:“一个破留言板还要登录?” 后来才明白,这是IIS的匿名访问权限没设置好。解决办法很简单:打开IIS管理器,找到你的网站,进入“身份验证”设置,确保“匿名身份验证”是启用的,并且其使用的账户(通常是IUSR)对你的网站目录有读取和执行的权限。搞定这个,网站才能被正常访问,否则后续的漏洞扫描全是白费功夫。
至于工具,我们主要用到两个。一个是BeEF,全称是The Browser Exploitation Framework,翻译过来就是“浏览器攻击框架”。它就像一个遥控器,一旦用户的浏览器执行了我们植入的恶意代码,这个浏览器就会被我们“钩住”,我们可以远程向它发送各种指令,比如窃取Cookie、弹窗、甚至重定向到其他网站。另一个是SQLMap,这是一个用Python写的、自动化检测和利用SQL注入漏洞的神器。它能够自动识别注入点、猜解数据库名、表名、列名,最后把数据一股脑儿给你“拖”下来。把这两个工具结合起来用,你就能体会到攻击者是如何步步为营的。
2. 第一步:利用BeEF发起XSS客户端劫持
2.1 发现漏洞与生成“鱼钩”
实验的第一步,我们要找到靶机网站的弱点。这里我使用AWVS(Acunetix Web Vulnerability Scanner)来进行初步的漏洞扫描。当然,你也可以用其他扫描器,甚至手动测试。我们的目标很明确:找到留言板提交内容的地方,看看它有没有对用户输入进行严格的过滤。一个典型的测试方法是在留言内容里输入一段简单的HTML标签,比如 <script>alert('test')</script>,然后提交。如果提交后,再次浏览留言板时弹出了警告框,那就恭喜你,找到了一个存储型XSS漏洞。这意味着我们输入的恶意脚本被永久地保存到了网站的数据库里,任何后来访问这个页面的用户都会中招。
找到漏洞后,就该我们的攻击机Kali登场了。首先,我们需要启动BeEF。在Kali 2020及以后的版本中,BeEF可能不是默认安装的。打开终端,输入 sudo apt update && sudo apt install beef-xss 来安装它。安装完成后,进入BeEF的目录:cd /usr/share/beef-xss。启动BeEF服务只需要输入 ./beef 即可。你会看到控制台输出一个访问地址,通常是 http://[你的Kali IP]:3000/ui/panel,以及一个默认的用户名和密码(通常是beef/beef)。
登录到BeEF的控制面板后,你会看到一个非常简洁的界面。它的核心是一个叫做 hook.js 的JavaScript文件。这个文件就是我们的“鱼钩”。任何浏览器只要加载执行了这个JS文件,就会自动“上钩”,连接到我们的BeEF服务器,并等待我们的指令。在BeEF的说明里,你可以找到这个hook.js的地址,形如 http://[你的Kali IP]:3000/hook.js。我们接下来要做的,就是想办

从BeEF劫持到SQLMap自动化:一次完整的Web渗透测试实验&spm=1001.2101.3001.5002&articleId=153100822&d=1&t=3&u=5aade6e5e5294581aea6177ddb6b5a45)
611

被折叠的 条评论
为什么被折叠?



