tang_test 发表于 2016-5-5 22:26:41

xss攻击

xss攻击 今天测试的时候发现总是有个弹窗口,要点击3次才能关闭,一直以为是开发忘记把测试的alter删除掉了,结果问了下有经验的人描述了这个现象原来是网站被黑了!,在了解情况后原来是有人在做安全测试。。。具体描述图解。
之后去查询了下知识,原来上个月我已经看过这部分知识,只是没有真正遇到过,原来xss攻击时这个样的,呵呵
然后自己简单的总结了下,xss工具的必要因素就是要有几个关键字,如:(<)、(>)、(&)、(")、( ),然后黑客在访问的浏览器输入page.action?title=<script>alert(“xss”)</script>,然后就沦陷了。。。。


最后结合实际看下了,在第三页的最后一条数据中的确存在有">这种符号,形成了必要条件,然后网上查询了下,只有过滤掉这些关键字,或者在页面上转换后可以避免被攻击

这是从网上抄的哈,但是的确是这样的。。。
Html encode       假如某些情况下,我们不能对用户数据进行严格的过滤,那我们也需要对标签进行转换。
less-than character (<)&lt;
greater-than character (>)&gt;
ampersand character (&)&amp;
double-quote character (")&quot;
space character( )&nbsp;
Any ASCII code character whose code is greater-than or equal to 0x80&#<number>, where <number> is the ASCII character value.
      比如用户输入:<script>window.location.href=”http://www.baidu.com”;</script>,保存后最终存储的会是:&lt;script&gt;window.location.href=&quot;http://www.baidu.com&quot;&lt;/script&gt;在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码。java的转义
private static String htmlEncode(char c) {    switch(c) {       case '&':         return"&amp;";       case '<':         return"&lt;";       case '>':         return"&gt;";       case '"':         return"&quot;";       case ' ':         return"&nbsp;";       default:         return c +"";    }}


lsekfe 发表于 2016-5-6 09:11:00

支持分享~
页: [1]
查看完整版本: xss攻击