XSS(练习一)

前言

经过上次对XSS的理解与对XSS理解的一个小练习,清楚了之后,开始着手进行XSS平台搞一波。
这是我练习的平台http://test.xss.tv/

第一关

Image

这里的payload明确看到为4,查看地址栏与之对应的传参为test.
但是页面上没有出现明确的注入的地方,也没有输入的地方,这时候我们可以使用Hackbar进行注入脚本,也可以在URL栏进行注入。
我们输入< script>alert(‘yes’)</ script>(由于编辑器问题我在<后面加了空格,使用时记得注意清除掉。以下都是这样。)

在地址栏输入后回车 就OK了
Image

第二关

Image
这是我们依旧使用第一关的代码进行一下测试。发现没有弹窗的出现,他们提示我没有找到相关的内容。之后我们进行源代码的查看。
Image
我们根据源代码发现需要先将value属性闭合,然后使用javascript脚本调出alert函数过关

//输入代码回车

“>< script>alert(‘yes’)</ script>
闭合之后绕过进行实现脚本的注入。
之后点击搜索或者回车都可以 可以得到以下的结果。
Image回车或者点击搜索后过关

第三关

这个页面与之前关卡的相似 这里我直接使用’” >进行测试,之后输入第二关用过的语句进行测试。
Image
“>< script>alert(‘12321321terad’)</ script>进行测试,并没还有成功,这是输入值,进行源代码的查看。
Image
我发现,我输入的字符被转义成了其他的字符,没有办法实现有效的注入,没有形成语句。我们输入的”<> 都被做了转义处理。
Image
这里进行了一下小小的总结

总结HTML 的所有特殊字符的实体编号和实体名称表
Image
这里确定以上字符无法在输入框中注入,所以不能采用第二关的方式调用javascript脚本

于是这里我使用了别的方法调用alert()函数实现闯关:
ooninput 能够获取到运行的脚本。
123’ οninput=’alert(123)
之后我们依旧使用’来闭合前面的语句。
输入后可以看到
Image

PS: 如果我们在没有看源代码的情况下如何去判断value属性使用的是单引号还是双引号?
在上面已经使用过一次。
判断value使用的是单引号还是双引号方法:

输入 ‘ “ > 三个字符测试闭合,查看文本框内的内容
Image
文本框无内容就是单引号,内容为 ‘ 即为双引号
这一关中使用的是单引号,所以value没有值,文本框内没有内容

如果我们输入如下的字符test’”> 就会得到test 因为value闭合为’
Image

第四关

进入第四关直接进行一个之前的语句来个测试

输入< script>alert(‘12321321terad’)</ script>测试:
Image

结果是没有找到相关的结果。这时候我发现框中返回结果跟我们输入的不大相同,让我来看看它的源代码。
Image
我们可以清楚的看到 我们符号中的<>被过滤掉了。

这也是过滤的问题 我继续使用了第三关的方法测试,输入语句:

“ oninput=”alert(‘’)
Image
OK成功弹窗进入下一关。

第五关

输入语句测试

“> < script>alert(‘ok’)</ script>
Image
观察源代码发现我输入的字符被替换了
Image
我们使用大小写不同的绕过方式,发现并没有什么卵用。

接着我们使用HTML中的oninput事件发现也是被替换掉了
Image
过滤了< script>和on就是说之前我用的事件触发就不能再用了。

所以我现在尝试嵌入一个连接,在连接的时候调用alert

“>< a href=”javascript:alert(‘ok’)”>sl</ a>//
可以伪造了一个链接在链接中包含
Image
这时候再点击sl
Image
OK下一关

第六关

进入我们先测试一下。
Image
这次使用的不再是’ 而是” 这里我们还是继续语句测试
“> < script>alert(‘ok’)</ script>
Image
这样 我看了看源码,
Image
发现script 变成了scr_ipt
script被过滤掉了,我又试试了HTML中的oninput事件
Image
同样没有成功查看源码
Image
oninput 变成了o_ninput
看来是跟前面一关的题目一样,这样我们就继续使用伪链接的方法进行绕过。
“>< a href=”javascript:alert(‘ok’)”>sl</ a>//
Image
!看来是个狼灭,这也过不去,看看源码
Image
href被替换成了hr_ef
我又将部分字母换成大写尝试:

