【Web安全】什么是XSS攻击?如何实现手动XSS,利用BeEF执行XSS攻击?

前言

本文主要内容:通过一个最简单的例子说明什么是 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 的操作之类的,更换一下注入的恶意脚本即可。当然仅供学习。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值