zoukankan      html  css  js  c++  java
  • 跨站脚本

    实验

    一、  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/)' "

    效果:页面弹出对话框

     

    测试输入:" onload="window.location.href='http://www.baidu.com' " "

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

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

     

  • 相关阅读:
    系统编程-进程-fork深度理解、vfork简介
    九鼎S5PV210开发板的SD卡启动、uboot tftp升级内核镜像
    jiffies相关时间比较函数time_after、time_before详解
    Java基础第六章(循环结构二)
    Java基础第五章(循环结构一)
    Java基础第四章(选择结构二)
    Java基础第三章(选择结构一)
    Java基础第二章(变量、数据类型和运算符)
    Java基础第一章
    HTML iframe的使用
  • 原文地址:https://www.cnblogs.com/wfl9310/p/9016708.html
Copyright © 2011-2022 走看看