“> < a hRef=javascript:alert(‘ok’)>sl< /a>//
这时候出现了链接 OK点击链接下一关
Image

第七关

进入第七关,之前用的测试语句走一波先。

“>< script>alert(‘12321321terad’)</ script>
Image
仔细看输入的内容与返回的内容前面的script没了。应该源码中有什么语句把它给过滤掉了,这时候我们看看源码。
Image
来使用一波HTML事件试试
“ οninput=”alert(‘ok’)”
Image这应该是又被过过滤掉了
这样的话 记得之前用过双写绕过

来试试”> < scrscriptipt>alert(“123123”)</ scrscriptipt>
Image
既然这样双写可以绕过的话,相同的应该” oonninput=”alert(‘ok’)”
OK下一关。

第八关

进入第八关,依旧进行尝试
Image
发现此路不通 同样实验HTML事件 也是不通,那就看一波源码,发现这个
Image
发现”,<,>被转义了而且ON中间也有过滤。这一下事情好像没那么简单。
然后再次看看上的源码,发现了一个链接 难道又是伪链接?
来实验一波发现依旧不行
Image同时script还是被过滤了。这样的话,需要用到script但是不能让他被过滤掉,好像只能用到其他的编码形式了,于是去找了找度娘 发现了script的编码形式:

HTML实体编码(HEX)
javascri&# x70;t:alert()

HTML实体编码(DEC)
javascri&# 112;t:alert()

PS:还是由于编辑器的问题 我在上面的编码中的”#”后面添加了空格,(看来我得换个编辑器了)。
但是要注意 后台这里过滤的是script 并没有java

于是输入进去
Image
ok开启下一关

第九关

进军 第九关
看到跟前面一关差不多的形式也是友情链接 那就直接来 把上一关的语句直接来用结果当然不会让你过。
Image
那我们来看看他的源码
Image
在href一栏中告诉我 我的链接不合法。连接不合法怎么办。肯定是你的URL不对 少了HTTP这个,他没有检测到,那我就让他检测到 同时不让他起作用不久OK了吗。

所以在这我给它注释掉javascri&# x70;t:alert(/sl/)//http://
这样不就OK了
Image这时候看下它的源码
Image
相比较下 第九关就是在第八关上的多添加了一个认证,需要检测到http

第十关

首先看了下没有发现输入框
Image
这样还是看看源码的比较好
Image
keyword过滤了用不了,没有输出点。有点懵。发现它源码中的input中 tupe是hidden 是个隐藏。不过还是不知道该从何处下手最好参考了下先知的wp。

因为也没过滤什么,最后的参考payload为:

keyword=test&t_sort=” type=”text” onclick=”alert()
Image

小总结

暂时先就练习到这里,改天继续更新做题情况。总之要学习的地方还很多,还有很多的未知领域,需要继续加油了!


  转载请注明: Greypotato XSS(练习一)

 上一篇
密码(练习一) 密码(练习一)
围在栅栏里的爱进入看到 根据题目我们得到由点”.”和“-”组成的密码,初步判断是摩斯密码,找个网站进行在线解密。 得到解密结果KIQLWTFCQGNSOO 一串没有意义的的字母串,根据题目给的提示“最近一直在好奇一个问题,QWE到底等不
2019-07-13 Greypotato
下一篇 
基于XSS的个人理解与基本练习 基于XSS的个人理解与基本练习
前端安全–XSS攻击XSS漏洞是最广泛、作用最关键的web安全漏洞之一。在绝大多数网络攻击中都是把XSS作为漏洞链中的第一环,通过XSS,黑客可以得到的最直接利益就是拿到用户浏览器的cookie,从而变相盗取用户的账号密码。 这些常用的基本
2019-07-09 Greypotato
  目录