XSS靶场通关

XSS(跨站脚本攻击)是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
XSS按照利用方式主要分为:反射型XSS、存储型XSS、DOM型XSS。反射型XSS是攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS即存储型XSS,非常危险,容易造成蠕虫,大量盗窃cookie。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。

leve1

反射型xss,将name后面的值test改为

 <script>alert('xss')</script>

level2

查看后端代码

得先将前面闭合 ,并且用//将后面的代码注释掉

左边的">去闭合原先的",右边的//去注释原先的">

"><script>alert('xss')</script>//

level3

输入test进行尝试,发现没有成功,观察后端代码

猜测服务器端在这两处都用htmlspecialchars()函数进行了处理。

通过<input>标签的一些特殊事件来执行js代码

构造代码:'onfocus=javascript:alert('zrtonnn') > //&submit=搜索

网页上的一个输入框,当使用鼠标点击该输入框时输入框被选中可以

输入内容的时候就是该输入框获得焦点的时候,此时输入框就会触发onfocus事件.因此

点击当前页面的输入框就可以完成弹框了。

level4

查看后端代码

和上一关一样的思路,用onfocus来执行,

" onclick ="javascript:alert(zrtonnn)"//

 level5

分析图片,还是get方式请求参数,所以还是反射型的xss

上弹窗代码:

<script>alert('xss')</script>

测试一下,发现不行

查看后端代码,发现script过滤了,onclick也过滤了

尝试构造a标签:

"></input><a href='javascript:alert(1)'>zrtonnn</a>//

level6

尝试恶意代码:<script>alert(‘xss’)</script>

发现失败,查看后端代码

可以看到在value属性值中也插入了_符号防止xss的发生

尝试利用大小写混写绕过

"><ScRipt>alert(1)</ScRipt>

 

level7

上恶意代码测试一下:

<script>alert('xss')</script>

查看后端代码

可以看到onfocus事件直接把on字符删除了,javascript中的script字符也被删除了。

接着尝试和上一关一样试试大小写绕过,发现没法成功,接下来试试双写绕过

"><scscriptript>alert(1)</scscriptript>

level8

查看后端源代码

<>被编码了

在href属性值中script字符被插入了_字符破坏语义

用来闭合引号的引号也被编码了,onfocus一类的事件也被破坏了,大小写绕过也不行

我从网上得知,可以尝试使用Unicode编码进行绕过尝试

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

level9

先进行检测

<>"'script onclick

发现双引号和尖括号都给过滤了

查看后端源代码

 语句显示在href中,但是javascript字符中插入了_

我们尝试使用编码绕过

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://www.baidu.com

level10

来到第十关,可以发现不再有搜索框,也不再有超链接可以给我们点了,连常规语句也不行。

查看源代码,在源码中有一个隐藏的表单。

其中含有t_link  t_history    t_sort这样三个隐藏的<input>标签

构造语句看看哪一个能被突破

?keyword=<script>alert('xss')</script>&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"

出现弹窗

页面响应来看,有一个<input>标签的状态可以被改变。这个标签就是名为t_sort<input>标签,之前都是隐藏状态,但是通过构造参数响应发现只有它里面的值被改变了,因此可以从该标签进行突破,尝试能不能注入恶意代码进行弹窗。

我们使用onclick来处理,输入后点击即可

&t_sort=" type='text' onclick='javascript:alert(1)'>//

level11

点击f12查看网页源代码

 

同第十关一样有隐藏的表单,不同的是多了一个名为t_ref<input>标签,尝试用上一关的方法看看能不能从这几个标签进行突破注入代码。

?keyword=good job!&t_link="type="text&t_history="type="text&t_sort="type="text&t_ref="type="text

查看页面源代码

t_sort仍然是接受参数值的,但是里面的双引号被编码了,这样浏览器只能正常显示字符但是却无法起到闭合的作用了。

使用bp抓包

发现数据包中并没有refer这个请求头

添加referer:111

可以看到我们添加的referer头的值出现在了t_ref标签的value属性值中了,接下来就是从这里突破注入恶意代码了。

referer:"type="text" onclick="alert('zrtonnn')

 

level12

 查看页面源代码

看到了t_ua这样一个标签,并且其中的value属性的值发现了一串类似user-agent的东西 ,我们尝试使用bp抓包后进行修改,将ua后面插入恶意代码

"type="text" onclick="alert('zrtonnn')

触发了onclick恶意代码

level13

 查看一下页面源代码看看

可以看出cookie中的值被插入进了value当中,基于此,我们可以修改cookie插入恶意代码达到我们想要的效果

将cookie里的信息修改为: 

user=" type='text' onclick='javascript:alert(1)'>//

level14

十四关有点毛病,无法通关

level15

查看源代码看看

参数值被插入到了<center>标签中,测试一下

xss/level16.php?keyword=“ ‘ <> script onerror  onclick

通过查看源代码

 

发现过滤了script和" '还有空格

尝试加个a标签,空格用回车编码代替,点击图片过关

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值