一、xss注入的思路
- 在目标网站找到注入的点,例如注册,留言,搜索,提交,评论等页面
- 在注入点输入一些字符,' " < > script alert javascript,点击提交查看是否被过滤。
- 通过未过滤的语句判断是否可以进行js代码的编写
- 提交构造的脚本,或者通过绕过的方式查看源码,判断是否存在xss漏洞
- 一般查询接口、用户登录、搜索、订单提交容易出现反射型XSS,留言板、评论、用户昵称、用户信息等凡是可以提交数据由服务器进行存储和显示的位置都有可能出现存储型跨站容易出现存储型XSS;
二、xss漏洞挖掘
1.输出在标签外
尝试输入一些关键字符,判断是否可以被过滤掉,然后尝试闭合前边的,构造新的标签。
输入payload:</span><script>onclick:alert(1)</script>

2.输出在标签内部
2.1 如果在引号内部,可以闭合,构造新的属性,存在xss漏洞

payload:'><img src=1 οnerrοr=alert(1)>


2.2在标签内部,不能闭合,判断该标签能不能支持JavaScript代码,如果支持就存在,不支持就不存在。

2.3.在引号外部


payload:autofocus='true' οnfοcus=alert(1) ,直接写属性即可实现
3.输出在JavaScript代码中<script>输出位置</script>
3.1 能闭合引号,直接插入js代码,后边可以效能则注释

payload: ";alert(1) //

3.2不能闭合引号
(1)使用document.write 输出到页面里,
(2)使用inner.HTML 输出到页面里
3.3输出在引号外部
直接输入js代码即可

三、xss漏洞的防护
XSS的威力主要是取决于JavaScript能够实现的程度,XSS跨站脚本的形成原因是对输入输出没有严格过滤,导致在页面上可以执行JavaScript等客户端代码,所以只要将敏感字符过滤,就可以修复XSS跨站漏洞。
总结:输入做过滤,输出做转义(编码)
本文详细介绍了XSS注入的思路,包括在不同页面寻找注入点,利用特殊字符测试过滤机制,以及如何构造脚本进行漏洞验证。同时,列举了多种XSS漏洞挖掘的方法,如标签内外的注入、JavaScript代码中的注入等。最后,讨论了XSS漏洞的防护措施,强调了输入过滤和输出转义的重要性。

2037

被折叠的 条评论
为什么被折叠?



