XSS漏洞总结之小试牛刀

一:XSS漏洞总结

1>:简介

XSS是跨站脚本攻击,属于被动式的攻击。XSS指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意的特殊目的。

2>: 分类及危害

XSS分类:

  • 反射型: 非持久性XSS攻击,当用户访问已被插入攻击代码的链接时,攻击代码执行,完成该次攻击。
  • 存储型:持久型XSS攻击,攻击者把攻击代码永久存储在目标服务器上中,例如数据库,消息论坛,留言板,访问者日志等。当用户进入页面,代码就会被执行。
  • DOM 型:DOM型与前两者的差别是,只在客户端进行解析,不需要服务器的解析响应

XSS危害:

  • 盗用cookie,获取敏感信息。(最常见)
    在网页浏览中我们常常涉及到用户登录,登录完毕之后服务端会返回一个cookie值存储到客户端(浏览器)。这个cookie值相当于一个令牌,拿着这张令牌就等同于证明了你是某个用户。
    如果你的cookie值被窃取,那么攻击者很可能能够直接利用你的这张令牌不用密码就登录你的账户。

  • 劫持流量实现恶意跳转——利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。

  • 利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。

  • 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。

  • 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。

现在很多Web页面和浏览器都有过滤功能防止跨站脚本攻击,但百密一疏,还是有存在XSS漏洞的网站,如何绕过常见的过滤呢?下面以渗透测试平台Web For Pentester 演示

##二:小试牛刀

1>:无过滤

  • 直接在参数后面跟JS代码,浏览器解析执行

2>:过滤掉了<script>标签

这里写图片描述这里写图片描述

  • 通过查看元素,发现 <script>标签被过滤了
  • 绕过方法:将标签<script>大写,“1”成功弹出。
    这里写图片描述

3>:将<script>标签大小写都过滤了

#####绕过方法:在<script>标签外面在嵌套一个<script>标签,大小写混用
这里写图片描述
查看
查看元素发现,外围的<script>标签成功被过滤,里面的<script>标签被留了下来,“0”成功弹出。

4>:<script>标签被完全过滤

绕过方法:用其他标签尝试。例如<imag>标签<a>标签等

这里写图片描述

例:<a href="javascrip:alert(document.cookie)">

标签里的onerror是一个事件,当加载文档或图像时发生某个错误时,执行后面的“=”对应的代码
类似的还有

事件解释
onmouseover鼠标被移到某元素之上
onclick鼠标点击某个对象
onmousemove鼠标被移动
onmouseup某个鼠标按键被松开
onload某个页面或图像被完成加载
onfocus元素获得焦点

5>:关键字(如alert)被过滤

绕过方法:将关键字进行编码,再用eval()解析

这里写图片描述

6>:查看代码发现参数储存在变量中 这里写图片描述

查看代码发现参数储存在变量中,<script>标签已经存在,这时,只需将储存参数的引号闭合,在<script>标签里再加入要执行的攻击代码就直接可以运行了。
这里写图片描述
这里写图片描述

7>:同6>,只不过这次需要闭合的是单引号这里写图片描述

8>:存储型XSS, 持久性的,会把用户输入的数据存储到数据库中

这里输入<script>alert(0)</script>尝试

这里写图片描述
可以看到<script>标签未被执行 ,而<from> 元素定义HTML表单,表单处理程序在表单的 action 属性中指定!这里action属性是URL,而这个URL可以构造,故采用以下做法: **
(关于HTML表单及from元素的详细用法见——[http://www.w3school.com.cn/html/html_forms.asp])这里写图片描述
这里写图片描述
*** 在onmouseover前加 " (箭头所指)是为了与原来action的前 " (三角形所指)闭合,而后在alert前面加 " (箭头所指)是为了与原来action的后 " (三角形所指)闭合,从而使代码整个包含在from标签里并解析。

三:XSS的利用

(1):反射型XSS的利用
构建包含恶意脚本文件的URL,发送给被测试者,倘若被测试者是管理员,一旦点了这个链接,可能会引起严重的信息泄露。例如在管理员登录界面的URL后跟上测试成功的恶意脚本代码,发送给管理员,倘若管理员大意点了这个链接,就有可能实现预期的攻击。当然了,要想不容易被发觉,做好代码的隐藏是很重要的,对于URL后面接入链接,可通过压缩链接的方法,还可以对代码采用特殊编码,浏览器能解析然而普通人却看不出来。
具体实现步骤:
①:构建URL加入恶意代码
这里写图片描述
②:当被测试者点击后,利用XSS平台查看项目内容
这里写图片描述这里写图片描述这里获取到了cookie
③:打开登陆页面,抓包,将cookie替换,即可以受害者的身份登陆
这里写图片描述
(2):存储型XSS的利用
这里写图片描述
在类似能够提交数据的地方插入构建好的playload,可以先构建playload简单的弹窗,在能够成功弹窗后,将XSS平台的代码融入能够成功弹窗的playload的当中,查看项目内容,展开后可获取代码实现的功能。例如cookie等有用信息。这里写图片描述
这里写图片描述
当然了,代码的功能取决于自己的需求,你甚至可以上传木马,而且因为恶意代码上传至服务器,服务器可能存储到数据库,因此无论管理员还是普通用户只要访问了这个页面的访客,都有可能会执行这段恶意脚本。(请注意一切测试需在法律允许的范围内!

喜欢记得点赞呦

  • 20
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。 二、XSS漏洞的危害 (1)网络钓鱼,包括盗取各类用户账号; (2)窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作; (3)劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等; (4)强制弹出广告页面、刷流量等; (5)网页挂马; (6)进行恶意操作,例如任意篡改页面信息、删除文章等; (7)进行大量的客户端攻击,如DDoS攻击; (8)获取客户端信息,例如用户的浏览历史、真实IP、开放端口等; (9)控制受害者机器向其他网站发起攻击; (10)结合其他漏洞,如CSRF漏洞,实施进一步作恶; (11)提升用户权限,包括进一步渗透网站; (12)传播跨站脚本蠕虫等; 三、过滤器配置 web.xml配置 XssFilter com.xxx.Filter.XssFilter XssFilter /*

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值