XSS-labs


前言

做笔记 记录

level1

发现url处存在传参
?name=test
且页面有回显 test
说明应该可以控制输入,然后输出到页面中

payload:

`
结果如下,没有对输入的参数进行过滤 xss反射成功
在这里插入图片描述

level2

(1)如下图所示:测试123 发现搜索框 会将输入的参数输出在页面中
在这里插入图片描述
(2)直接输入<script>alert(123)</script> xss语句 看是否存在过滤
如图所示 没有弹窗
在这里插入图片描述
(3)ctrl + u 查看页面源代码发现

输出的恶意代码 被编码为html实体。
代码中应该将输入的参数 使用htmlspecialchars()函数进行了过滤。
在这里插入图片描述
(4)下方 标签中也将输入的参数 输出了出来 尝试 闭合input 标签 进行xss注入

payload:

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

注入成功
在这里插入图片描述

level3

解题知识:
onmouseover 属性可使用于所有 HTML 元素,除了: <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title>.
https://www.runoob.com/jsref/event-onmouseover.html

(1)依旧直接插入 发现未弹窗 ctrl+u 查看页面源码
发现 web应用在两处标签中输出参数时都经过了html实体编码
在这里插入图片描述
(2) 利用不需要 < >的xss语句
οnmοuseοver=‘javascript:alert(1)
还需要 闭合 value=’ ’ 的前后单引号

payload

'οnmοuseοver='javascript:alert(1)
在这里插入图片描述

level4

(1)输入<script>alert(123)</script>
在这里插入图片描述
发现一处 将< > 转码 输出
另一处 将< > 删掉 输出
(2)可以用上一关的payload 不需要 <>

payload

"οnmοuseοver="javascript:alert(1)
在这里插入图片描述

level5

知识:
href 标签的 href 属性用于指定超链接目标的 URL。

如果 href 属性没有被指定链接,<a> 标签将不是一个链接。

(1)输入<script>alert(123)</script>在这里插入图片描述
发现一处使用 htmlspecialchars()函数将<>进行了html实体编码输出
另一处 将 <script> 中加入了 _
(2)尝试 "οnmοuseοver="javascript:alert(1)
同样转化为 "o_nmouseover="javascript:alert(1)
(3) xss
闭合input

payload `

"> xss `

在这里插入图片描述

level6

(1) 插入 普通弹窗语句
在这里插入图片描述
页面源码与上关一样
(2)尝试上一关的 标签 超链接 `"> xss
报错

(3)尝试在这里插入图片描述

大小写混写

payload

"> xss
在这里插入图片描述

level7

(1)同上
1.<> 编码
2.script被替换为空
在这里插入图片描述
(2)因为 上边 还是得利用input标签 尝试 "οnmοuseοver="java:alert(1)
发现 on 和script 被替换为空 利用大小写 混用 和双写发现 双写可绕过
在这里插入图片描述

payload

"οnmοuseοver="java:alert(1)
在这里插入图片描述

leve8

(1) 添加 script alert 代码在这里插入图片描述
插入<a href=> 超链接中
(2)可以直接 加 javascript:alert(123) 尝试弹窗
因为script 会被插入 _
(3)也可以对 javascript:alert(123) 进行 unicode编码

payload

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#50;&#51;&#41;


在这里插入图片描述

level9

(1) 插入 script alert 弹窗测试
如下图所示
一处输出点 被转义
一处提示链接不合法
因为是网页跳转的超链接
猜测会验证前边是否有http://
在这里插入图片描述
(2)在1上+ http:// 测试
发现又被加入 _ 破坏 语义

在这里插入图片描述
(3) 尝试再上关 payload 基础上 加入http://
javascript:alert(123) // http://
注意需要在最后加入// 注释掉http://
在这里插入图片描述

level10

(1)
查看源码 发现三个隐藏表单
在这里插入图片描述
思路: 突破标签 尝试使其 不为隐藏标签
(2) 构造反射型 url参数
http://localhost/xss-labs/level10.php?t_link=&t_link=test" type=“text&t_history=test” type=“hidden&t_sort=test” type="text

发现 出现一处文本框 为t_sort
在这里插入图片描述

payload

http://localhost/xss-labs/level10.php?t_link=&t_sort= " type=“text” οnclick="alert(123)
在这里插入图片描述

level11

思路同上
经过测试发现 t_sort 可以插入值,但是" 会被编码

t_ref猜测是否为 referer的缩写
修改包加入

payload

referer: " type=“test” οnclick="alert(‘xss’)
重放包在这里插入图片描述

在这里插入图片描述

level12

查看源码
发现http请求头 user-agent
同上过关
在这里插入图片描述

level13

查看源码发现cookie
在这里插入图片描述
同上

level14

level15

总结

xss测试步骤:
1.检测输入的变量,确认每个web页面中用户可以自定义的变量,包括:http 请求头, post 数据。
2.在输入点输入poc ,ctrl+u 搜索 查看 输出点位置 标签。 看能否突破标签。
若存在过滤,看能否绕过过滤。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值