xss漏洞全称为跨站脚本漏洞,攻击对象是客户端,原理是hacker会向网站插入一些恶意JavaScript代码(从留言板,url等位置插入后嵌入在网页),如果没有对用户提交的数据过滤等防范,服务器会以为这就是网页本身的代码,导致这些恶意代码会返回客户端执行从而导致客户端被攻击
限制不同源的脚本对资源的跨域访问
同源:协议、域名、端口三者一致
042K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2i4K6u0W2j5$3!0E0i4K6y4m8z5o6l9^5x3q4)9J5c8Y4m8S2k6$3f1I4 和 dc0K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2i4K6u0W2j5$3!0E0i4K6y4m8z5o6l9^5x3q4)9J5c8Y4m8S2k6$3f1J5
两者协议都为https,域名都为a.com,端口都为8080,所以同源
不同源:
9a6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2i4K6u0W2j5$3!0E0i4K6u0r3M7r3q4Y4k6e0p5`. 和 b2bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3q4Q4x3X3g2U0L8$3#2Q4x3V1k6H3j5h3N6W2x3R3`.`.
以上两者协议不同不同源
81fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2i4K6u0W2j5$3!0E0i4K6u0r3M7r3q4Y4k6e0p5`. 和 478K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2M7$3c8Q4x3X3g2S2i4K6u0W2j5$3!0E0i4K6u0r3M7r3q4Y4k6e0t1`.
以上两者域名不同所以不同源
bfdK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2i4K6u0W2j5$3!0E0i4K6u0r3M7r3q4Y4k6e0p5`. 和 96dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2i4K6u0W2j5$3!0E0i4K6y4m8z5o6l9^5x3q4)9J5c8Y4m8S2k6$3f1J5
以上两者端口号不同(443与8080)不同源
xss漏洞利用是嵌入在网站本身中的,因此都是在同一个网站内进行窃取数据等操作,所以此时不受同源策略限制,可以获得本网站也就是a网站的数据
如果a网站仅有xss漏洞的话,由于同源策略的限制,xss无法从a网站获取b网站的数据,除非还有别的漏洞加以配合
总而言之xss漏洞因为同源策略只能攻击当前网站而无法攻击别的网站
攻击是一次性的,也就是服务器没有把恶意代码传入数据库存储起来,恶意脚本通过url或提交表单直接反射在页面中,用户点击提交或访问构造的url时触发
攻击是永久性的,网站获取到恶意代码后将其存入数据库或是文件系统,在用户再次访问这个网站时,这个恶意脚本也会被当做js代码应用于网站,从而被执行
DOM:DOM 将 HTML 文档表示为一个树形结构,每个 HTML 标签(如<div>、<p>)都是一个节点,节点之间通过父子关系或是兄弟关系连接
HTML DOM 定义了访问和操作 HTML 文档的标准方法。
DOM 以树型结构表达 HTML 文档
HTML DOM树型结构

攻击是一次性的 hacker可以通过构造url改变页面的dom结构,比如
1ecK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2i4K6u0W2j5$3!0E0i4K6u0r3#<script>alert(1)</script>,如果页面中存在动态修改dom的代码,就可以将<script>alert(1)</script>嵌入到页面中
b13K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2i4K6u0W2j5$3!0E0i4K6u0r3i4K6t1K6N6r3g2K6N6q4!0q4z5q4!0m8c8W2!0m8y4i4g2J5L8q4!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4W2)9^5y4q4)9^5c8W2!0q4y4W2)9^5x3q4)9&6c8q4!0q4y4W2)9&6z5q4!0m8c8W2!0q4z5q4!0m8c8g2!0n7c8W2!0q4z5g2)9&6y4#2!0m8c8h3q4Q4c8e0N6Q4b7V1c8Q4z5e0q4Q4c8e0N6Q4b7f1u0Q4z5e0W2Q4c8e0W2Q4b7e0q4Q4b7U0g2Q4c8e0W2Q4z5f1c8Q4b7e0u0Q4c8e0c8Q4b7U0S2Q4b7f1c8A6k6q4)9K6c8s2c8W2M7%4c8Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0g2Q4z5o6k6Q4z5o6g2Q4c8e0g2Q4b7f1g2Q4b7U0W2Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0c8Q4b7U0S2Q4b7f1q4A6k6q4!0q4y4q4!0n7z5q4)9^5c8q4!0q4y4W2)9&6z5q4!0m8c8X3N6W2N6q4!0q4z5q4!0m8c8W2!0n7y4#2!0q4y4W2!0n7x3g2)9^5x3W2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4g2)9^5c8W2)9^5x3W2!0q4y4W2)9&6y4g2!0n7x3q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4z5q4)9^5x3q4)9^5b7#2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4#2!0n7c8q4)9&6x3g2!0q4y4#2!0m8b7W2)9&6z5g2!0q4y4g2)9^5y4g2)9^5x3#2!0q4y4#2!0n7y4q4!0m8x3q4!0q4y4#2)9&6b7g2)9^5y4r3W2V1
比如

当你访问这个 c57K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2i4K6u0W2j5$3!0E0i4K6u0r3i4K6t1K6j5i4m8H3e0h3q4A6L8W2!0q4y4W2)9&6y4#2!0n7y4W2!0q4y4g2!0n7x3q4!0n7x3g2!0q4y4q4!0n7b7#2)9&6b7g2!0q4z5q4!0n7y4#2!0n7x3#2!0q4z5q4!0n7c8q4!0m8b7#2!0q4y4g2)9^5z5q4!0n7x3r3W2V1i4K6y4p5j5i4m8H3e0h3q4A6L8W2!0q4y4g2)9&6c8q4)9&6y4#2!0q4y4g2!0m8c8W2!0n7z5g2!0q4y4g2!0n7b7g2)9&6y4q4!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4g2)9^5y4W2)9^5y4g2!0q4y4g2!0m8c8g2!0n7z5b7`.`.
页面中存在动态修改dom的代码是什么意思呢?
比如

这样就可以将id=content的元素内容改变为我们传入的url里“#”号后的内容,从而实现嵌入
发现输入框,且输入的数据会被嵌入页面元素


尝试xss漏洞,发现输入框有长度限制,改大一点就好

输入<script>alert(666)</script>,发现弹窗,证明存在xss漏洞

尝试获取登录用户cookie
将上一个payload里的666改成document.cookie即可实现


或者使用document.write

获取当前时间


修改网站标题


提示用户名密码为admin/123456

登录后发现和上一个get反射xss页面一样


[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2025-3-18 14:33
被VermiliEiz编辑
,原因: