XSS漏洞概述及使用

XSS 漏洞概述


简介

XSS作为OWASP TOP 10 之一
XSS被称为跨站脚本攻击(Cross-site scripting),本来应该缩写为CSS,但是由于和CSS(Cascading Style Sheets,层叠样式脚本)重名,
所以更名为XSS。XSS(跨站脚本攻击) 主要基于javascript (JS) 完成恶意的攻击行为。
JS可以非常灵活的操作html,css和浏览器,这使得XSS攻击的"想象"空间特别大。
    XSS通过将精心构造的代码(JS)代码注入到网页中,并由浏览器解释运行这段JS代码,以达到恶意攻击的效果。
    当用户访问被XSS脚本注入的网页,XSS脚本就会被提取出来,用户浏览器就会解析这段XSS代码,也就是说用户被攻击了。
    用户最简单的动作就是使用浏览器上网,并且浏览器中有javascrit解释器,可以解析javascript,
    然而浏览器不会判断代码是否恶意。也就是说,XSS的对象是用户和浏览器。
   XSS漏洞发生在哪里?
    服务器
   
    微博、留言板、聊天室等等收集用户输入的地方都有可能被注入XSS代码,都存在遭受XSS的风险,只要没有对用户的输入进行严格过滤,就会被XSS

XSS危害

XSS利用JS代码实现攻击,有很多种攻击方法,以下简单列出几种
@   盗取各种用户账号
@   窃取用户Cookie资料,冒充用户身份进入网站
@   劫持用户回话,执行任意操作
@   刷流量,执行弹窗广告
@   传播蠕虫病毒
......

XSS漏洞的验证

我们可以用一段简单的代码,验证和检测漏洞存在,这样的代码叫做PoC(Proof of Concept)
P0C         漏洞的验证与检测
EXP         漏洞的完整利用工具
shellcode   利用漏洞时,所执行的代码
payload     攻击载荷
            sqlmap                  攻击代码的模板
            msf                     shellcode类似,功能是建立与目标的连接
验证XSS漏洞存在的PoC 如下:

<script>alert(/xss/)</script>                   弹框(常用)

    <script>confirm('xss')</script>             弹确认框

        <script>prompt('xss')</script>          弹输入框


我们可以在测试页面中提交这样的代码
[<script>alert(/xss/)</script>]
点击提交按钮就能看到弹窗操作

点击确定,邮件查看网页源代码如下:

我们发现,提交的代码
[<script>alert(/xss/)</script>]

被当做字符串输出在HTML页面中,浏览器会根据
[<script>]

标签识别为JS
语句并且执行它,执行弹窗操作。也就是说,可以执行其他JS代码,因此我们验证了XSS漏洞的存在性

XSS的分类

XSS漏洞大概可以分为三个类型:反射型XSS、存储型XSS、DOM型XSS

反射型XSS

反射型XSS是非持久性、参数型的跨站脚本
反射型XSS的JS代码在Web应用的参数(变量)中,如搜索框的反射型XSS
在搜索框中,提交
PoC[<script>alert(/xss/)</script>]
点击搜索,即可出发反射型XSS
注意到,我们提交的poc会出现在search.php页面中的keywords参数中

存储型XSS

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值