XSS靶场实验

第一题

image.png
第一点看见 传参 函数 name
尝试修改name 的值, 是否能执行js 脚本
image.png

源码分析

这里把 name 传的值 直接赋 给了 s t r < b r / > 然后 str <br />然后 str<br/>然后str 没有做任何防护就 输出了 str 就直接执行了js 代码
image.png

第二题

image.png
先尝试输入 一下 js 代码
image.png
没有反应
image.png
没有闭合
value="
改成value "/>
后面就是执行的js代码了
image.png

源码分析

image.png

这里有两个点
一个是 htmlspecialchars 函数
把预定义 的字符 转换为 实体字符
但是这里没有把输入值就是实体化
image.png
定义和用法
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
’ (单引号)成为 '
< (小于)成为 <

(大于)成为 >
提示:如需把特殊的 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。

image.png
html 实体字符表 (常用)image.png

第二个点

传进去的值是没有进行处理 和闭合
所有导致了 可以执行js代码

第三题

image.png
image.png
这里就用到了 html 实体编码了
这里把 ‘ <> 进行编码了
image.png

绕过
使用点击事件 onclick 或者
autofocus OnfOcus 自动聚焦和聚焦事件
image.png
image.png

image.png
没有就是闭合
'οnclick=alert(1)
少一个单引号
image.png
image.png
payload :
'οnclick='alert(1)
'autofocus οnfοcus='alert(1)
image.png

源码分析

image.png
这里就是在输入的地方做了实体化
第二题在输出的地方做了 没有在输入的地方做实体化

第四题

image.png

image.png
和第三题差不多的
使用双引号 进行闭合
image.png

第五题

image.png
这里只要输出了script 和 on
就会添加这个杠 scr_ o_n
大小写 双写 没用
这里可以使用
payload :
">
xss </a
image.png

源码分析

image.png
这里使用了strtolower 函数 和 str_replace() 函数替换字符串 函数
不管你输入大学还是双写大写 都会使用strtolower 转换成小写
然后 在进行替换
这里不能 使用 script 和 onlick ,onfoucus 函数了
使用 超链接的 形式进行xss
<a href= >

第六题

和上题一样使用 大写绕过就可以
image.png

源码分析

image.png
这里把href 也进行了替换 但是去掉了 strtolower 函数 就可以进行大写绕过了

第七题

image.png

image.png
这里就使用双写绕过
">alert(1)

第八题

image.png
输入了javascript:alert(1)
但是没有用过滤掉了scr
不能使用大写和双写绕过
这里使用16进制编码 把 r 和 i
payload:
javascript:alert(/xss/)
image.png

第九题

image.png
必须要使用http:// 不然就会出现 url错误
这要这么做呢
image.png
http:// 后面进行换行回车操作执行js
payload:
javascript:%0dhttp://%0dalert(/xss/)

源码分析

image.png
这里使用 了 === 严格比较 操作
image.png
必须使用http://
但是http:// 后面没有函数
使用 %0d 进行换行 处理
javascript:%0d
http://%0d
alert(/xss/)
这样就执行了

第十题

image.png
这题有个点就是 没有输入框 看源码是给隐藏掉了
然后输出的值也不是 keyword
而是t_sort 函数
过滤了替换掉了两个<>
所有这里使用点击事件 onclick
payload :
"οnclick="alert(1)

源码分析

image.png
第一个替换了 <> 括号
第二点 type 变成了隐藏
第三点 输入的函数不是 str 变量 , 变成了t_sort

十一题

image.png
一开始认为在t_sort 函数里面进行注入xss
但是写了没有效果
下面还有个 t_ref 函数
查看了资料发现可以进行Referer 头 进行注入 xss
使用BURP 抓包 修改进行Referer注入xss
image.png
修改返回包的 type 类型 为text
image.png

源码分析

image.png
从源码来看 一开始 误以为还是 t_sort 函数
单后面看这个t_ref 这个 也看不目标啥意思
代码从上往下看 注入的点应该就是 str33 这个变量了
后面才知道这里是 Referer 头的意思 那就是在Referer 的头进行了xss 注入

十二题

image.png
和刚才那题差不多的
这里函数是 t_ua 那就应该是User_agent 头注入xss 了
image.png
闭合了 修改为text 类型
image.png
image.png

十三题

image.png
差不多的 这里是cookie 注入xss
image.png
这里有个误区 就是不能把 user= 这个传参点删了 删掉之后就没有东西了
image.png
image.png
image.png

十四题环境有点问题

十五题

image.png
这题有点难 一开始没有看懂
image.png
一开始输入get 方式 输入 src =
这样会被过滤掉

源码分析

这里要联合源码进行分析处理
image.png
首先 get 输入方式 传参是 src
再了解一下 ng_include
image.png

用了ng-include指令的话,先了解一下其具体的用法。
1、ng-include 指令用于包含外部的 HTML文件。
2、包含的内容将作为指定元素的子节点。
3、ng-include 属性的值可以是一个表达式,返回一个文件名。
4、默认情况下,包含的文件需要包含在同一个域名下。
特别值得注意的几点如下:
1.ng-include,如果单纯指定地址,必须要加引号
2.ng-include,加载外部html,script标签中的内容不执行
3.ng-include,加载外部html中含有style标签样式可以识别

这里的ng-include 可以包含微步的html 文件
直接引用第一关的文件 进行 xss
在进行包含导入的 时候要加入 ’
?src=%27http://192.168.0.129/xss_lab/level1.php%27
image.png


在输入了原来的js 代码没有反应
代码里面做了html 实体化 但是好像没有变化
image.png

这里既然html 实体没有用
就用 标签 搞个超链接
image.png

image.png

payload

?name=<a%20href=javascript:alert(1)>aaaa</a
<img src=x onerror=alert(/XSS/)>'
<p οnmοusedοwn=alert()>哈哈哈</p>' 

十六题

image.png
传入的值在 center 里面
看刚好下面有个 img 标签
试着用img 标签 去xss

这里又进行了实体化
还有一种方法就是%0a 回车 代替空格
payload
<img%0ascr=x%0aοnerrοr=alert(1)>
image.png

源码分析

image.png
就是过滤了空格 / script

十七题

这里的题需要 flash 插件的浏览器 我这里没有 所以还有一种办法
修改php 文件 里面的swf 为 index.png
image.png

image.png

看源代码 知道他的传参点在于 arg01 arg02
image.png

image.png
这里看着好像没有过滤和闭合 引号
添加个点击事件试一下
onclick 前面要有个空格
οnclick=alert(1)
image.png

十八题

image.png
和上题一样的
写个点击事件
οnmοuseοver=alert(‘xss’)
οnlοad=alert(1)

FLash XSS

最后两题 看下面师傅 涉及到知识盲区了
https://blog.csdn.net/u014029795/article/details/103213877
https://blog.csdn.net/u014029795/article/details/103217680

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值