资讯专栏INFORMATION COLUMN

web漏洞挖掘指南 -XSS跨站脚本攻击

Fourierr / 2153人阅读

摘要:一漏洞原理跨站脚本英文全称跨站脚本,为了不和层叠样式表英文全称混淆,因此将跨站脚本缩写为。二漏洞检测公认有三种类型反射型存储型型。漏洞示例漏洞检测用弹窗进行测试即可,常见的几种弹窗方法。

一、漏洞原理

  1. 跨站脚本英文全称(Cross Site Scripting跨站脚本),为了不和css层叠样式表(英文全称:Cascading Style Sheets)混淆,因此将跨站脚本缩写为XSS。产生XSS漏洞根本原因其实是web应用未对用户的输入进行严格的过滤和转义,导致攻击者可从正常的输入功能注入脚本代码,我常将xss攻击理解为一种javascript注入,当带有xss恶意代码的页面被其他用户访问到时,js便会被执行,js脚本可以执行很多操作,比如:窃取用户cookie,读取用户键盘记录,截屏,恶意跳转等,甚至可以结合BEEF的hook.js钩子劫持用户浏览器。

二、XSS漏洞检测

1.公认XSS有三种类型:反射型、存储型、dom型。根据字面意思很好区分三者,反射型即服务器根据用户当前输入做出的响应,只能触发一次,这个过程就像一次反射。因此市面上大多self-xss都来自反射型xss,攻击者输入xss脚本,输出仅自己看到,仅xss到自己,常在查询、搜索等功能出现。

  1. 存储型xss即页面保存了攻击者输入的恶意代码,除非对应记录被删除,否则可以一直触发xss,常在留言、个人信息登记等功能出现。

  2. dom型xss比较独特,它涉及的两个层次不是服务器端和浏览器端,而是浏览器端的JavaScript层和HTML层。换种更好理解的说法也就是:从服务器脚本变成了客户端脚本,dom xss的payload不需要服务端解析响应,而是靠浏览器的dom解析,因此dom-xss的触发是抓不到请求包的。漏洞示例xss.html:

    <html>    <body>            <div id="tr1">div>            <script>                    document.getElementById("tr1").innerHTML = unescape(location.hash);            script>    body>    html>

  1. xss漏洞检测用弹窗进行测试即可,常见的几种弹窗方法:alert()、confirm()、prompt()、console.log()。测试时,尽量结合各种xss类型的特征对功能点进行验证,除了大家常说的“有框即插(看见输入框就盲插xss payload)”,还需注意请求中的各种参数,是否可以原样输出或者以html代码的形式保存到了另一个页面。

三、XSS漏洞利用

  1. 上文提到过,xss的本质其实是js代码的注入,所以XSS漏洞的危害来源于js代码执行,最常见的就是盗取用户cookie,但是在实际场景中我们经常会遇到cookie设置httponly属性导致无法通过js脚本读取的情况,这时还可以读取用户键盘记录,截屏,恶意跳转等,甚至可以结合BEEF的hook.js钩子劫持用户浏览器。
  2. 以最简单的盗取cookie的payload为例,先用python搭建web服务充当xss平台:

  1. 然后在存有xss漏洞的位置传入payload:
  2. 上述payload先用
  3. 市面上的xss平台其实已经编写出很多成熟的xss利用模板了,js代码操作不熟练的师傅可以直接套用xss平台的模板:

四、Markdown XSS

  1. Markdown 是一种轻量级标记语言,它允许人们使用纯文本格式编写文档。通过简单的文本方式标记就能指定格式,轻轻松松完成文档的编辑。markdown语言从文本-指定格式的转换过程可以看作一系列的html转换,最终以html标签的形式存储在页面上,因此markdown编辑器也可能出现XSS漏洞。
  2. 插入超链接:

  1. 除了插入超链接,我们还可以参照常规的XSS payload进行尝试,比如、 等标签。参考案例:
    http://www.52bug.cn/hkjs/3292.html
    https://mp.weixin.qq.com/s/7Qa4o0sYfJei07K3mjL-GA

五、上传PDF导致的XSS

  1. 之前在论坛上看到过有师傅通过把xss代码加到pdf文件,然后通过正常的文件上传功能传至目标服务器中,利用浏览器自带的pdf阅读功能触发xss,这类漏洞还是会有部分厂商会确认的,参考文章:

https://www.t00ls.cc/thread-48480-1-1.html
https://www.t00ls.cc/articles-62790.html
pdf文件还是很少被禁止上传的,众测项目中可以尝试此类测试。
2. 利用条件:1.有pdf文件上传点 2.保存好的pdf文件可以直接浏览器查看,而不是只能下载至本地。
3. python脚本一键生成带有xss代码的pdf文件:

    from PyPDF2 import PdfFileWriter    file = PdfFileWriter()    file.addJS("app.alert("XSS");")    output = open("xss.pdf", "wb")    file.write(output)

六、xss和markdown xss的fuzz字典可以到原文附件自取

该文章来源火线Zone社区:https://zone.huoxian.cn/d/532-web-xss

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/122463.html

相关文章

  • 信息安全入门书单

    这个书单收集了一些安全领域的入门书籍,分享给各位开发者。 showImg(http://segmentfault.com/img/bVbN6p); 应用程序安全 软件安全评估的艺术 作者:Mark Dowd、John McDonald、Justin Schuh​ BUG猎手日记 作者:Tobias Klein Fuzzing:暴力漏洞挖掘 作者:Michael Sutton、Adam Gr...

    yagami 评论0 收藏0
  • 《Python安全攻防:渗透测试实战指南》学习一

    摘要:白盒测试是指在拥有客户组织所有的资产信息的情况下进行渗透测试。信息分析对搜集到的信息进行分析,为下一步实施渗透测试做准备。形成报告按照与客户确定好的范围需求整理渗透测试结果并将资料形成报告。 第1章 渗透测试概述  1.信息安全发展史  2.信息安全行业的现状         2.1渗透测试...

    Baoyuan 评论0 收藏0
  • NBug战队——2021-09-26第二次会议

    摘要:年月日,在国庆节到来之前的周日,我们开展了战队的第二次会议,在第一次到第二次会议开展之间,又有几个小伙伴加入了我们。第二次会议,仍然是在网络中心的会议室内召开,不过与会的人员除了第一次的几位小伙伴,还有一些新加入的成员。         2021年9月26日,在国庆节到来之前的周日,我们开展...

    rozbo 评论0 收藏0
  • 某设备产品漏洞挖掘-从JS文件挖掘RCE

    摘要:前言某次渗透过程中碰到了个设备产品,通过一些黑盒测试小技巧获取目标权限信息收集点击获取网络安全学习资料攻略多本网络安全系列电子书网络安全标准题库资料项目源码网络安全基础入门安全攻防方面的视频网络安全学习路线图首先拿到了 ...

    goji 评论0 收藏0
  • 漏洞挖掘:一次反序列化漏洞学习

    摘要:将从环境搭建漏洞补丁分析绕过方法思考构建等多个方面进行研究,尽可能的将一些坑点和知识点摸排清楚,从到学习反序列化。 0x01 漏洞背景 该漏洞使用了在当时为新型技术...

    jackzou 评论0 收藏0
  • 靶机渗透 hackme-1(详解,适合新手)

    摘要:目标是通过漏洞获得有限的权限访问,然后权限升级为。使用,并且在可能自行关闭的情况下非常罕见的情况,尝试强制重新启动机器,然后机器应该可以正常工作。 靶机hackm...

    econi 评论0 收藏0

发表评论

0条评论

Fourierr

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<