(九)XSS漏洞原理与利用_09XSS漏洞挖掘技巧mp4

[复制链接]
发表于 2025-11-12 19:54:39 | 显示全部楼层 |阅读模式

(一)XSS注入思路


① 在目标站点上找到输入点,比如查询接口,留言板等;
② 输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理;
③ 通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);
④ 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;


XSS漏洞挖掘



环境:看URL参数输出的位置和看输入框输出位置。输出位置不同,攻击方式不同.



第一题: 输出在标签外(尖括号外部)


存在漏洞的前提是输出位置要能够构造标签,如果不能构造说明不存在

测试方式:输入一些特殊字符
        例:!#<> 等 如果正常输出可以尝试构造正常标签
        例:<script>alert(1)</script>
        例:<img src=1 onerror=alert(1)>
        
如果不能弹窗,可以把标签大小写嵌入,防过滤,如果正常弹窗,说明存在注入点



第二题: 输出在标签中


2-1.引号内部 能闭合,构造新的属性或者构造新标签, 如果可以构造新的属性,那么就存在XSS漏洞
                原始标签:<input type=text value="参数输出位置">
                嵌入值: " autofocus= 'true' white-space: normal;">                <input type=text value="输出位置" autofocus= 'true' >
                不能构造新的属性,尝试闭合标签,构造新标签

2-2.引号内部 不能闭合,就要看当前属性是否支持JavaScript代码,如果支持,就存在,如果不支持就不存在(过滤或者转义了)
                      输入值: javascript:alert(`xss`)
                <input type="text" value="参数输出位置"> 此参数不支持JS代码
                <img src='1.jpg'> 参数支持JS代码,正常加载图片时,运行                输出位置的JS代码
                <a href='参数输出位置'>1111</a>  这里支持JS代码



2-3.引号外部,看是否能够构造新的属性,如果可以构造新的属性,就存在xss漏洞, 不能构造,是否能闭合标签构造新标签
        原始代码:<input type="text" value="12345" 参数输出位置>
        嵌入代码:<input type="text" value="12345" autofocus='true' onfocus=alert(1)>
        input标签支持onfocus获取焦点属性,访问页面时自动获取焦点触发JS代码






第三题: 输出在JavaScript代码中<script>输出位置</script>

  1. 3-1.输出在引号内部:注意不能传</script>.不然会提前结束JS代码运行
  2. a).能够闭合引号,直接插入js代码,剩下可以考虑闭合后面的代码或者直接注释
  3.         例:
  4.         <script>
  5.                             var hack = "www.baidu.cn  参数输出位置  ";
  6.                             var hack = "www.baidu.cn  ";alert(1);//     ";
  7.         </script>
  8. b).不能闭合引号
  9. 使用document.write 输出到页面里,
  10.         http://localhost/admin.php?name= <img  src=1 onerror=alert(/xss/)>
  11.         <script>
  12.                 var hack = "www.baidu.com 参数输出位置 ";
  13.                 document.write(hack);
  14.         </script>
  15. 使用inner.HTML 输出到页面里
  16.         <script>
  17.                 var hack = "www.baidu.com <?=$name;?>";
  18.                 var out = document.getElementById('baidu');
  19.                 out.innerHTML = hack;
  20.         </script>
复制代码


XSS的防范


XSS的威力主要是取决于JavaScript能够实现的程度,XSS跨站脚本的形成原因是对输入输出没有严格过滤,导致在页面上可以执行JavaScript等客户端代码,所以只要将敏感字符过滤,就可以修复XSS跨站漏洞。

修复和防范方法:
三种类型的XSS漏洞都可以通过过滤或编码进行修复。

反射型XSS和存储型XSS可以在服务端对用户输入输出的内容过滤和编码操作,将关键字进行过滤处理,关键符号进行编码处理,如将所有on事件,script等关键字进行过滤,将所有<,>,”,’,=等特殊符号进行实体化编码或百分号编码便可以修复。

DOM型XSS如有在服务端进行交互,也可参考上述的方法进行修复,如未和服务端进行交互,可在客户端使用JavaScript等客户端脚本语言进行编码和过滤处理。

总结:输入做过滤,输出做转义(编码)



必火网络安全培训,北京实地培训,月月有开班,零基础入门,四个月打造渗透高手。
详情请加微信:nvhack/153-2000-4362,手机微信同号。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|女黑客安全网 |网站地图 | 津ICP备17008032号-3

GMT+8, 2026-2-2 05:17 , Processed in 0.091475 second(s), 24 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表