近日,论坛上面XSS满天飞,各处都能够见到XSS的痕迹,前段时间论坛上面也出现了XSS的迹象。然后我等小菜不是太懂啊,怎么办?没办法仅仅有求助度娘跟谷歌这对情侣了。

能够说小菜也算懂了一些。不敢藏私,故发文出来大家一块学习,讨论。







以下是正文:

0x00:xss的来由

记得之前看过一篇文章,这样来形容XSS “ 假设把浏览器看作WEB2.0后时代的操作系统。那么client脚本就相当于传统的应用程序,而XSS的攻击方式事实上就相当于在被攻击者的系统上运行了一个木马程序。但这样的“木马”有个非常大的缺点。就是无法像传统木马那样在操作系统中安家。以后还能自己主动运行。 ”

这可能是对XSS的最好诠释了吧,可是XSS到底是什么?以下就跟小菜来一窥其神奇面容吧。

XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码。当用户浏览该页之时,嵌入当中Web里面的html代码会被运行,从而达到恶意攻击用户的特殊目的。

为什么会出现XSS呢,这个没什么好说的,肯定是过滤不严,或者就是程序员觉得XSS并没有什么实际的用途,从而忽略了XSS攻击的产生。比方在一个搜索框里面,对于输入数据没有一点过滤的话。那么我们提交以下这条语句



    <script>alert(’test’)</script>





结果是什么,大家应该都知道,就是页面弹出了一个对话框。

我记得当我刚開始对黑客技术产生兴趣的时候,那是的XSS还只在于娱乐的地步。

0x01:xss的类型

XSS的类型通常是三种:

第一种:反射型XSS

       这种xss,跨站代码一般存在于某一个链接中。当呗攻击者訪问这种连接时,跨站代码就被运行,这类跨站代码一般不会存储在server上面

另外一种:存储型XSS

        这样的xss用起来比較方便,跨站代码会存储在server上面数据库中。换句话就是能够持久的进行攻击。亦称持久型XSS

第三种:就是基于DOM的XSS

       这是因为client脚本自身的解析不对导致的安全问题

0x02:反射型XSS的攻击原理

反射型XSS,是最经常使用,使用最广的一种方式。

它通过给别人发送带有恶意脚本代码參数的URL,当URL地址被打开时,特有的恶意代码參数被HTML解析、运行。它的特点是非持久化,必须用户点击带有特定參数的链接才干引起。

既然是须要用户点击才干触发的跨站。那么这就要考验你的忽悠水平了,就像前段时间论坛出现的XSS攻击。就是通过转账,然后被攻击者查看消息从而触发的一种反射型XSS攻击

再如:



    

key=f">http://searchb.dangdang.com/?key=f',true,1);alert(1);//





这个常常逛乌云的应该都不陌生,这就是一个典型的反射型XSS。须要诱使用户去点击该链接。xss代码并不存储在服务端。所以攻击并不能持续。

经常使用測试方法:

对整个输入(特别强调的是。整个HTTP请求都是输入,数据库取来的数据事实上也是输入。

HTTP请求包含GET、POST參数。COOKIE,URL,头部的REFERER等等)中每一个地方都能够例如以下操作,

1.        自己构造一个唯一的串,比如:myxsstestxxxx

2.        将某个输入项(比方某个參数)替换为上面的串

3.        查看HTTP对应中是否有这个串。并记录下来

4.        依据HTML上下文决定,用哪种类型串来尝试,尝试攻击串,然后又一次提交请求

5.        假设可以找到对应的攻击串说明漏洞是存在的 这里的关键在于第四步。由于server端可能会做一些限制,比方encode或者长度限制。測试的时候须要想办法看看能否绕过限制。

0x03:存储型XSS的攻击原理

存储型就是攻击脚本被存储到了数据库或者文件里,server端(可能是别的应用或者别的页面)在读取了存储的内容后回显了,就是存储型。

这样的情况用户可能直接打开正常的页面就会看到被注入了

原理事实上也非常easy

XSS代码被提交给站点-->站点把XSS代码存储进数据库—>当该页面再次被请求时。server发送已经被植入XSS代码的数据给client—>client运行XSS代码

比較常见的样例是在留言板上插入XSS代码,前提当然是留言内容过滤不善

想内容中加入[/code]<script>alert(‘test’)</script>[/code]

这样就会弹出对话框。当然仅仅要是能够加入内容的地方,你都能够试试XSS,比方说QQ空间的装扮里面。有一个自己定义模块。你能够选择图片,然后加入例如以下代码



    javascript:alert('XSS')"





