[ XSS-labs通关宝典 ] xss-labs 通关宝典之 less1 - less5

news2024/11/15 21:30:15

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 第一关: 反射型xss
    • 网页源码
    • 测试:
    • 服务器端:
  • 第二关:反射型xss
    • 网页源码
    • 测试:
    • 服务器端:
  • 第三关:
    • 服务器端:
  • 第四关:
    • 网页源码
    • 测试
    • 服务器端源码
  • 第五关:
    • 网页源码:
    • 服务器源码

第一关: 反射型xss

在这里插入图片描述

服务器以get方式提交了一个name参数,值为“test”,test为用户名
从页面回显来看,将neme参数的值显示在了页面上,并且显示了name参数值的字符长度

网页源码

在这里插入图片描述

可以看到它将name的参数值,插入到了

标签之间
那么 就很明显,这一关主要就是考察反射型xss

测试:

但是由于不知道服务器端对于提交的敏感字符有没有过滤,所以这里直接在name参数
中赋值一个简单的弹窗来进行测试。
将name参数重新赋值:
我们可以看到用于js弹窗的代码顺利执行了 右键查看源码
在这里插入图片描述
在这里插入图片描述
可以看到服务器是将我们的恶意代码原封不动的返回了,浏览器才能成功弹窗

服务器端:

在这里插入图片描述

从源码可以看出,将从服务器获得的name参数的直接值赋值给str变量,又将str变量直接插入到

标签之间,因此服务器并没有对name参数的值进行严格的管理,并且这个值还是用户可控的,所以存在反射型xss漏洞

第二关:反射型xss

在这里插入图片描述

从url入手开始看,依然是get方式传递参数,应该还是反射型xss
只不过这一关加入了“输入框”和“搜索”

网页源码

从源码来看,它的功能就是通过点击“搜索”按钮,将输入框内的内容以get方式提交给服务器上的level2.php
经过服务器的动态处理之后又会将参数keyword的值插入到

标签之中以及
添加到标签中的value属性的值内。
在这里插入图片描述

测试:

尝试使用上一关的恶意语句操作进行弹窗

提示没有找到

右键查看源码

  1. 标签之中的恶意代码被编码 其中<和>都被编码成了html字符实体。

猜测在服务器端用htmlspecialchars()函数对keyword参数的值进行了处理。
2.插入到value参数值中的恶意代码并没有被编码而是直接原样返回
在这里插入图片描述
在这里插入图片描述

但是问题是这里的js代码在标签属性值中,浏览器是无法执行的。
既然上面的恶意代码被编码了,那么只能从属性值中的恶意代码处进行突破了。
要想浏览器执行这里的弹窗代码,只需要将属性的引号和标签先闭合就可以了。
将keyword的参数值重新赋值">//">
左边的">去闭合原先的" 右边的//去注释原先的">
可以看到浏览器成功弹窗了,说明我们提交的恶意代码被浏览器执行了。
在这里插入图片描述

服务器端:

get方式传递到服务器端的keyword参数的值赋给str变量。
用htmlspecialchars()函数对变量str进行处理之后echo到网页上。
直接将变量值插入到了标签的value属性值中
因为这里并没有对敏感字符进行编码和过滤,所以可以通过构造实现XSS攻击。
在这里插入图片描述

第三关:

输入test尝试 右键查看源码
在这里插入图片描述
在这里插入图片描述

与第二关相似 不确定有没有 敏感字符过滤,编码等操作
构造payload弹窗: 提示没有找到
继续看看网页源码
这两处都将<和>这样的敏感字符编码成了html字符实体。
猜测服务器端在这两处都用htmlspecialchars()函数进行了处理。

在这里插入图片描述
在这里插入图片描述

服务器端:

在这里插入图片描述

确认我们的猜测
这里可以通过标签的一些特殊事件来执行js代码
构造代码:level3.php?keyword='οnfοcus=javascript:alert(‘xss’) > //&submit=搜索
在这里插入图片描述

发现没有直接弹窗,点击当前页面的输入框完成弹窗。
在这里插入图片描述

这是因为onfocus事件的特殊性造成的
onfocus 事件
onfocus 事件在对象获得焦点时发生。
onfocus 通常用于 , , 和.
最简单的实例就是网页上的一个输入框,当使用鼠标点击该输入框时输入框被选中可以
输入内容的时候就是该输入框获得焦点的时候,此时输入框就会触发onfocus事件
网页源码:

第四关:

这一关很明显还是用的get方式请求参数
并且该参数值在页面上有两处显示
上弹窗代码测试一下
在这里插入图片描述

输入框中与我们提交的参数值有出入,<和>没有了

