xss漏洞总结

Xss漏洞(跨站脚本攻击)

原理

通过网页插入恶意脚本,如前端的HTML和JavaScript。当用户浏览网页时,浏览器执行用户输入的JS代码,实现控制用户浏览器

危害

获取用户的cookie,利用cookie盗取用户对该网站的操作权限;

获取用户联系人列表,利用被攻击者的身份向特定的目标群发送垃圾信息

XSS的分类

XSS一般被分为三类:反射性XSS,存储型XSS,DOM型XSS

这三种类型的危害程度一般认为:存储型XSS>反射型XSS>DOM型XSS

反射型XSS反射型XSS我们可以理解为一次性的XSS,一般是通过url请求中插入JS代码,然后随着浏览器通过响应的方式传给用户,也可能是通过站内信息,比如聊天框中没有对输入过滤,输出转义,然后攻击者将恶意的JS代码发送给受害者,从而达到窃取用户信息比如cookie的目的。 反射型(非持久型):搜索框 攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容)
存储型XSS存储型XSS我们可以理解为持续性的XSS,比如用户输入的信息会在服务器的后台存储,服务器并没有严格对输入过滤,输出转义的配置的话,那么一段恶意的JS将永久存储在服务器中,举个例子,我们都玩过论坛,贴吧之类的社区网站,此时有个攻击者将恶意的JS代码插入留言板内,那么只要是有人浏览至带有恶意JS代码的评论区内时,恶意的JS代码就会被浏览器信息解析,那么用户的信息就可能被攻击者窃取。如果此时管理员浏览至此,是不是cookie就会被窃取,攻击者就可以通过窃取的管理员cookie登录后台。所以XSS中存储型的危害最为致命,某歌曾经就有过存储型XSS漏洞。 存储型(持久型):发表文章的地方,留言板 代码是 存储在服务器中的,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie
DOM型XSSDOM型XSS是个特殊型的XSS,它是基于文档对象型Document Object Model的一种漏洞,DOM是一个与平台编程语言无关的接口,对于浏览里而言DOM文档就是一份XML文档,由客户端的脚本通过DOM动态地输出数据到页面而不是依赖于将数据提交给服务器端,而从客户端获得DOM中的数据在本地执行,因而仅从服务器端是无法防御的。
DOM型: 从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞

测试方法:

1.在数据输入界面,输入:<script>alert(/123/)</script>,保存成功后如果弹出对话框,表明此处存在一个XSS 漏洞。

2.把url请求中参数改为<script>alert(/123/)</script>,如果页面弹出对话框,表明此处存在一个XSS 漏洞。

3.使用xss平台/工具可以实现多种功能进行漏洞利用

防御:#安全修复方案

开启httponly,输入过滤,输出过滤等

1、服务端过滤用户输入的危险字符(<|>|%|#|\x|&|’|\)

2、对输出内容进行HTML实体编码(编码后类似a)

(回答输入过滤,输出编码也可以)

第一阶段:使用ESAPI

这是一个Apache开发的安全组件,主要用于解决SQL注入和恶意脚本注入。

使用ESAPI防止XSS攻击时,首先应当配置过滤器(注意在过滤器中chain.doFilter(..)方法中的Request对象进行包装,在包装类中对请求参数进行筛选操作);其次将过滤器注册到web.xml文件中;最后配置Request的包装类,在其中对请求信息进行过滤。

注意:开启ESAPI的防护功能时(value = ESAPI.encoder().canonicalize(value);),需要提前对要筛选的值进行URL解码(value = URLDecoder.decode(value);),否则会出现中文乱码。

第二阶段(可选):使用CSF(Content Security Policy)安全策略

CSF是一种白名单防御策略,所有不在名单内的资源都不被信任,有效的防止了通过外部的标签、脚本、JS文件等资源的入侵形式,详情请看http://www.ruanyifeng.com/blog/2016/09/csp.html,我也是在这位大佬的网站上学习的CSF.

使用方式:

1.通过<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src cdn.example.org third-party.org; child-src https:">标签将CSP嵌入到页面中。但是这种做法会对所有页面添加一个过滤项,加长了页面的访问时间,降低了用户体验;我加到项目中的时候还出现了某些样式文件加载不全的现象,没有必要不建议这么做。

2.通过使用Nginx配置HTTP 头信息的Content-Security-Policy的字段,但是一般的公司都不允许更改Nginx,一旦Nginx做了某种配置,整个项目都受影响,这种方式基本没戏。

漏洞利用

XSS获取Cookie

XSS钓鱼获取用户密码

XSS获取键盘记录

XSS平台搭建xssplatform

Kali beef-xss

XSS小游戏解题思路/靶场

工具

Beef

kali自带

小旋风

xss漏洞利用平台

Xsstrike

XSStrike主要特点反射和 DOM Xss 扫描

多线程爬虫

Context分析

可配置的核心

检测和规避 WAF

老旧的 JS 库扫描

智能payload生成器

手工制作的HTML & JavaScript解析器

强大的fuzzing引擎

盲打 xss 支持

高效的工作流

完整的 HTTP 支持

Bruteforce payloads

Payload编码

漏洞容易出现的地方

留言板 评论区 订单 反馈

在有shell的情况下,如何使用xss实现对目标站的长久控制

后台登陆处加一段记录登陆账号密码的js,并判断是否登陆成功,就把账号和密码记录到一个生僻的路径文件中或者直接发到自己的网站中

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值