当然,其能够运行的前提是服务端代码是这样写的



    A=get[a]

    <img src=$a>





利用方法还有非常多。比方如今兴起的XSS平台,新建一个项目,你就能够做非常多事情

0x04:XSS BASED DOM

DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞。

DOM是一个与平台、编程语言无关的接口,它同意程序或脚本动态地訪问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有非常多对象。当中一些是用户能够操纵的,如uRI 。location,refelTer等。client的脚本程序能够通过DOM动态地检查和改动页面内容。它不依赖于提交数据到server端。而从client获得DOM中的数据在本地运行,假设DOM中的数据没有经过严格确认,就会产生DOM—based
XSS漏洞。

DOM—based XSS攻击源于DOM相关的属性和方法。被插入用于XSS攻击的脚本。一个典型的样例例如以下:

HTTP请求http://www.Xss.com/hello.html?name=test使用下面的脚本打印出登录用户test的名字,即



    <SCRIPT>

    var pos=docmnent.URL.indexOf(”name=”)+5;

    document.write (document.URL.substring(pos,document.URL.1ength))。

    < /SCRIPT>





假设这个脚本用于请求http://www.Xss.com/hello.html?

name=<script>alert(‘test’)</script>时,就

导致XSS攻击的发生。

当用户点击这个链接,server返回包括上面脚本的HTML静态文本,用户浏览器把HTML文本解析成DOM,DOM中的document对象URL属性的值就是当前页而的URL。

在脚本被解析时,这个URL属性值的一部分被写入HTML文本,而这部分HTML文本却是JavaScript脚本,这使得<script>alert(‘test’)</script>成为页面终于显示的HTML文本。从而导致DOM—base XSS攻击发生。

0x05: XSS的防范办法

上面简单说了一下各种XSS的原理。以及最简单的利用方法,当然一些高级的XSS利用技巧,这里不会涉及,授人以鱼不如授人以渔嘛。还靠各位去琢磨了。以下我们来简单说一下XSS的防范。

如今的XSS如此流行。原因何在。我想大家应该都知道。就是在输入的时候没有做严格的过滤,而在输出的时候。也没有进行检查,转义,替换等

所以防范的方法就是。不信任不论什么用户的输入,对每一个用户的输入都做严格检查,过滤。在输出的时候,对某些特殊字符进行转义,替换等

0x06:浅谈CSRF攻击

事实上之前我一直不知道csrf是什么东西。直到那次phpmywind被搞掂官网,我才注意到这个攻击方法。之后呢,通过度娘。谷歌这一对好情侣,慢慢了了解了一下

CSRF是伪造client请求的一种攻击。CSRF的英文全称是Cross Site Request Forgery,字面上的意思是跨网站伪造请求。这样的攻击方式是国外的安全人员于2000年提出,国内直到06年初才被关注。

CSRF的定义是强迫受害者的浏览器向一个易受攻击的Web应用程序发送请求,最后达到攻击者所须要的操作行为。

CSRF漏洞的攻击一般分为站内和站外两种类型:

CSRF站内类型的漏洞在一定程度上是因为程序猿滥用$_REQUEST类变量造成的,一些敏感的操作本来是要求用户从表单提交发起POST请求传參给程 序。可是因为使用了$_REQUEST等变量,程序也接收GET请求传參,这样就给攻击者使用CSRF攻击创造了条件。一般攻击者仅仅要把预測好的请求參数 放在站内一个贴子或者留言的图片链接里。受害者浏览了这种页面就会被强迫发起请求。

CSRF站外类型的漏洞事实上就是传统意义上的外部提交数据问题,一般程序猿会考虑给一些留言评论等的表单加上水印以防止SPAM问题,可是为了用户的体验 性。一些操作可能没有做不论什么限制,所以攻击者能够先预測好请求的參数,在站外的Web页面里编写javascript脚本伪造文件请求或和自己主动提交的表单 来实现GET、POST请求。用户在会话状态下点击链接訪问站外的Web页面,client就被强迫发起请求。

假设,各位看官想具体了解CSRF google it!



这里不过说了一些简单的XSS原理。算一个抛砖引玉吧。各位能够跟帖讨论,怎样发挥XSS的最大能力