网页源码

在这里插入图片描述

一处直接将<和>编码转换了 一处却是把<和>删除了
但是,事件触发却不需要使用这两个符号。

测试

用上一关的代码: ">οnfοcus=javascript:alert(‘xss’)// 或者
"οnfοcus=javascript:alert(‘xss’)>
在点击输入框之后成功触发了事件进行弹窗。
在这里插入图片描述

服务器端源码

分析一下
在这里插入图片描述

将get方式传递到服务器端的keyword参数的值赋给str变量。
将变量中的<和>删除
对变量进行编码然后显示在页面上
将去除<和>的变量值插入到标签的value属性值中。

第五关:

还是get方式请求参数,所以还是反射型的xss
上弹窗代码:测试一下
在这里插入图片描述
在这里插入图片描述

网页源码:

在这里插入图片描述

应该是被htmlspecialchars()函数将<和>进行了编码处理
在显示位可以看到,它在我们的恶意代码

这里居然对onfocus这一类的事件字符也进行了防范。
从刚才的响应来看提交的javascript字符并没有被过滤或者转义等
所以此处既然无法通过

在这里插入图片描述

服务器源码

将get方式传递到服务器端的keyword参数的值进行全小写的转换,然后赋值给str变量。
通过str_replace()函数来破坏变量值中的敏感字符的语义。On o_n
通过htmlspecialchars()函数处理之后显示到网页上,
直接将进行敏感字符处理之后的变量值插入到标签的value属性值中。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端常见问题汇总(十)

一、HTTP1.0和HTTP2.0的区别 http1.0&#xff1a;每次请求都需要重新建立tcp连接&#xff0c;请求完后立即断开与服务器连接&#xff0c;这很大程度造成了性能上的缺陷&#xff0c;http1.0被抱怨最多的就是连接无法复用。 http1.1&#xff1a;引入了长连接&#xff08;keep-al…

麒麟系统虚拟机安装教程

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 1.首先得安装VM Ware软件。 2.打开VM Ware&#xff0c;点击“文件”->“新建虚拟机”。 3.进入新建虚拟机向导&#xff0c;点击下一步。如下图&…

API管理神器:Apifox

前言 代码未动&#xff0c;文档先行 其实大家都知道 API 文档先行的重要性&#xff0c;但是在实践过程中往往会遇到很多困难。 程序员最讨厌的两件事&#xff1a;1. 写文档&#xff0c;2. 别人不写文档。大多数开发人员不愿意写 API 文档的原因是写文档短期收益远低于付出的…

2023—静待“雨中的海棠”发芽

2023—静待“雨中的海棠”发芽认真负责、全身心的投入工作减少抱怨勤思考、多总结—>高效工作保持7*24小时在线全身心BKGWY坚持不懈多运动骑车车、练哑铃、慢跑多看书看自己喜欢的书环青海湖准备环青海湖的攻略身体上的准备内心信念的支撑最后就静待“雨中的海棠”发芽吧&am…

kali - 扫描

数据来源 Whatweb WhateWhatweb是一个基于Ruby语言的开源网站指纹识别软件&#xff0c;正如它的名字一样,&#xff0c;whate能够识别各种关于网站的详细信息&#xff0c;包括&#xff1a;CMS类型、博客平台、中间件、web框架模块、网站服务器、脚本类型、 Javascript库、lP、 …

Apollo 配置中心

Apollo 配置中心目录概述需求&#xff1a;设计思路实现思路分析1.Apollo 配置中心2.Client端配置中心3.爬虫调度器5.Server端配置中心参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardne…

(免费分享)基于jsp,ssm甜点网站

开发工具&#xff1a;eclipse&#xff0c;jdk1.8 数据库&#xff1a;mysql5.7&#xff0c;Tomcat8.0 package com.softeem.controller;import java.util.HashMap; import java.util.Map;import javax.annotation.Resource;import org.springframework.stereotype.Controller; …

labelImag安装及使用教程

在做目标检测任务时&#xff0c;需要进行标注&#xff0c;选择了LabelImg作为标注工具&#xff0c;下面是安装及使用过程。 我们使用Anconda的虚拟环境进行安装&#xff0c;激活环境后&#xff0c;执行&#xff1a; pip install labelimg -i https://pypi.tuna.tsinghua.edu.c…

WebSocket 协议详述( java在线聊天室_上篇)

文章目录1、 WebSocket 协议1.1、 何为WebSocket&#xff1f;1.2、 websocket 和 http&#xff08;应用层的俩个协议&#xff09;1.3、 websocket协议的具体过程1.4、websocket好处2、 WebSocket实现2.1、 客户端实现2.1.1、 websocket对象2.1.2、 websocket事件2.1.3、 websoc…

