| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 护网笔记(八)--XSS漏洞利用 -> 正文阅读 |
|
[JavaScript知识库]护网笔记(八)--XSS漏洞利用 |
浏览器同源策略概述1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同":
举例如下:
总结:只有同时满足域名、协议、端口同时一致,才是同源的 目的同源策略的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。 设想这样一种情况: (之前讲过,登陆网站一般都会记录cookie值,如果不消息访问了恶意的小网站,同时它又捕获了你的cookie,而http又是无状态的协议,谁有cookie就认谁是真的,所以没有同源策略就很危险。后边要学的XSS如果打到cookie就可以完成冒用身份登录)
限制范围随着互联网的发展,"同源政策"越来越严格。目前,如果非同源,共有三种行为受到限制:
虽然这些限制是必要的,但是有时很不方便,合理的用途也受到影响。 例如,我同一个站点的两个不同域名不能共享Cookie; 再例如,我的前端页面项目的域名与我后端Jetty服务的域名不同,那么我就无法发送Ajax请求来访问Jetty服务,等等。 现在有一个场景:A站点上很多目录(www.A.com/upload www.A.com/test www.A.com/doc )他们使用同一个cookie都可以正常访问,但是存在某个upload目录下有一个很重要的cookie,不想与其它分享
①设置能够携带cookie访问的路径 ②指定一个固定的域名,默认是当前php文件所属的域名 ③安全套接字,考虑到兼容性默认false使用http的,如果全局都做了https就可以设置true ④httponly控制是否不允许通过js代码进行操作cookie 在HTML语言中,有部分标签在引用第三方资源时,不受同源策略的限制:
上述这种带有src属性的标签,在加载的时候,实际是生成一条GET请求,向服务器申请资源。 XSS介绍与原理XSS(跨站脚本)概述
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。 XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。 形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
反射型XSS反射行XSS又称为非持久性XSS,XSS代码出现在Url参数或者请求中,浏览器发出请求时,参数值作为输入提交到服务器,服务器接收这个参数并处理后,参数值出现在响应的HTML中,最后浏览器解析并执行了这段XSS代码。
靶场:
XSS短连接 应用场景:在做钓鱼的时候网址过长容易引起怀疑,需要将网址变短 存储型XSS存储型XSS:又称持久型XSS,它与反射型xss最大的不同,就是攻击脚本被永久的存放到目标服务器的数据库或者文件中,因此储存型XSS的危害会更大。 存储型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。
分析
浏览器访问新建的文件,并传递参数,参数值 发现语法也没错即使不弹窗,可知道textarea标签优先级比较高,在它闭合之前中间的内容都当做文本处理。 例如: 调试存储型XSS 1)先去Pikachu平台上练习一下,并查看网页源码
2)开始之前将刚才插入的点击删除掉。重新插入使用burpsuite抓包 3)设置代理使用bp抓包,然后发送到Repeater中 4)在POST请求路径后添加 XDEBUG_SESSION_START=PHPSTORM 点击Send发送,进入PHPstorm进行调试 5)重点在23行判断POST提交的 message参数,判断是否为空,下一步对它使用escape()函数进行处理 6)进入这个函数中看到对传入的字符串进行转义处理,右键 Set Value修改$data的值
7)查看返回的$message值中的单引号已经做了转义,所以这里只过滤了SQL注入。然后插入数据库 8)可以登上数据库查看刚才插入的表 9)第33行往后是控制页面出现删除按钮的,现在可以关闭调试去看看页面情况 10)去刷线下页面,出现弹框,确定后,看到页面出现删除按钮。 下面看一下,刷新页面为什么会出现弹框 11)可以和上边一样bp抓包,repeater修改 send发送PHPstorm调试,也可以直接在浏览器中直接发送到phpstorm进行调试 12)刷新页面是一个GET请求,可以跳转到第33行,判断get中有没有id值,没有做删除所以没有传入id值,就会往下跳转 13)第79行往下,先打印$html ,查询数据库message表,将表中带有注入代码读取出来,直接放在 标签里面。 总结:存储型XSS利用过程
XSS平台新开一个pikachu网站作为xss平台 (1)pikachu之xss获取cookie 核心payload:
说明:
? …/pikachu/pkxss/xcookie/cookie.php脚本写的是结束跳转页面的请求 例如:
2)我们会获取一条cookie,后续用户一旦访问这个页面,还会获取到cookie,并且重新定向到我们指定的地址上。 3)查看cookie,我们后台就会收到它的cookie等信息。如图: 找个存储型XSS
实验环境有问题,可参考学习不做本实验 相关说明连接地址: https://www.naraku.cn/posts/38.html 思路:在一个存在xss漏洞上的页面上嵌入一个链接请求,请求会返回一个Basic认证的一个头部。 若用户信息安全意识不够,输入了用户和密码,那么这些会被发送到pkxss后台 我们的实验用 存储型xss模块演示 我们只需要在这个存储型的页面上去,嵌入一个能够访问我们后台的返回Basic认证的标签就行
地址: http://127.0.0.1/pikachu/pkxss/pkxss_login.php (3)pikachu之XSS获取键盘记录 我们仍然是用存储型xss来演示,先看下pkxss后台的键盘记录 修改ip,ip为自己xss平台的ip地址 …/pkxss/rkeypress/rk.js 返回输入框,
这一策略就违反啦同源策略,(ajax) 由于XSS平台是攻击者自己搭建的,攻击者可以允许所有的人跨域请求他,可以rkserver.php把里面的Access-Control允许所有人访问。即可实现攻击目的。 pkxss后台会有键盘记录,地址: http://127.0.0.1/pikachu/pkxss/pkxss_login.php DOM型XSSDOM型XSS ? 对象模型(Document Object Model)即大名鼎鼎的DOM,它可以被认为是一种通过将页面元素以对象的树形方式表现,以便有javascript组织处理的实现方法。 常用的DOM方法 用户可通过javascript(以及其他变成语言对HEML DOM进行访问,所有HTML元素被定义为对象,而编程接口则是对象方法和对象属性。)
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:43:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |