首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考。
1、 反射型XSS漏洞
如果一个应用程序使用动态页面向用户显示错误消息,如果系统没有对用户输入的内容进行过滤和处理,就会造成一种常见的XSS漏洞。
提取用户提交的输入并将其插入到服务器响应的HTML代码中,这是XSS漏洞的一个明显特征;如果应用程序没有实施任何过滤或净化措施,那么它很容易受到攻击。
2、 前提和准备
现在很多的浏览器默认有一些防止XSS漏洞或者攻击的功能,推荐用IE浏览器做XSS测试,为了让测试能够正常开始。我们需要关闭IE浏览器自带的XSS筛选器。在“工具”-“Internet选项”-“安全”-“自定义级别”中,找到“启用XSS筛选器”,然后选择禁用。
3、 一个能够被注入XSS漏洞的页面
XssReflect.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>看好你的门-作者:阿饭同学</title>
<meta name="author" content ="范芳铭">
</head>
<body>
你的地址:<%=(String)request.getRemoteAddr()%> <br>
公告消息:<%=(String)request.getParameter("message")%> <br>
</body>
</html>
4、 正常访问和利用XSS简单攻击
正常访问
http://127.0.0.1:8080/webStudy/XssReflect.jsp?message=hi,erveryone
这个页面对message注入的信息没有做过滤和处理,因此可以住人HTML脚本或者其他东东;
http://127.0.0.1:8080/webStudy/XssReflect.jsp?message=%3Cscript%3Ealert(1)%3C/script%3E
上面一串东西已经经过了浏览器的编码,实际上就是:
http://127.0.0.1:8080/webStudy/XssReflect.jsp?message=
然后就出来了一个对话框。
既然对话框能够出来,那么貌似别的东东也可以。
5、 山寨红客给有漏洞的网站插红旗
要山寨红客,首先找一个红旗,随便百度下,找了一个红旗的图片:
我们在message后面加上:
I‘m hongKe<img src="http://pic4.nipic.com/20091207/3886412_125107000722_2.jpg" />
构成了下面的URL
效果
页面的主体就被一个大红旗占据了。
时间: 2024-10-06 00:10:55