本文作者:i春秋签约作家——rosectow

0×00前言

XSS又名叫CSS全程(cross site scriptting),中文名跨站脚本攻击,目前网站的常见漏洞之一,它的危害没有像上传漏洞,sql注入,命令执行,这种危害性极高的漏洞一样,但是大致xss与上面讲的这些漏洞不一样它是需要去被动式来完成攻击的,攻击者需要让管理员,用户等来配合完成攻击,xss它有三种语言编写,我们常见的是JavaScript ,比较少见的actionscript,VBScript,它们都是可以在html的标签中执行的。

反射型的xss它是储存时间很短,在html的页面代码中,一但攻击者在网站植入反射型xss然后用户访问了就会被盗取cookie等等,存储型的xss是比较危险的一种xss,一般存储在网站保留用户数据的地方,一当用户访问就触发了攻击,dom型的xss先对也是比较隐蔽的,一般常见在url的get请求,这几种xss危害性最大的肯定就是存储型xss。

Xss通常分为三种类型,第一种是存储型xss,第二种是反射型xss,第三种是dom型xss。

Xss能做到的有盗取管理员,用户的cookie,url跳转,常用到的是盗取cookie,盗取到了管理员cookie那么我们也就可以登录管理员的账号了,那么这也就夸大了权限。

0×01构造攻击


 

在网站中很明显我们的JavaScript代码已经被存进去了,但是为什么没有弹窗呢?问题在于标签下面对该页面body内的标签查看,在跟踪情况。

这里已经将我们的JavaScript标签的alert(“xss”)过滤了,变成了无效的语句,<script>标签它还是亮着的,所以它是已经添加到代码里面去了

标签中只要<>xss<>内容不加入到标签里面它就会解析成文本内容,那么这时候就要更具其它的标签模仿构造,

<script href=&quot;alert(123)&quot;>xss</script>

变成这样,href是一个超级文本引用的标签,所以在这里这样构造测试,主要我们的弹窗已经加入到标签内

这次里面的内容都亮了,但是它还是不会弹窗,因为刚刚使用了href,href是一个超级文本引用标签,弹窗语句在里面就变成一个链接,重新来一次构造有效负载

换成了这样的一个code,onmouseover是鼠标移动事件 anytag任何标签,这样构造然后在测试

这样一来鼠标移动到xss的位置,就自动弹出123的提示框,当然这也只能弹出自己的cookie,客服需要去点击也才能看到cookie,这种基本就已经没有作用了下面再来换一种方法来构造过滤问题。

0×02 过滤模拟构造攻击

看到了我们的JavaScript语句已经给过滤了,正常的&lt;script&gt;&lt;/script&gt;标签以及带有攻击性的都是没办法成功载入的,我们的目的是达到弹窗或者获取cookie类

构造payload

结果我的class 跟 alert 都被过滤了,在一次构造,跟踪一下它的代码,一下是跟踪代码的一些问题以及它的过滤问题。

This.$obj.$chatCtnId.append(This.customHtml(This.replaceFace(This.xssWhiteList(filterXSS(question)))));

跟踪到这里对我的payload进行了过滤,在一次最终它的过程,分析看看能找到什么有效的绕过

跟踪到了网站对xss多种转义过滤,我利用了多种编码特殊字符都无法绕过,这也太强了吧!

继续测试,多种样式的测试,主要考虑到代码中添加了多个名单,以及对敏感字符的过滤本接下来在一次构造payload,我多次构造,但是依然给过滤,无论是字符编码类的都无效,心累一天,最后我构造了一条这样的payload

<a href=&quot;#javascript:alert('xss')&quot;>xss</a>

为撒它把我的符号过滤了每次它过滤都是直接吃了我的符号,这时候我也是闷逼了然后弹了一下,但是过程的确挺麻烦的到最后发现这样饶了

正常它的代码中可以构造正常可用的payload

都是可以不会遭到过滤的。

阅读原文↙↙↙↙

