Xss挑战(跨脚本攻击)

server/2024/11/18 13:02:18/

Xss挑战(跨脚本攻击)

首先在kali中下载xss

可以使用命令docker search xss-labs

下载xss

docker pull vulfocus/xss-labs

运行容器,映射到8088端口加载镜像

Docker run -dt -p 8088:80 vulfocus/xss-labs

用浏览器访问127.0.0.1:8088 开启xss挑战

第一关

       

看url地址栏里的name,修改name里面的参数,输出到等号后面,构造代码<script> alert('欢迎来钓鱼')</script>

成功通关

第二关

在输入框里输入攻击代码

页面把攻击代码进行打印了

Ctrl+U查看源码

可以看到没做过滤只是我们输入的内容都被放到了value
那么就将这个value用双引号进行闭合,在用大于号闭合input标签,最后在加上script标签进行xss注入
1"><script>alert(/xss/)</script>>

第三关

输入一个代码测试

查看源码

我们看到小于号被过滤掉了可以看到value后面是单引号我们进行闭合添加一个html事件进行xss注入1' οnkeydοwn='alert(/xss/)

输入任意字符即可通过

第四关

查看源码

我们看到小于号被过滤掉了为空格并且闭合改为双引号那么就用双引号闭合构造html事件

"οnclick="alert(/wuhu/)

第五关

先输入上一题的攻击代码试试

"οnclick="alert(/wuhu/)

查看源码

这里将我们输入的事件onclick的on之间添加了下划线

试一下<script>标签是否可以

<script>alert(/wuhu/)</script>

发现<script>标签也被添加了下划线

这里无法使用事件了,可以使用伪协议,闭合方式为双引号

先将input标签闭合,然后构造超链接标签

"> <a href="javascript:alert(/xss/)">阜阳</a>

点击超链接

第六关

先输入攻击代码查看页面响应

<script>alert(/wuhu/)</script>

产看源代码发现script标签被添加了下划线

使用响应事件来构造攻击代码

<a href = "#"  onclick = 'alert(/wuhu/)'>click me!</a>

同样页面没有响应,查看源代码,发现响应事件被添加了下划线

使用伪造协议来构造攻击代码

<a href = "javascript:alert(/xss/)">click me!</a>

同样页面没有响应,查看页面源代码,发现href被添加了下划线

采用大小绕过的方式构造攻击代码

"> <SCRIPT>alert(/wuhu/)</SCRIPT>

第七关

先输入攻击代码查看页面响应

<script>alert(/wuhu/)</script>

页面没有响应,查看页面源代码,发现我们script标签被替换为空了

源码中将script,on,src,data,href标签及属性转换为空。这里可以先使用input便签进行闭合,再双写script进行绕过

"> <scrscriptipt>alert(/xss/)</scrscriptipt>

" oonnclick="alert(/wuhu/)

第八关

先输入攻击代码产看页面响应

<script>alert(/wuhu/)</script>

页面没有响应,产看页面源代码

发现将我们构造的攻击代码放到了a标签中,并且给script标签添加了下划线。

这里将script,on,src,data,href,进行了过滤,并且在尝试的时候关键字双写不能用了,那么这里直接选择不去闭合标签,直接使用伪协议,但是发现javascript也被拆开了,这里可以对伪协议中的字母进行转码。

构造攻击代码:

javasc&#x72;&#x69pt:alert(/xss/)

输入后点击友情连接

第九关

这一关和上一关很想,先使用上一个构造的攻击代码

javasc&#x72;&#x69pt:alert(/xss/)

页面没有任何响应,查看页面源代码

先写一个正确的链接,然后点击友情链接,页面可以正常跳转

查看源代码,这里显示出了正常的链接地址。

源代码

这里查看我们注入的代码是否有http://,如果包含则执行else中的语句,将我们构造的攻击代码输入到href中,如果不包含则在a标签中的href显示指定字符串。

Strpos 查找字符串首次出现的位置

构造攻击代码,将http://加入到alert的()中。

javasc&#x72;&#x69pt:alert('http://')

第十关

这一关需要给浏览器安装一个插件hacbar如果有的就不用安装了

安装步奏为:

先打开设置 点击下面的安装插件

在搜索框里输入hacbar 进行安装就行

安装后按F2查看有没有此插件

接下来继续挑战

查看源码

