前言
本文主要内容:通过一个最简单的例子说明什么是 XSS 攻击,实现手动注入脚本攻击,以及最后实现利用 BeEF 执行 XSS 攻击
什么是 XSS 攻击
XSS,跨站脚本攻击
JavaScript 代码如何生成网页
实际上网页是由 HTML 翻译而得到的,
JavaScript 的功能就是操作 HTML 文本,改变 HTML 文本的内容,从而让浏览器翻译出不同的网页
比如说我们有下面这么一段代码
Hello, <b>
<script>
var a = 1;
var b = 2;
document.write("world: ",
a+b,
"</b>");
</script>
script 标签里存放的是 JavaScript 代码
在 script 执行后,我们会获得的实际 HTML 代码如下
Hello, <b>world: 3</b>
由浏览器渲染执行后,会在页面上显示:Hello, world: 3
所以这就是我们执行 XSS 的基础,浏览器会执行网页的脚本获取页面
让网页执行恶意脚本
接下来看下怎么在网页中注入恶意脚本,找了一个小例子来演示

这里演示的是一个发布评论的功能,在上方输入要发送的信息和要添加的图片链接,评论就会出现在下方

在演示完功能后,我们就可以对这个网页进行攻击了
因为源码已经给出来了,所以可以判断出在 Message Image 处,我们能够注入恶意脚本

在 Message Image 处,嵌入下面的脚本
" onerror="alert('Hacked!')"

可以看到我们输入的脚本被执行了,弹窗显示 Hacked!
此时的 HTML 代码如下

onerror 后面是报错后,会被执行的 JavaScript 代码,这样就注入了恶意的脚本
换到用户的视角,当他浏览网页,浏览器加载到这条评论时,就会执行本不属于这个网页文件的脚本,也就是被跨站脚本攻击了,会显示弹窗 Hacked!
利用 BeEF 框架进行 XSS 攻击
在尝试了手动 XSS 之后,又到了使用现代工具的时候了,这里要用到的是 BeEF
安装就不说了,百度一下就行,我用的方法是 clone GitHub 上的代码再安装的。
然后执行 ./beef 运行框架

可以看到服务已经启动了,进入链接
http://192.168.199.128:3000/ui/authentication
登录页面如下

进入系统后我们可以看到它贴心地给出了两个链接,选择后面那个 advanced version

复制这个链接,然后用我们的主机访问一下
在我们主机这边看来只是一个普通的牛肉页面,然而当我们回到BeEF页面时,

可以看到被获取了相当多的信息
让我们再做一些操作,选中要攻击的主机,然后按照箭头顺序进行选择

Command -> Create Alert Dialog -> 输入要弹窗的内容 -> Execute执行
我们可以获得下面的结果

于是我们就使用 BeEF 让被攻击者的浏览器执行了我们准备好的脚本,完成了 XSS 攻击
小结
XSS 攻击利用了开发者不慎留下的可被注入的漏洞,或是黑客自己创建的恶意网站,在用户的主机上执行恶意脚本,实现攻击。
其中BeEF就是一款常见的恶意网站构筑脚本,除了弹窗还有很多其他的攻击命令可以自行探索尝试一下。比如 XSS 攻击经常会有的 窃取 cookie 的操作之类的,更换一下注入的恶意脚本即可。当然仅供学习。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取




6036

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