学习xss模拟构造攻击(第一篇)的更多相关文章

  1. 【Go 入门学习】第一篇关于 Go 的博客--Go 爬虫初体验

    一.写在前面 其实早就该写这一篇博客了,为什么一直没有写呢?还不是因为忙不过来(实际上只是因为太懒了).不过好了,现在终于要开始写这一篇博客了.在看这篇博客之前,可能需要你对 Go 这门语言有些基本的 ...

  2. RabbitMQ学习总结 第一篇:理论篇

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  3. 学习KnockOut第一篇之Hello World

    学习KnockOut第一篇之Hello World 笔者刚开始学习KnockOut.写的内容就相当于一个学习笔记.且在此处向官网致敬,比较喜欢他们家的Live Example版块,里面有jsFiddl ...

  4. ActionBarSherlock学习笔记 第一篇——部署

    ActionBarSherlock学习笔记 第一篇--部署          ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...

  5. LINQ to XML LINQ学习第一篇

    LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDoc ...

  6. 从.Net到Java学习第一篇——开篇

    以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...

  7. 我们一起学习WCF 第一篇初识WCF(附源码供对照学习)

    前言:去年由于工作需要我学习了wcf的相关知识,初期对wcf的作用以及为何用怎么样都是一知半解,也许现在也不是非常的清晰.但是通过项目对wcf的运用在脑海里面也算有了初步的模型.今天我就把我从开始wc ...

  8. PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建

    最近一段时间会学习一下PHP全栈开发,将会写一系列的文章来总结学习的过程,以自勉. 第一篇记录一下LAMP环境的安装 0. 安装Apache Web服务器 安装之前先更新一下系统 sudo apt-g ...

  9. Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署

    序言 这是本人博客园第一篇文章,写的不到位之处,希望各位看客们谅解. 本人一直从事.NET的开发工作,最近在学习Golang,所以想着之前学习的过程中都没怎么好好的将学习过程记录下来.深感惋惜! 现在 ...

随机推荐

  1. $or操作符

    [$or操作符] The $or operator performs a logical OR operation on an array of two or more <expressions ...

  2. S 联系人新增及更新

    一.联系人新增 [Public] ConnectString=host="siebel://10.10.1.139:2321/SBA_82/SMObjMgr_chs ConnectUserN ...

  3. 96. Unique Binary Search Trees (Tree; DP)

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  4. jekins测试环境自动化

    最近搭建测试环境自动化,之前都是用机器猫.机器猫的流程大概是这样,开发打包上传到svn,给测试一个svn地址,测试到机器猫上传文件,然后再运行启动. 为了减去开发打包这个环节,所以专用jenkins. ...

  5. leetcode 20 Valid Parentheses 有效的括号

    描述: 给定一些列括号,判断其有效性,即左括号有对应的有括号,括号种类只为小,中,大括号. 解决: 用栈. bool isValid(string s) { stack<char> st; ...

  6. Win10 Cygwin Cd Permission denied

    问题描述 在win10或者win系统上面,使用cygwin的时候, 有时候会出现, 权限问题. 即使是管理员也不行. 问题分析 这个问题,我个人觉得,主要是使用不当造成的. 也就是说, 可能使用chm ...

  7. python全栈考试

    1.执行 Python 脚本的两种方式 shell直接调用python脚本 python run.py 调用解释器来调用脚本  2.2.简述位.字节的关系 每8个位bit,组成一个字节byte. 一个 ...

  8. 07Mendel's First Law

    Problem Figure 2. The probability of any outcome (leaf) in a probability tree diagram is given by th ...

  9. MVC和WebApi 使用get和post 传递参数(转)

    出处:http://blog.csdn.net/qq373591361/article/details/51508806 我们总结一下用js请求服务器的传参方法. Get方式 Get主要是用来查询,一 ...

  10. Hadoop学习【一】单机版搭建

    首先要说一下,Hadoop 2.x版本以后的改动,在这里帖一篇文章,觉得写的不错. http://www.ibm.com/developerworks/cn/opensource/os-cn-hado ...