专栏首页mathorXSS攻击常识及实战

XSS攻击常识及实战

什么是XSS?

 XSS全称是Cross Site Scripting(为了和CSS进行区分,就叫XSS)即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了

XSS分类

 XSS有三类:反射型XSS(非持久型)、存储型XSS(持久型)和DOM XSS

反射型XSS

 发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,所以称反射型XSS。  一个简单的例子:

<?php
echo $_GET['x'];
?>

 如果输入x的值没有经过任何过滤直接输出,假设提交链接为:

http://www.foo.com/xss/reflect.php?x=<script>alert(1)</script>

 则alert()函数会在浏览器访问时触发

存储型XSS

 存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库、内存、文件系统等),下次请求目标页面时不用再提交XSS代码。最典型的例子就是留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,那些留言就会从数据库中加载出来并显示,于是出发了XSS攻击

DOM XSS

 DOM XSS和反射型XSS、存储型XSS的区别在于DOM XSS代码并不需要服务器参与,出发XSS靠的是浏览器的DOM解析,完全是客户端的事情

 www.xss.com/domxss.html 代码如下:

<script>
    eval(localtion.hash.substr(1));
</script>

 触发方式为:www.xss.com/domxss.html#alert(1) 这个URL#后的内容是不会发送到服务器端的,仅仅在客户端被接收并执行,常见的输入点有:

document.URL
document.URLUnencoded
document.localtion
document.referrer
window.location
window.name

实验一

1.构造代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'xss_test.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
    <%
        String str = request.getParameter("name");
        out.print(str);
    %>
</body>
</html>
2.漏洞演练

 首先访问:http://localhost:8080/jsp/user/xss_test.jsp?name=小明

 接着我们试着加载一个js脚本看看,访问:http://localhost:8080/jsp/user/xss_test.jsp?name=<script>alert("XSS")</script>

 那么是不是可以改变跳转后的地址?访问:http://localhost:8080/jsp/user/xss_test.jsp?name=<script>location.href='http://www.baidu.com'</script>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 仰望星空与物理学之三

    当你仰望星空时,你可能回想到这些科学知识:“我们现在看到的星光也许是几十万年前发出来的,只是现在才传过来而已。”“月亮不会发光,它反射了太阳的光。”可是光是什么...

    mathor
  • Java自增自减运算符神坑笔试题

    mathor
  • matlab—结构化程式与自定函数

    按照步骤一步步来,创建脚本之后,将下面代码复制到编辑器内,然后点击运行或者摁键盘F5

    mathor
  • xss攻击和csrf攻击的定义及区别

    (1)登录受信任网站A,并在本地生成Cookie。(如果用户没有登录网站A,那么网站B在诱导的时候,请求网站A的api接口时,会提示你登录)

    码缘
  • xss攻击和csrf攻击的定义及区别

    (1)登录受信任网站A,并在本地生成Cookie。(如果用户没有登录网站A,那么网站B在诱导的时候,请求网站A的api接口时,会提示你登录)

    A梦多啦A
  • CTF实战9 XSS跨站脚本漏洞

    该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关

    用户1631416
  • XSS基础(新手篇)

    XSS全称跨站脚本攻击,用户浏览网页时,嵌入的Script代码被执行,从而达到攻击用户的目的,常见漏洞页面,网站搜索页面,留言板。

    网e渗透安全部
  • XSS分析及预防

    XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行。在WEB前端应用日益发展的今天,XSS漏洞尤其容...

    欲休
  • 跨站的艺术-XSS入门与介绍

    什么是XSS? XSS全称跨站脚本(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写...

    云鼎实验室
  • XSS原理详解

    目标:前端脚本解析器,比如浏览器的javascript解析引擎、IE中的VBScript解析引擎。

    行云博客

扫码关注云+社区

领取腾讯云代金券