We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
XSS漏洞的产生原因是Web应用未对用户提交请求的数据做充分的检查过滤,允许用户在提交的数据中掺入HTML代码(最主要的是“>”、“<”),并将未经转义的恶意代码输出到第三方用户的浏览器解释执行。
1.非持久型XSS攻击 浏览器每次都要在参数中提交恶意数据才能触发的跨站脚本漏洞 2.持久型XSS攻击 通过提交恶意数据到存储器(比如数据库),Web应用程序输出的时候是从存储器中读出恶意数据输出到页面的一类跨站脚本漏洞
1.绕过XSS-Filter,利用<>标签注入Html/JavaScript代码; 2.利用HTML标签的属性值进行xss攻击。例如:;(当然并不是所有的Web浏览器都支持Javascript伪协议,所以此类XSS攻击具有一定的局限性) 3. 空格、回车和Tab。如果XSS Filter仅仅将敏感的输入字符列入黑名单,比如javascript,用户可以利用空格、回车和Tab键来绕过过滤,例如:<img src=“javas cript:alert(/xss/);”/>; 4. 利用事件来执行跨站脚本。例如:,当src错误的视乎就会执行onerror事件; 5. 利用CSS跨站。例如:Body {backgrund-image: url(“javascript:alert(‘xss’)”)}; 6. 扰乱过滤规则。例如:<IMG SRC=“javaSCript: alert(/xss/);”/>; 7.利用字符编码,透过这种技巧,不仅能让XSS代码绕过服务端的过滤,还能更好地隐藏Shellcode;(JS支持unicode、eacapes、十六进制、十进制等编码形式) 8.拆分跨站法,将xss攻击的代码拆分开来,适用于应用程序没有过滤 XSS关键字符(如<、>)却对输入字符长度有限制的情况下; 9.DOM型的XSS主要是由客户端的脚本通过DOM动态地输出数据到页面上,它不依赖于提交数据到服务器,而是从客户端获得DOM中的数据在本地执行。容易导致DOM型的XSS的输入源包括:Document.URL、Location(.pathname|.href|.search|.hash)、Document.referrer、Window.name、Document.cookie、localStorage/globalStorage
1.在表单提交或者url参数传递前,对需要的参数进行过滤 2.对输出到Web网页的字符串,使用编码(HTMLEncode)进行处理 3.HttpOnly Cookie 将重要的cookie标记为http only, 这样的话当浏览器向Web服务器发起请求的时就会带上cookie字段,但是在脚本中却不能访问这个cookie,这样就避免了XSS攻击利用JavaScript的document.cookie获取cookie
The text was updated successfully, but these errors were encountered:
dwqs/blog#68
https://juejin.im/post/5bc009996fb9a05d0a055192
Sorry, something went wrong.
No branches or pull requests
XSS攻击
跨站脚本攻击(Cross-Site Scripting)
XSS原理
XSS漏洞的产生原因是Web应用未对用户提交请求的数据做充分的检查过滤,允许用户在提交的数据中掺入HTML代码(最主要的是“>”、“<”),并将未经转义的恶意代码输出到第三方用户的浏览器解释执行。
xss攻击类型
1.非持久型XSS攻击
浏览器每次都要在参数中提交恶意数据才能触发的跨站脚本漏洞
2.持久型XSS攻击
通过提交恶意数据到存储器(比如数据库),Web应用程序输出的时候是从存储器中读出恶意数据输出到页面的一类跨站脚本漏洞
常见的xss攻击方法
1.绕过XSS-Filter,利用<>标签注入Html/JavaScript代码;
2.利用HTML标签的属性值进行xss攻击。例如:;(当然并不是所有的Web浏览器都支持Javascript伪协议,所以此类XSS攻击具有一定的局限性)
3. 空格、回车和Tab。如果XSS Filter仅仅将敏感的输入字符列入黑名单,比如javascript,用户可以利用空格、回车和Tab键来绕过过滤,例如:<img src=“javas cript:alert(/xss/);”/>;
4. 利用事件来执行跨站脚本。例如:,当src错误的视乎就会执行onerror事件;
5. 利用CSS跨站。例如:Body {backgrund-image: url(“javascript:alert(‘xss’)”)};
6. 扰乱过滤规则。例如:<IMG SRC=“javaSCript: alert(/xss/);”/>;
7.利用字符编码,透过这种技巧,不仅能让XSS代码绕过服务端的过滤,还能更好地隐藏Shellcode;(JS支持unicode、eacapes、十六进制、十进制等编码形式)
8.拆分跨站法,将xss攻击的代码拆分开来,适用于应用程序没有过滤 XSS关键字符(如<、>)却对输入字符长度有限制的情况下;
9.DOM型的XSS主要是由客户端的脚本通过DOM动态地输出数据到页面上,它不依赖于提交数据到服务器,而是从客户端获得DOM中的数据在本地执行。容易导致DOM型的XSS的输入源包括:Document.URL、Location(.pathname|.href|.search|.hash)、Document.referrer、Window.name、Document.cookie、localStorage/globalStorage
XSS防御方法
1.在表单提交或者url参数传递前,对需要的参数进行过滤
2.对输出到Web网页的字符串,使用编码(HTMLEncode)进行处理
3.HttpOnly Cookie
将重要的cookie标记为http only, 这样的话当浏览器向Web服务器发起请求的时就会带上cookie字段,但是在脚本中却不能访问这个cookie,这样就避免了XSS攻击利用JavaScript的document.cookie获取cookie
The text was updated successfully, but these errors were encountered: