摘要:持久型相当于存储型跨站脚本。这玩意儿涉及到一点和浏览器引擎解析的问题。说正事,是支持码形式的。的调用有几个概念我们先来了解一下。本来说的只用天完成的,没想到各种事儿拖了两天,。
前些时间准备面试的时候一直会遇到这个XSS,寥寥几句话好像很简单,后来看到同学的《XSS跨站脚本攻击剖析与防御》这本书,稍微翻看了一下,其中的学问还是挺多的。这系列的文章就当做读书笔记吧。
什么是XSS听过很多道理,当然很多人都已经知道XSS是个啥,跨站脚本(Cross-Site Scripting),由于它前面有个老大哥CSS摆在那儿,就只能叫XSS了。官方是这么说的"A cross-site scripting vulnerability may be used by attackers to bypass access controls such as the same-origin policy."“一种可能会被攻击者用来 通过 比如同源策略 来获取用户权限的跨站脚本。”
通俗点来说,比如你在浏览百度的时候,假设百度没做任何安全策略(当然这是不可能的),攻击者对百度的登陆按钮做了点修改,你登陆的时候,它把你登陆的信息都发送到攻击者那儿去了,GG,2个T的学习资料没了。这还算好的,给你的花旗银行网站来个这玩意,2个亿没了。
也叫做非持久性、参数性跨站脚本,顾名思义,攻击者制作了一个含有恶意代码的url,比如
http://www.test.com/search.ph...=">
(这个算恶意比较小的,要是在里面获取你的cookie
然后攻击者给你发了个链接,“大胸妹妹正在直播,邀请您观看。”
大家可以搭个DVWA自己玩一下嘛,别的漏洞也有,就是别用太高级的浏览器,这时候深恶痛绝的IE就该上场了,时候表演真正的技术了。
“我不服,就这URL我还不一眼就看出来有毛病?”
“http%3A//www.test.com/search.php%3Fkey%3D%22%3Cscript%3Ealert%28%22xss%22%29%3C/script%3E%22,继续装逼。”
相当于存储型跨站脚本。
来看看有什么效果(想想还有点小激动呢)
当然了这不是你的锅,但如果这个网站是你搭的,那你等着GG吧。如果这个玩意儿一直没有被搞掉,而攻击者给你来了10000个这样的评论,每一次刷新后都会来10000下,想想会发生什么吧。
XSS构造剖析 绕过XSS-Filter当然大部分的程序员儿是不会像我这么挫的,正常情况下基本都会在Web应用中设计一个XSS Filter,一些白名单、黑名单什么的来过滤掉大胸妹。那有没有能过滤掉所有大胸妹的Filter呢?
我们有很多绕过Filter的方法:
1)利用<>标记注射代码前面我们写的大胸妹,哦不是,代码都是这样的,不多说了。
2)利用HTML标签属性执行XSS这玩意儿呢对我们这些使用Canary、Nighty的人来说是没有任何威胁的?,当然对一些非功能需要还在使用IE6的山顶洞人还是有点威胁的。
3)空格回车Tab加入你在你的黑名单里加了"javascript",然后说这下没办法来写脚本了吧。对不起,没用。
再次GG。这玩意儿涉及到一点js和浏览器引擎解析的问题。我们知道
var a = daxiongmei var b = "kan na ge daxiongmei"
这样虽然没有分号不像我们这些规范的程序员的编程习惯,但它是没毛病的而且很Geek,那这样呢?
var a = "kan na ge daxiongmei; alert(a);
也是可以的!因为引擎并不会把换行符看成一个完整语句的终点(上面的可以是因为引擎已经意识到一个完整的语句了),它会继续处理后面发现的内容,知道一个分号出现或者这个语句变成一个完整的语句。
4)对标签属性值转码那我处理输入的时候.split(" ").join("")行了吧,对不起还是不行。
还记得大写字母A的ASCII码是多少吗,不记得先向你的老师说声对不起又还给您了。
说正事,HTML是支持ASCII码形式的。我们把上面的代码换成这样。
;
GG
所以最好把这些字符也给过滤了吧。
这个和上面的第二点有点类似,只不过这次把属性换成事件,像这样:
onerror换成onclick,onblur什么都是可以的。
6)利用CSS跨站CSS也可以用来跨站,想的起来是什么吗?方式还挺多的
或者用@important引入,引入文件写个xss,就是这么简单。你说我们名字简写都一样的,相煎何太急呢。
利用字符串编码其实之前我们已经几次提到了用字符串编码来绕过Filter的方法,由于js支持Unicode、escapes、十六进制、八进制等编码,还有很多加密编码,防止XSS变得很麻烦,心累。
拆分跨站法可能有的同学要想好事儿了,你每次攻击我都要写那么长的代码,我限制你个字符输入字数为比如30个不就行了吗,你写两个script标签都要17个字符了。Naive
...
GG
Shellcode的调用有几个概念我们先来了解一下。
【Shellcode】
这玩意儿呢一开始是指溢出程序和蠕虫病毒的核心,其实看单词就能看出来了,就是一个利用漏洞执行时的代码。在咱么这儿呢,就是指XSS利用代码。
【Exploit】
翻译:利用。这玩意我我不知道怎么解释,“通常表示完整编写好的漏洞利用工具”,总之记住Exploit往往包含了Shellcode。
payload、shellcode、exp、poc怎么区别?
【POC】
Proof of Concept,是一段证明漏洞存在的程序代码片段。
其实这和JSONP有点类似,在url后面跟个script标签,标签里引入远程的js文件,这文件不是个好东西,恩差不多就是这样。
使用window.location.hash知道location.hash获取什么吗?比如我们有个url:http://domain/#admin, location.hash获取的就是"#"后面的东西,这里就是admin。那location.hash怎么用到我们的XSS里面呢?
http://www.bug.com/veiw.php?sort=">#alert("xss")"
应该都能看懂我就不多说了啊。
XSS Downloader介绍另外一种存储和调用Shellcode的方法,把它存储到网站的数据库中个,然后再把它下载下来执行。简单说呢,就是我们写了个XSS的下载器,把这个下载器放在网站的某个页面,再用Ajax什么的来向这个网站发送请求,执行了返回的数据,返回的是啥?Shellcode。
备选存储技术浏览器的存储技术有哪些?相信经过校招的同学都应该不陌生。Cookie、Flash、UserData、localStorage等。既然这些玩意儿都能存储数据,那Shellcode呢,当然也可以。
好了第一章就到此结束了。本来说的只用1天完成的,没想到各种事儿拖了两天,enjoy。当然肯定大部分都不enjoy的,欢迎提意见。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/80825.html
摘要:网络黑白一书所抄袭的文章列表这本书实在是垃圾,一是因为它的互联网上的文章拼凑而成的,二是因为拼凑水平太差,连表述都一模一样,还抄得前言不搭后语,三是因为内容全都是大量的科普,不涉及技术也没有干货。 《网络黑白》一书所抄袭的文章列表 这本书实在是垃圾,一是因为它的互联网上的文章拼凑而成的,二是因为拼凑水平太差,连表述都一模一样,还抄得前言不搭后语,三是因为内容全都是大量的科普,不涉及技术...
摘要:三轮技术面上一轮发挥感觉没前两轮发挥好,所以还是有点不自信的,没想到第三天后,就来电话了,通知我去阿里园区面试。 一般阿里社招都是招3-5年的P6+高级工程师,当初自己一年经验也没有想过有这个面试机会。 虽然没想着换工作,但是经常关注一些招聘网站的信息,某一天,在某boss上有个人找我,叫我发一下简历,我一看是阿里的某技术专家,虽然之前也有阿里的在某boss上给我要简历,但是我深知自己...
阅读 1231·2021-11-23 09:51
阅读 3353·2021-09-06 15:00
阅读 950·2021-08-16 10:57
阅读 1344·2019-08-30 12:46
阅读 900·2019-08-29 12:22
阅读 1533·2019-08-29 11:07
阅读 3110·2019-08-26 11:23
阅读 2955·2019-08-23 15:14