XSS靶场过关

第一关:
查看源代码:
在这里插入图片描述

发现进入下一关的条件是弹出alter窗口
第一关的url
在这里插入图片描述

同时提示欢迎用户test
那么我们明白了name就是一个注入点
在这里插入图片描述

使用

语句,进入下一关

第二关:
也用语句试试
查看源代码发现<>被实体化了
在这里插入图片描述

但是下面value值的<>并没有被实体化
所以构造:
“>
“> 用来闭合input标签和”,让

第三题:
还是 先试试
在这里插入图片描述

发现<>都被实体化了
不过没关系,我们可以用οnclick=alert()语句
在这里插入图片描述

发现有单引号未闭合,那么加上:
’ οnclick=alert() ’ 可以 ‘οnclick=alert()’ 不行
这是为啥呢?这就要注意到html的语法了:使用标点符号时,要空一格。
在这里插入图片描述

再点下输入框,ok
第三关的问题,没打单引号时:
在这里插入图片描述

这句话的意思是将οnclick=alert()的值传给value,所以我们得让注入语句是独立的一句,需要闭合单引号。

第四关:
还是先
在这里插入图片描述

发现上头的<>被实体,下头的没滤没了
那就onclick吧:
在这里插入图片描述

不行,并发现有双引号,那么要使οnclick=alert()成为一个独立的语句,就得把两个双引号闭合掉。加上"" ,ok了
在这里插入图片描述

第五关:
老规矩 看看过滤方法
在这里插入图片描述

上边转实体下边加了条杠,那么οnclick=alert()
在这里插入图片描述

待遇相同,都是关键字变形。
那么我们想到当输入字符出现在href语句中时,可以使用javascript:alert()语句
那么我们使用上述语句的同时,构造herf属性。
结合语法构造语句: “>2333<”
(注意herf语句构造的值要用"“标记起来) 这样传过去后,就构造出了
2333<”">
在这里插入图片描述

点进超链接,弹窗,ok,下一关。

第六关:

在这里插入图片描述

转实体与关键字变形
试试大小写绕过:
在这里插入图片描述

">
可能是服务端没有进行正则式的匹配,所以没有被变形,闭合一下“
在这里插入图片描述

第七关:
在这里插入图片描述

大小写绕过script也被替换为空了。

οnclick=alert()的on也被替换为空,herf也一样
在这里插入图片描述

那么使用双写绕过: alert(1)把 script放在script里头
在这里插入图片描述

再闭合一下双引号
“>alert(1)<”
在这里插入图片描述

第八关:
在这里插入图片描述

语句在href里,且有关键字屏蔽,试试js语句,也不行,大小写也无法绕过
在这里插入图片描述

那么试试编码绕过。
将javascript:alert() 转成Unicode,扔框里就行了。
javascript:alert()

2333//

这样也是可以的,对javascript:alert()进行实体化:
javascript:alert()
关于编码的解释:
当写入:

1.首先浏览器接收到HTML代码,会先开始进行HTML解析,构造DOM树,粗略的讲就是识别 <> 这些标签,赋予其特殊含义,区别于纯文本内容。
注意此时并不会做任何解码操作,所以构造 &#lt;img src=“javascript:al\u0065rt(1)”> 是不会弹窗的,因为没有识别到标签,它相当于就是一个纯文本,具体来说就是:标签属性名和赋值符号不能编码,但是标签属性的值可以编码
2.DOM树构造完成,开始HTML解码,变成了click me
3.唉,碰到链接类属性 href 了,尽管发现了是javascript伪协议,浏览器也会直接 URL 解码一次,然后就变成了 click me
4.解码后,因为是 javascript 伪协议,所以 JS 解析器便开始工作了,解析成了 click me,注意在识别协议的时候,协议是不能被任何编码的,除非在识别之前已经被解码了,不然的话是不能被识别出来的的,比如说 href=“j%61vascript:alert(1)” ,冒号被编码也不行,浏览器虽说会 URL 解码,但是并不会解码之后再识别一次这是什么协议,于是不管是 http 协议还是 javascript 伪协议也好,此时都发挥不了作用而且,此时 href=“j%61vascript:alert(1)” 中的冒号括号也不能被 js 编码,否则不会弹窗
5.然后就顺利弹窗了
6.当然,并不是所有时候都是这种解码顺序,要依据具体情况而定。
一位大佬关于XSS编码问题的个人总结: https://www.cnblogs.com/wjrblogs/p/12497194.html

第九题:
直接注入:javascript:alert()
在这里插入图片描述

说我的链接不合法,那就么用个合法的试试。
在这里插入图片描述

还是提示不合法,是不是要http头呢?加上,https不行,还得http
在这里插入图片描述

把链接删掉,测试一下是不是检测http头的
在这里插入图片描述

还真是,那么把js语句添加进来。javascript:alert(‘http://’)
这样也可以:javascript:alert()//http://
//注释了后面的http://使语句独立。

第十关:
查看源代码:
在这里插入图片描述

发现了三个参数, 标签用于搜集用户信息。
根据不同的 type 属性值,输入字段拥有很多种形式。输入字段可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等等。现在三个参数都没有赋值,我们可以通过给他们赋值,赋值会在value中表示出来,那么就能在value中实现注入了。那么试试在url中注入:keyword=t_link=1&t_history=2&t_sort=3
发现t_sort可以被赋值。
在这里插入图片描述

那就试试t_sort= type=“text”>
在这里插入图片描述

把尖括号给屏蔽了,那么用转义实体试试
t_link=1&t_history=2&t_sort=3" <script>alert(1)&lt/script>type=“text”&gt
在这里插入图片描述

也不行,可能是服务端有对转义实体的检测,那么用onclick吧
t_link=1&t_history=2&t_sort=3"οnclick=“alert(1)” type=“text”
用onclick一下就好了

第十一关:
我们从第十关来到第十一关,查看源代码(直接来十一关时看不到的)
在这里插入图片描述

我们发现在t_ref字段中,value的值是http referer的值,所以这关的考点是http头部的xss注入,那么在Referer值中注入xss,也会出现在value值中。
同样解释一下什么是HTTP Referer:
HTTP Referer是header的一部分,当浏览器向web服务器发送请求时,会带上Referer,以告诉服务器来源于哪个页面链接,也就是我从哪个页面知道知道你服务器的。
用bp抓个包,(直接抓包是没有的)添加Referer:"οnclick="alert(1) ,放包。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值