浅谈xss原理的更多相关文章

  1. 浅谈XSS攻击原理与解决方法

    概述 XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人 ...

  2. 浅谈XSS

    最近在做项目中的漏洞修复工作,在短时间内接触到很多关于web开发需要防范的漏洞,例如SQL injection , XSS, CSRF等等,这些漏洞对web开发的项目来说的破坏还是比较大的,其实在网上 ...

  3. [转]以新浪为例浅谈XSS

    随着网络时代的飞速发展,网络安全问题越来越受大家的关注,而SQL注入的攻击也随着各种防注入的出现开始慢慢的离我们而去,从而XSS跨站脚本攻击也慢慢的开始在最近几年崛起,也应对了’没有绝对的安全’这句话 ...

  4. 浅谈xss攻击

    近期学习过程中提到xss攻击的问题,便想要了解一下,总结如下: XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, ...

  5. 浅谈 zookeeper 原理,安装和配置

    当前云计算流行, 单一机器额的处理能力已经不能满足我们的需求,不得不采用大量的服务集群.服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,那么这些信息如何推送到各个节点?并且 ...

  6. [Hadoop]浅谈MapReduce原理及执行流程

    MapReduce MapReduce原理非常重要,hive与spark都是基于MR原理 MapReduce采用多进程,方便对每个任务资源控制和调配,但是进程消耗更多的启动时间,因此MR时效性不高.适 ...

  7. 浅谈AQS原理

    一.AQS介绍 AQS,即AbstractQueuedSynchronizer, 抽象队列同步器,它是Java多线程模块用来构建锁和其他同步组件的基础框架.来看下同步组件对AQS的使用: AQS是一个 ...

  8. 浅谈xss漏洞

    0x00 xss漏洞简介 XSS漏洞是Web应用程序中最常见的漏洞之一.如果您的站点没有预防XSS漏洞的固定方法, 那么很可能就存在XSS漏洞. 跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Scr ...

  9. ConcurrentHashMap——浅谈实现原理及源码

    本文整理自漫画:什么是ConcurrentHashMap? - 小灰的文章 - 知乎 .已获得作者授权. HashMap 在高并发下会出现链表环,从而导致程序出现死循环.高并发下避免HashMap 出 ...

随机推荐

  1. Knockout v3.4.0 中文版教程-13-控制文本内容和外观-css绑定

    4. css绑定 目的 css绑定可以给关联的DOM元素添加或移除一个或多个CSS类.该绑定很有用,比如,当一些值为负数时高亮这些值为红色. (注意:如果你不想使用一个CSS类选择器来附加样式而想直接 ...

  2. android 之 Dialog

    Android平台下对话框主要有普通对话框.选项对话框.单选多选对话框.进度对话框.日期对话框.时间对话框等. 在程序中通过开发回调方法onCreateDialog来完成对话框的创建,该方法需要传入代 ...

  3. 【bzoj4519】[Cqoi2016]不同的最小割 分治+最小割

    题目描述 学过图论的同学都知道最小割的概念:对于一个图,某个对图中结点的划分将图中所有结点分成两个部分,如果结点s,t不在同一个部分中,则称这个划分是关于s,t的割.对于带权图来说,将所有顶点处在不同 ...

  4. [BZOJ1584] [Usaco2009 Mar]Cleaning Up 打扫卫生(DP)

    传送门 不会啊,看了好久的题解才看懂 TT 因为可以直接分成n段,所以就得到一个答案n,求解最小的答案,肯定是 <= n 的, 所以每一段中的不同数的个数都必须 <= sqrt(n),不然 ...

  5. java.lang.Class解析

    java.lang.Class 1.java.lang.Class的概念 当一个类或接口被装入的JVM时便会产生一个与之关联的java.lang.Class对象,java.lang.class类就是用 ...

  6. 【边双连通】poj 3352 Road Construction

    http://poj.org/problem?id=3352 [题意] 给定一个连通的无向图,求最少加多少条边使得这个图变成边双连通图 [AC] //#include<bits/stdc++.h ...

  7. 【2018.10.15】WZJ笔记(数论)

    1. 证明:对于任意质数$p\gt 3$,$p^2-1$能被$24$整除. 证:平方差公式,$p^2-1 = (p-1)(p+1)$. 再把$24$分解质因数$2^3*3$. 三个相邻的自然数中至少有 ...

  8. SLF4J 简单日志门面 介绍和使用

    参考:http://singleant.iteye.com/blog/934593        http://liuzidong.iteye.com/blog/776072 介绍: 简单日记门面(s ...

  9. 洛谷P2677 超级书架 2

    题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= N & ...

  10. [MFC] CString小用例

    在实际项目中需要对数字转成的字符串进行格式处理, 如: 50.500000,需要转化成50.5; 1.00000,需要转化成1, 对于编号而言要求都是4位,不足前面补0. 如1转成0001,222转成 ...