发现输入的内容被转为html实体编码,不过可以看到下面是由输入框但是被隐藏了,我们在F12里的开发者模式将hidden属性改为text

可以看到出来三个输入框我们用代码测试

我们可以看到只有最后一个接收到了内容我们看到只过滤了小于号那我们构造html事件进行注入1" onclick="alert(/xss/)输入之后再次修改一下类型就可以了

第十一关

查看源码

分别给t_linkt_historyt_sort赋值

发现还是只有t_sort有值

页面还是没有反应,查看源代码

发现提交给tsort的参数被过滤了

产看源代码,既然tsort不行,这里尝试使用tref参数

" type="text" onclick = "alert(/xss/)

第十二关

查看源码

发现这次传递的是USER_AGENT参数

修改USER_AGENT字段,在该字段构造我们的攻击代码

" type="button" onclick = "alert(/xss/)

第十三关

查看源码

发现这次传递的是COOKIE参数

修改COOKIE字段,在该字段构造我们的攻击代码

user=" type="text" onclick = "alert(/xss/)

点击输入框即可完成挑战


http://www.ppmy.cn/server/142919.html

相关文章

NoSQL大数据存储技术测试(4)Cassandra的原理和使用

单项选择题 第1题 Cassandra的特点不包括&#xff08;&#xff09;。 节点对称 去中心化 强调高一致性 &#xff08;我的答案&#xff09; 支持异构设备 第2题 Cassandra采用&#xff08;&#xff09;实现分布式环境的拓扑划分。 Paxos算法 CAP原理 布隆过滤器 一致…

Java Function 的妙用:化繁为简的魔法师!

Java Function 的妙用&#xff1a;化繁为简的魔法师&#xff01; 在 Java 开发中&#xff0c;Function 是一个非常重要的函数式接口&#xff0c;它的存在让代码从繁琐走向简洁&#xff0c;从普通迈向优雅。今天&#xff0c;我们就来聊聊 Function 的那些“妙用”&#xff0c;以…

SRP 实现 Cook-Torrance BRDF

写的很乱&#xff01; BRDF&#xff08;Bidirectional Reflectance Distribution Function&#xff09;全称双向反射分布函数。辐射量单位非常多&#xff0c;这里为方便直观理解&#xff0c;会用非常不严谨的光照强度来解释说明。 BRDF光照模型&#xff0c;上反射率公式&#…

nodejs+mysql+vue3 应用实例剖析

文章目录 node.js vue3 mysql 应用后端实现&#xff08;koa部分&#xff09;1. 项目初始化与依赖安装2. 目录结构3. config/db.js - 数据库配置与连接4. models/user.js - 用户模型及数据库操作5. controllers/authController.js - 认证控制器6. controllers/userController.j…

VScode+opencv——关于opencv多张图片拼接成一张图片的算法

用于显示多张图片——变量为图片组&#xff0c;图像尺寸&#xff0c;间隙&#xff0c;边界值&#xff0c;输出图片 #include <iostream> #include <opencv2/opencv.hpp>using namespace cv; using namespace std;//用于显示多张图片,变量为图片组&#xff0c;图像…

vue之axios根据某个接口创建实例,并设置headers和超时时间,捕捉异常

import axiosNew from axios;//给axios起个别名//创建常量实例 const instanceNew axiosNew.create({//axios中请求配置有baseURL选项&#xff0c;表示请求URL的公共部分&#xff0c;url baseUrl requestUrlbaseURL: baseURL,//设置超时时间为20秒timeout: 20000,headers: {…

从 Rust 官方文档理解 Ownership

Rust 的 Ownership 感觉仍然很复杂&#xff0c;但 Rust 官方文档 The Rust Programming Language - Understanding Ownership 所费篇幅似乎并不多。下面就阅读该文档并记录下来对 Rust Ownership 的理解&#xff0c;相信官方的文档会表述的比准确而清晰。 本文中对 Ownership,…

鸿蒙元服务 证书过期替换 ERROR - hap-sign-tool: error: Signature verify failed

昨天需要升级一版元服务&#xff0c;打包时发现签名过期了&#xff0c;之前替换了App的签名以为很顺利&#xff0c;结果还是搞了小半天。 证书部分 遇到问题&#xff1a;ERROR - hap-sign-tool: error: Signature verify failed 这里需要将p12也替换成最新的。就是说证书文件…