跨站脚本

实验

一、  xss跨站脚本实验

XSS全称(cross site scripting)跨站脚本攻击,是web程序最常见的漏洞。指攻击者在网页嵌入客户端脚本如javascript,当用户浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。比如获取cookkie,导航到恶意网站等,主要原因就是页面输入的数据变成了代码导致的攻击。

本次实验使用javaweb编写的简单程序测试一下代码如下:

java页面:

package servlet;

import java.io.IOException;

import java.util.Map;

import java.util.Set;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class XSSServlet extends HttpServlet {

private static final long serialVersionUID = -8953308985918560500L;

@Override

protected void service(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

Map<String, String[]> map = request.getParameterMap();

Set<String> keySet = map.keySet();

// 将接收参数一一传递到页面

for(String key : keySet){

Object obj = map.get(key);

if(obj instanceof String[]){

String[] strs = (String[])obj;

if(strs.length >= 1){

request.setAttribute(key, strs[0]);

}

}

}

request.getRequestDispatcher("/xss.jsp").forward(request, response);

}

}

Jsp页面:

<%@ page pageEncoding="UTF-8"%>

<%String path = request.getContextPath(); String basePath = request.getScheme()+"://"

+request.getServerName()+":"+request.getServerPort()+path+"/";%>

<!DOCTYPE HTML><html> <head> <base href="<%=basePath%>">

<title>XSS跨站脚本测试</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

</head>

<body style="${bodyStyle }">

<form action="<%=path %>/xss.do" method="post">

背景颜色:<input name="bodyStyle" type="input" value="${bodyStyle }" />

<br />

<input type="submit" value="改变" />

</form>

</body>

</html>

Web.xml:

</welcome-file-list>

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>servlet.XSSServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>/xss.do</url-pattern>

</servlet-mapping>

测试如下:

访问地址:http://localhost:8080/class/xss.do 填写参数:background:red

效果:点击按钮之后页面背景会变成红色

如图:

访问地址:http://127.0.0.1:8080/class/xss.do?bodyStyle=background:blue

效果:页面直接变成蓝色,不需要点击按钮

如图:

攻击测试:在文本框输入:" onload=‘alert(/hello/)‘ "

效果:页面弹出对话框

测试输入:" "

效果:直接跳转到百度首页

使用扫描器扫描结果如下:

原文地址:https://www.cnblogs.com/wfl9310/p/9016708.html

时间: 2024-10-07 02:16:02

跨站脚本的相关文章

[Web安全之实战] 跨站脚本攻击XSS

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points:   1. 认识XSS 2. XSS攻击 3. XSS防御(重点) 一.认识XSS先 先说个故事吧,在上一篇,我还想说这个案例.其实什么叫攻击,很简单.获取攻击者想要的信息,就黑成功了.抓到一个Tomcat漏洞(这不是我说的,一个认识的人说的),上传一个JSP,里面模拟HttpClient,下载一个木马,运行.OK,搞定了.所

XSS漏洞(跨站脚本)

不要轻信用户提交上来的数据alert消息太难看,因此开发一个aspx页面用来统一展示消息ShowMessage.ashx //主页将判断重定向到另一个页面 if (TextBox1.Text != "gao") { Response.Redirect("sey.aspx?Name=密码不正确!"); } //在ShowMessage.aspx进行验证 Label1.Text = Request["Name"]; //将Name值显示在Label1

了解跨站脚本攻击

跨站脚本攻击(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私.钓鱼欺骗.偷取密码.传播恶意代码等攻击行为. 恶意的攻击者将对客户端有危害的代码放到服务器上作为一个网页内容, 使得其他网站用户在观看此网页时,这些代码注入到了用户的浏览器中执行,使用户受到攻击. 一般而言,利用跨站脚本攻击,攻击者可窃会话COOKIE从而窃取网站用户的隐私,包括密码. XSS攻击使用到的技术主要为HTML和Javascript,也包括VBScript和ActionScr

目前日向博客对xss跨站脚本注入和sql注入的防范

昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无线循环弹出框的脚本,估计这个脚本之后他再想输入也没法了. 类似这种: <html> <body onload='while(true){alert(1)}'> </body> </html> 我立刻认识到这事件严重性,它说明我的博客有严重安全问题.因为xss跨站脚本攻击可能导致用户Co

XSS跨站脚本攻击

[XSS跨站脚本攻击] 1.在Get请求的值中插入代码. $name = $_GET['name']; echo "Welcome $name<br>"; 2.输入框中输入代码. 参考: 1.http://www.cnblogs.com/bangerlee/archive/2013/04/06/3002142.html

PHP防止使用跨站脚本HTTP链接攻击

2015-7-18 22:02:21 PHP表单中需引起注重的地方? $_SERVER["PHP_SELF"] 变量有可能会被黑客使用! 当黑 客使用跨网站脚本的HTTP链接来攻击时,$_SERVER["PHP_SELF"]服务器变量也会被植入脚本.原因就是跨网站脚本是附在执行文件的路径 后面的,因此$_SERVER["PHP_SELF"]的字符串就会包含HTTP链接后面的JavaScript程序代码. XSS又叫 CSS (Cross-Site

Web攻防系列教程之跨站脚本攻击和防范技巧详解

Web攻防系列教程之跨站脚本攻击和防范技巧详解[XSS] 收藏:http://www.rising.com.cn/newsletter/news/2012-04-25/11387.html 来源:瑞星 2012-04-25 14:33:46 摘要:XSS跨站脚本攻击一直都被认为是客户端Web安全中最主流的攻击方式.因为Web环境的复杂性 以及XSS跨站脚本攻击的多变性,使得该类型攻击很难彻底解决.那么,XSS跨站脚本攻击具体攻击行为是什么,又该如何进行有效的防范呢?本文对此进行了 有针对性的具体

RemoveXss函数主要用于跨站脚本的过滤

//Remove the exploer'bug XSS function RemoveXSS($val) {?? $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val);?? ?? $search = 'abcdefghijklmnopqrstuvwxyz';?? $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';?? $search .= '[email protected]#$%

XSS:跨站脚本攻击

XSS:跨站脚本,是攻击者向目标web站点注入html标签或者脚本,如果web页面动态的产生文档内容,并且这些内容是基于用户提交的数据,而并没有通过从中移除任何嵌入的html标签来消毒的话,那这个web页面很容易遭到跨站脚本攻击. 例如,如下的web页面,它使用js通过用户的名字来向用户问好: <html> <head><title>test</title></head> <body> <script type="te

ASP.NET脚本过滤-防止跨站脚本攻击(收集别人的)

ASP.Net 1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力.当用户试图用<xxxx>之类的输入影响页面返回结果的时候,ASP.Net的引擎会引发一个 HttpRequestValidationExceptioin.默认情况下会返回如下文字的页面: Server Error in '/YourApplicationPath' Application A potentially dangerous Request.Form value was detected from