pikachu靶场通关之XSS(一)

暴力破解的字典

链接:https://pan.baidu.com/s/1Tr7ONqDGA0u5kMOfN6oR1A  
提取码:qvo2 

XSS (跨站脚本)概述

目录

XSS (跨站脚本)概述

跨站脚本漏洞攻击流程:​

跨站脚本漏洞盗取cookie流程:

跨站脚本漏洞的常见类型: 

三种类型的区别:

形成原因:

XXS防御:

跨站脚本漏洞(xxs)漏洞的测试流程

利用方式:

钓鱼攻击:

跨站脚本漏洞盗取cookie攻击流程:

什么是xss盲打

什么是跨域

同源策略

Pkxss管理后台使用介绍

XSS漏洞测试: cookie的窃取和利用:

XSS漏洞测试:钓鱼攻击:

XSS漏洞测试: xss获取键盘记录:



Cross-Site Scripting简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
XSS漏洞一直被评估为web漏洞中危害较大的漏洞。
XSS是一种发生在前端浏览器端的漏洞, 所以其危害的对象也是前端用户。
主要原因:是程序对输入和输出没有做合适的处理,导致”精心构造”的字 符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
XSS漏洞的防范:输入过滤、输出转义
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入:
输出转义:根据输出点的位置对输出到前端的内容进行适当转义。

跨站脚本漏洞攻击流程:
pikachu靶场通关之XSS(一)_第1张图片

pikachu靶场通关之XSS(一)_第2张图片

跨站脚本漏洞盗取cookie流程:

pikachu靶场通关之XSS(一)_第3张图片

跨站脚本漏洞的常见类型: 

危害:存储型>反射型> DOM型

反射型XSS(不会存在数据库里面,一般出现在查询页面)

反射型XSS,又称非持久型XSS,攻击相对于受害者而言是一次性的,具体表现在受害者点击了含有的恶意JavaScript脚本的url,恶意代码并没有保存在目标网站,而Web应用程序只是不加处理的把该恶意脚本“反射”回受害者的浏览器而使受害者的浏览器执行相应的脚本。

存储型XSS(存在数据库里面,一般出现在注册页、留言板等)

存储型XSS是指应用程序通过Web请求获取不可信赖的数据,在未检验数据是否存在XSS代码的情况下,便将其存入数据库。当下一次从数据库中获取该数据时程序也未对其进行过滤,页面再次执行XSS代码持续攻击用户。存储型XSS漏洞大多出现在留言板、评论区,用户提交了包含XSS代码的留言到数据库,当目标用户查询留言时,那些留言的内容会从服务器解析之后加载出来。

DOM型XSS(不与后台服务器交互数据  也属于反射型的一种  一种通过dom操作前端输出的时候产生问题)

DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式,DOM-XSS简单理解就是不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题。

三种类型的区别:

1.被攻击对象的不同

反射型XSS的被攻击对象一般是攻击者去寻找的

存储型XSS是广撒网的方式或者指定的方式,危害性更大,范围更广

DOM型XSS的被攻击对象其实和反射型XSS被攻击对象差不多,就是给攻击对象放送URL。

2.解析位置不同(个人感觉是反射型与存储型区别的本质)

反射型XSS的脚本被解析的地方是浏览器

存储型XSS的脚本被解析的地方是服务器

DOM型XSS也是浏览器,但是反射型XSS需要联网,而DOM型不需要

3.存储时间不同

反射型XSS是一次性

存储型XSS是存储在服务器上,只要服务器不挂机或者是被干掉,就一直会有

4.允许输入点的不同(这是DOM型与其他两种的区别)

反射型XSS在搜索框啊,或者是页面跳转啊这些地方

存储型XSS一般是留言,或者用户存储的地方

DOM是在DOM位置上,不取决于输入环境上

形成原因:

程序对输入输出没有做合适的处理,导致攻击者构造的字符输出到前端时被浏览器执行当作有效代码解析执行从而产生危害

XXS防御:

输入过滤  不允许可能导致xss攻击的字符输入

输出转义  根据输出点的位置对输出到前端的内容进行适当转义

Xss是一种发生在前端的漏洞  所以危害的对象也主要是前端用户

Xss可以用来进行钓鱼攻击  前端js挖矿  用户cookie获取  甚至可以结合浏览器滋生的漏洞对用户主机进行远程控制等

跨站脚本漏洞(xxs)漏洞的测试流程

找到输入点(查询接口、留言板等)

输入一组  特殊字符+唯一标识符  查看返回的源码  是否做出了相应的处理

通过搜索定位到唯一字符 (构造闭合)

构造脚本代码  (绕过)  查看是否执行成功  如果成功  存在xss漏洞

利用方式:

Get方式是比较容易地,参数放在url里面

        :直接把url发送给目标就可以了

Post方式提交参数是以表单的方式放在请求体里面

       :没法直接通过url发送给目标

钓鱼攻击:

用basic认证实现钓鱼场景

在实际的攻击场景当中  xss钓鱼的场景非常多   可以内嵌一些钓鱼页面  或者钓鱼链接

这里用basic认证实现钓鱼

在存在xss漏洞的页面  内嵌一个请求(javascript或者其他)

当用户打开了嵌入恶意代码的页面之后   页面会想远端的  后台(pkxss去发送一个请求)

这个请求会返回一个要求他进行bacis认证的头部    在用户界面上就会弹出一个要进行身份认证的提示框     一旦他输入了账号密码   这个账号密码就会发送到我们的pkxss后

跨站脚本漏洞盗取cookie攻击流程

用户  用浏览器  访问存在xss漏洞的站点

