Xss-labs(1)第一关到第十一关

Xss-labs靶场训练

第一关:

查看页面源代码回显playload长度:

插入一段js代码,get传参,一个简单的插入

顺利来到第二关,二话不说先直接尝试插入,并没有成功:

查看页面源代码:

特殊字符被实体转义了

我们需要闭合掉双引号即可,构造payload,这一关是闭合绕过

来到第三关,随便输入一个闭合弹窗试试,符号也被实体化了:

查看php源码

PHP htmlspecialchars() 函数

我们可以利用其他方法进行xss注入,这里我们可以利用onfocus事件绕过

看一下w3cschoo的相关介绍

onfocus事件在元素获得焦点时触发,最常与 <input>、<select> 和 <a> 标签一起使用,以上面图片的html标签<input>为例,<input>标签是有输入框的,简单来说,onfocus事件就是当输入框被点击的时候,就会触发myFunction()函数,然后我们再配合javascript伪协议来执行javascript代码

所以我们可以利用这个事件来绕过<>号的过滤已达到执行js的目的,构造payload,直接在输入框处输入 ‘ οnfοcus=javascript:alert() ‘,回车后再次聚焦输入框就会出现弹窗了:

第四关:

查看源代码发现是双引号闭合事件

这里是双引号闭合,<input>标签,所以我们还能继续利用onfocus事件,构建payload

第五关:

看上去像双引号闭合,但应该不会三关都是onfocus事件,查看源码确实不是

查看php源码,将字母小写化、script和on都被替换掉了,还有htmlspecialchars() 函数把<>过滤了

尝试用超链接过滤试试,添加一个标签得闭合前面的标签,构建payload

"> <a href=javascript:alert()>xss</a> <"

点击xss就可以通关了

第6关:

还是使用上一关的playload查看页面的源码显示,同样是特殊字符被过滤掉和href被_替换。

查看php源码,果然很多字段被过滤了,看看大小写能不能绕过

“> <sCript>alert()</sCript> <”能绕过,alert中不能带参数(不知道为啥)

试了其他代码也是可以的

"> <a hRef=javascript:alert()>xss</a> <"

" oNfocus=javascript:alert() "

第7关:

查看源码,没有发现有什么问题

查看php源码,发现过滤了很多字段

我们可以利用双拼写来绕过,比如on,我们可以写成oonn,当中间on被删掉的时候,就变成了on,比如script,可以写成scscriptript,当script被删掉的时候,就变成了script

<a hhrefref=javasscriptcript:alert()>xss</a>

第八关:

点击查看友情链接

查看php源码过滤掉了src、data、onfocus、href、script、"(双引号)

网上查询了解到利用href的隐藏属性自动Unicode解码,插入一段js伪协议

javascript:alert()

说明不需要自己加href标签,直接插入javascript:alert()的Unicode解码在线Unicode编码解码

解码后:

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

在输入框输入解码后的Unicode点击友情链接

第九关,看样子应该和前一道题差不多,试试看

不成功,Unicode被

当false等于false的时候(就是传入的值没有http://)就会执行if,为了防止false===false,我们需要向传入的值里面添加http://并用注释符注释掉否则会执行不了无法弹窗,让函数strpos返回一个数字,构造payload

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;/* http:// */(对于这个用法我也不是很清楚,后续自己再去关注一下,或者那个大佬可以指点迷津)

第十关

先测试一下关键字

" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> &#106;

被实体化了,看一下php源码

还有其他隐藏的传参方法,这里是get传参t_sort,并过滤掉了<>号,不能闭合插入标签,但是我们还能用onfocus事件,因为这里输入框被隐藏了,需要添加type="text",构造payload

第11关

直接看源码

可以看到上一关的那个变量$t_sort已经被函数htmlspecialchars()洗礼了,$t_ref,它是接收了$_SERVER['HTTP_REFERER']这个请求头

看网上抓包添加referer字段,但是我试了出不来

后面我尝试在拦截包的地方发送就不repeater了

第二种方法

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值