【linux】linux中vim/vi (linux基本开发工具)

本期主题&#xff1a;linux中vim/vi的使用和介绍。博客主页&#xff1a;小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限&#xff0c;出现错误希望大家不吝赐 目录 &#x1f341;vim键盘图 &#x1f341;vim基本概念 &#x1f341;vim的基本操作 &#x1…

Python使用库(二)

Python使用库&#xff08;二&#xff09; 第三方库 认识第三方库 第三方库就是别人已经实现好了的库, 我们可以拿过来直接使用. 虽然标准库已经很强大了, 但是终究是有限的. 而第三方库可以视为是集合了全世界 Python 程序猿的智慧, 可以说是几乎无穷无尽. 问题来了, 当我们…

Linux驱动入门-最简单字符设备驱动(基于pc ubuntu)

一.字符设备驱动概念 字符设备是 Linux 驱动中最基本的一类设备驱动&#xff0c;字符设备就是一个一个字节&#xff0c;按照字节流进行读写操作的设备&#xff0c;读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI&#xff0c;LCD 等等都是字符设备&#xff0…

公共管理老师赴英国G5名校-伦敦大学学院CSC公派访学

CSC青年骨干教师项目的实施院校一般都要求申请人提前上报邀请函等申请材料&#xff0c;以进行校内遴选。为提升竞争优势&#xff0c;A老师希望能获得英国名校的邀请函。最终我们为其申请到英国G5名校之一的伦敦大学学院&#xff0c;凭借该邀请函&#xff0c;A老师顺利通过了本校…

【2022年终总结】勇敢追梦,去和人生博弈

目录序言刚开始的1月松懈的2月忙碌的3月迷茫的4月开源项目的5月入职汇报的6月7月8月9月假期过后的10月至关重要的11月最后冲刺的12月2022年的总结2023年的目标往年回顾序言 在刚刚过完的平安夜和圣诞节之际&#xff0c;同时意味着2022年要画上一个句号。这一周算是比较煎熬的几…

高效的事件处理模式——Reactor、Proactor

IO模型 从理论上说&#xff0c;阻塞IO、IO复用和信号驱动IO都是同步IO模型。因为在这三种IO模型中&#xff0c;IO的读写操作&#xff0c;都是在IO事件发生之后&#xff0c;由应用程序来完成的。而POSIX规范所定义的异步IO模型则不同。对异步IO而言&#xff0c;用户可以直接对I…

ubuntu18.04安装docker和nvidia-docker2

ubuntu18.04安装docker和nvidia-docker 1、卸载旧版本的docker 旧版本的 Docker 被称为 docker、docker.io 或 docker-engine。 如果安装了这些&#xff0c;需要卸载它们&#xff1a; sudo apt-get remove docker docker-engine docker.io containerd runc2、 使用存储库安装…

聊一聊 SQLSERVER 的行不能跨页

一&#xff1a;背景 1. 讲故事 相信有很多朋友在学习 SQLSERVER 的时候都听说过这句话&#xff0c;但大多都是记忆为主&#xff0c;最近在研究 SQLSERVER&#xff0c;所以我们从 底层存储 的角度来深入理解下。 二&#xff1a;理解数据页 1. 数据页的组织 在前面的文章中我…

Vue2学习笔记(二):MVVM模型、数据代理

一、MVVM M(Model): 对应data中的数据 V(View): 也就是模板(template) VM(ViewModel): 对应Vue实例对象 大多数的前端框架都或多或少借鉴了MVVM模型&#xff0c;其中VM可以看做是View与Model中间的桥梁&#xff0c;它协助页面(View)和数据(Model)的展示。 二、数据代理 1.了…

JUC(十一)-线程池-ScheduledThreadPoolExecutor分析

ScheduledThreadPoolExecutor 分析 文章目录ScheduledThreadPoolExecutor 分析一、ScheduledThreadPoolExecutor介绍二、ScheduledThreadPoolExecutor应用2.1 ScheduledThreadPoolExecutor 构造器2.2 ScheduledThreadPoolExecutor 应用代码三、ScheduledThreadPoolExecutor源码…

10多个LearnDash示例和演示:从这些在线教育网站获得灵感!

正在寻找真实的LearnDash示例来激发您自己的电子学习网站的灵感&#xff1f; LearnDash 是最受欢迎的 WordPress LMS 插件之一&#xff0c;约翰霍普金斯大学和 Collibra 等大型组织以及 Yoast 和 ProBlogger 等小型品牌都在使用它。 LearnDash在线教育网站定制 LearnDash是最…