xss漏洞靶场通关

第一关

先分析什么地方可以提交我们的j恶意代码,这里没有输入框,大概率是get方式提交请求,那么提交的参数就会在url当中直接显示出来,分析url中的参数,并检查页面元素那么字段的数值直接输出在了源码当中,尝试进行基础的js注入,直接成功

第二关

还是先尝试第一关的代码能不能用,

发现输入的代码被放到了value字段中,被当作一个字符串赋值给了value,所以导致代码无法执行。可以尝试多输入引号,将value闭合,使得js代码独立出来。

"><script>alert(1)</script>  不仅要闭合value的引号,还要闭合input标签的尖括号。

3.还是尝试上一关的代码能不能使用,并分析响应的代码

发现尖括号被转为html编码的,那就尝试不带尖括号的代码,尝试事件驱动。

' οnclick='alert(1)  事件是可以直接嵌套在某些html标签的,属于内联型js。

第二个引号用来闭合value的双引号中的右引号。如果不闭合这个value的右引号是不行的,因为它并不是普通的引号字符,是用来标志value结束的,所以必须要闭合。

4.尝试使用第三关的代码,但是发现响应代码中的value是用双引号闭合的,所以把之前的代码修改成双引号尝试,发现成功

5.尝试上一关的代码,发现onclick事件的完整型被破坏了

尝试别的事件和代码,发现script标签、onfocus也被过滤了,尝试使用js伪协议,而不使用script标签。

尝试构造别的标签,尝试成功,注意href的值必须被双引号括起来

6.尝试之前的代码,发现herf也被转义,而且<img> 标签的 src 属性和 onerror 属性也会被插入下划线,尝试大小写,因为标签是不区分大小写的,但是服务器可能只过滤了一种。

7.尝试发现script标签被转义为了尖括号,那就尝试没有script标签的和双写script标签,因为他可能匹配的语法可能存在缺陷,通过双写尝试绕过。

8.尝试双写绕过,不成功,和上一关不同的点是,上一关是扫描到一个script标签后会删除再返回给客户端,但是这一关是往里添加字符,从而破坏标签的完成性。

尝试发现:用来闭合引号的引号也被编码。
onfocus 一类的事件也被破坏
尝试大小写绕过,也失败
我们可以将要提交的 js 代码转成html实体编码,浏览器是可以解析html实体编码的

把这个poc :javascript:alert(1)转换为html实体编码尝试登录。

9.尝试之前的代码,发现尽管用了html实体编码,服务器会对我的输入再一次编码,从而转义。而且你会发现不管你输入的是什么,herf里面始终都是那个字符串,所以我们猜测服务器可能设置了一些机制,如果我输入的值不满足url的规则,那么herf就始终为那个字符串。提交的参数值插入到了标签的 value 属性值中。
但是在标签的 href 属性中却并没有出现该参数值,
而是显示的 "您的链接不合法?有没有!"这样的字符串。
有可能是将我们的代码进行了过滤
只有包含正常的 url 地址才能添加到 href 属性值中构造一个有正常 url 地址的恶意代码:

发现此时herf的值才改变,但是对script标签有过滤,尝试把它转换为html实体编码,

java&#115;&#99;&#114;&#105;&#112;&#116;:alert('xsshttp://')
弹框的信息里面包含 http://就可以了。但是这里可以利用浏览器直接修改herf的值为我们的poc,也可以。

10.没有输入框,只能通过url传参数

发现输入表单设置为了隐藏,所以用户看不见。上难度了,别急。

根据源码,可以知道他有三个要接收的参数。

发现只有tsort接收了我们的参数。所以从他入手,直接在浏览器中修改,并添加事件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值