站点  返回给浏览器的  数据带有  恶意js代码

用户  浏览器执行  js代码  要求  发送cookie给  攻击者

攻击者伪造用户登录站点,造成破环

什么是xss盲打

也就是说我们输入的字符并不会在前端输出   

只有他的管理员才能看到我们输入的内容      前端用户是看不到的             

如果说管理员登陆后台之后  后台界面会把我们输入的内容进行输出的话  就意味着后台的管理人员会被x到

如果真的会被x到  那么这种场景的xss就叫xss的盲打

什么是跨域

当协议、主机(主域名,子域名)、端口号中任意一个不同就是不同域

不同域之间请求数据的操作,称为跨域操作

同源策略

两个域名之间不能使用js相互操作

为什么要有同源策略

A登陆了淘宝  攻击者大宋一个恶意连接urlb  盗取cookie

如果没有同源策略  urlb上的js可以操作A的内容  (如cookie)

同源策略限制了这种情况

Pkxss管理后台使用介绍

Pkxss   可独立安装

pikachu靶场通关之XSS(一)_第4张图片pikachu靶场通关之XSS(一)_第5张图片

配置数据库

 pikachu靶场通关之XSS(一)_第6张图片

 pikachu靶场通关之XSS(一)_第7张图片

pikachu靶场通关之XSS(一)_第8张图片

 登录进来

 pikachu靶场通关之XSS(一)_第9张图片

XSS漏洞测试: cookie的窃取和利用:

利用反射型xss get型  演示

首先去掉20个字节的限制

输入  alert()可弹窗

一:

这里我们输入一个长点的payload

通过这个document.location实例所以个重定向(一旦他访问这个页面 javascript 就会执行 就会去访问 这个url      访问的时候就把kookie也带过去了)     

通过这个实例去获取本地的kookie   document.cookie

这样就形成了一个完整的get请求

输入   提交   查看    得到cookie

pikachu靶场通关之XSS(一)_第10张图片

pikachu靶场通关之XSS(一)_第11张图片

二:

输入   提交(自动跳转到首页)     查看    得到cookie        得到url发送给被攻击者    欺骗其点击  自动跳转到首页(自己设定)    后台多一条cookie记录   (点击链接者的cookie信息)

pikachu靶场通关之XSS(一)_第12张图片pikachu靶场通关之XSS(一)_第13张图片

pikachu靶场通关之XSS(一)_第14张图片

pikachu靶场通关之XSS(一)_第15张图片


XSS漏洞测试:钓鱼攻击:

用basic认证实现钓鱼场景

在实际的攻击场景当中  xss钓鱼的场景非常多   可以内嵌一些钓鱼页面  或者钓鱼链接

这里用basic认证实现钓鱼

在存在xss漏洞的页面  内嵌一个请求(javascript或者其他)

当用户打开了嵌入恶意代码的页面之后   页面会想远端的  后台(pkxss去发送一个请求)

这个请求会返回一个要求他进行bacis认证的头部    在用户界面上就会弹出一个要进行身份认证的提示框     一旦他输入了账号密码   这个账号密码就会发送到我们的pkxss后台

利用存储型xss做演示:

只需要在存储型的页面去嵌入一个能够访问我们后台的返回basic认证的页面的标签就可以了     可以用a标签  可以用img    script  都可以

src = 'http://127.0.0.1/pikachu-master/pkxss/xfish/xish.php'/>

我们这里用script标签里面的  src属性

src = 'http://127.0.0.1/pikachu-master/pkxss/xfish/fish.php'>

每当用户访问这个页面的时候  就会去执行这段javascript的代码

就会通过src这个属性去请求我们远端的fish.php文件

是存储型的    每次访问这个页面都会弹出  输入框

只要输入账号密码     就获取账号密码    并保存在xss后台

pikachu靶场通关之XSS(一)_第16张图片

pikachu靶场通关之XSS(一)_第17张图片

pikachu靶场通关之XSS(一)_第18张图片 pikachu靶场通关之XSS(一)_第19张图片

XSS漏洞测试: xss获取键盘记录:

 了解一下什么是跨域

pikachu靶场通关之XSS(一)_第20张图片

pikachu靶场通关之XSS(一)_第21张图片

pikachu靶场通关之XSS(一)_第22张图片

存储型xss做演示

这个src可以把127.0.0.1(目的地址)的js代码加载到本地来运行

输入点提交       script代码就被嵌入到页面里面  

看网络请求      键盘输入   提示   请求失败     有错误提示

提示不能去请求0.1的php文件   因为没有被允许访问

 没有被放到允许跨域请求的源地址里面     

pikachu靶场通关之XSS(一)_第23张图片

pikachu靶场通关之XSS(一)_第24张图片

这样同源策略的好处:帮助用户做了这么一道安全措施

由于这个是攻击者自己搭建的   所以允许所有人来跨域请求他

把跨域请求的源设为所有     *代表所有

pikachu靶场通关之XSS(一)_第25张图片

回到pikachu  刚刚代码已经被嵌入

直接键盘输入aaaaaa    发现很多网络请求     发现6个post请求

后台全部记录下来

 pikachu靶场通关之XSS(一)_第26张图片

 pikachu靶场通关之XSS(一)_第27张图片

总结:

这是xss的简单概述,简单聊了一下XSS的攻击流程、分类、各类别的区别、防御措施、测试流程、利用方式、xss盲打、跨域、同源策略等内容

利用pikachu后台简单做了三个小测试:盗取cookie,钓鱼,获取键盘值。

下一篇文章将具体写pikachu  xss的通关过程

你可能感兴趣的