本文作者: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. windchill 跑物料变更流程后无法发送物料到SAP

    2042000065.2042000064.2042000074.2042000066在发主数据时,流程卡住,SAP返回信息为空 核查:PLM后台日志只显示变更零件,开始,然后就结束 原因:ECR号为 ...

  2. JSP中系统Date的几点不符合中国时间观的地方

    正常调用系统时间的显示格式是Date date = new Date 显示出来的当前时间为Sun Nov 22 18:39:51 CST 2015 星期天的英文单词是Sun, 这个大家都是熟悉的, 这 ...

  3. java反射之ClassLoader

    类加载器ClassLoader ClassLoader能在运行时, 知道任意一个类的的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性. 一.类加载器的工作机制 1:加载Jvm把clas ...

  4. react-native 组件的导入、导出

    一.前言背景: 学习react native的关键在于组件,依靠组件的拼接达到想要的效果,由此可见,组件就像一块块功能各异的零件,最终搭建出我们想要的效果. 今天我们就从组件的导入.导出开始 下面是我 ...

  5. C++ IDE环境

    --------siwuxie095                     IDE:集成开发环境,包括:编辑器.编译器.调试器.图形用户界面工具 以及其他的一些小工具                 ...

  6. asp.net页如何获取母版页控件

    获取母版页的相关内容有两种方法 1 通过findcontrol找控件ID需要在此事件中~因为Page_load中时是先内容页加载然后才是母版页加载 protected void Page_LoadCo ...

  7. shell如何传递变量到另一个脚本文件中

    http://www.jbxue.com/article/shell/20707.html本文介绍了shell脚本传递变量到另一个脚本文件中的方法,在脚本中调用另一脚本,即创建了一个子进程,感兴趣的朋 ...

  8. mybatis框架入门程序:演示通过mybatis实现数据库的删除操作

    1.mybatis的基本配置工作可以在我的这篇博客中查看:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2.删除用户的映射文件: <!-- ...

  9. [转].NET 4.5+项目迁移.NET Core的问题记录 HTTP Error 502.5

    本文转自:http://www.cnblogs.com/ronli/p/5900001.html 这几天试着把目前的开发框架迁移到新的.net core平台,中间遇到的问题在这里简单记录一下. 迁移过 ...

  10. TOGAF架构培训材料学习总结

        作于一个架构师尤其是企业架构师来说,丰富的理论知识可以帮助他在架构规划及管理过程中站在更高的角度去看待问题,历史发展原因有很多已成体系的架构理论,TOGAF是近年来比较接地气的,受到了政府和银 ...