首页
社区
课程
招聘
[原创]Bugku-WEB-WEB4
发表于: 2018-11-16 06:58 3887

[原创]Bugku-WEB-WEB4

2018-11-16 06:58
3887


看看源代码就看看源代码,截取重要的一部分代码,这里都进行url编码了,进行解码
var p1 = '%66%75%6e%63%74%69%6f%6e%20%63%68%65%63%6b%53%75%62%6d%69%74%28%29%7b%76%61%72%20%61%3d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%70%61%73%73%77%6f%72%64%22%29%3b%69%66%28%22%75%6e%64%65%66%69%6e%65%64%22%21%3d%74%79%70%65%6f%66%20%61%29%7b%69%66%28%22%36%37%64%37%30%39%62%32%62';
var p2 = '%61%61%36%34%38%63%66%36%65%38%37%61%37%31%31%34%66%31%22%3d%3d%61%2e%76%61%6c%75%65%29%72%65%74%75%72%6e%21%30%3b%61%6c%65%72%74%28%22%45%72%72%6f%72%22%29%3b%61%2e%66%6f%63%75%73%28%29%3b%72%65%74%75%72%6e%21%31%7d%7d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%6c%65%76%65%6c%51%75%65%73%74%22%29%2e%6f%6e%73%75%62%6d%69%74%3d%63%68%65%63%6b%53%75%62%6d%69%74%3b';
eval(unescape(p1) + unescape('%35%34%61%61%32' + p2));

下面是解码后的代码
var p1 = 'function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("67d709b2b';
var p2 = 'aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").onsubmit=checkSubmit;';
eval(unescape(p1) + unescape('54aa2' + p2));

这里应该将var p1和var p2连接在一起才能获得代码原来的样子,下面是连接后的样子

function checkSubmit()
{
	var a=document.getElementById("password");
	if("undefined"!=typeof a)
		{if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)return!0;
		alert("Error");
		a.focus();
		return!1
		}
}
	document.getElementById("levelQuest").onsubmit=checkSubmit;

这样子看起来舒服多了- -
因为没有学习过js代码,所以这里查找资料耗时比较长

  • getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用。


  • typeof运算符后跟操作数:

    typeof operand
    or
    typeof (operand)
    

    operand 是一个表达式,表示对象或原始值,其类型将被返回


  • 下面是可能返回的类型  

  类型   结果
  Undefined   "undefined"
  Null   "object"(见下文)
  Boolean   "boolean"
  Number   "number"
  String   "string"
  Symbol (ECMAScript 6 新增)   "symbol"
  宿主对象(由JS环境提供)   Implementation-dependent
  函数对象([[Call]] 在ECMA-262条款中实现了)   "function"
  任何其他对象   "object"
  • 来自:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/typeof#%E5%8F%82%E6%95%B0


function checkSubmit()
{
	var a=document.getElementById("password");
        //在这里引用的是id为password对象中的元素并赋值给a
	if("undefined"!=typeof a)
        //判断a的类型是否undefined
		{if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)return!0;
		alert("Error");
		a.focus();
                //获得焦点时,改变背景颜色
		return!1
		}
}
	document.getElementById("levelQuest").onsubmit=checkSubmit;
        //获取id为levelQuest的对象元素,点击submit时执行checkSubmit函数


分析完代码后发现- -,这么简单,了解到表单的ID值为 levelQuest,输入框的ID值为password后,通过审查元素将输入框的ID值修改为password

在输入框中输入67d709b2b54aa2aa648cf6e87a7114f1即可获得flag



本来早该休息了。发现第一篇帖子给了一篇优秀后,精神抖擞,多谢大佬的支持,我会好好努力的,愿可以更进一步
                                                                                                                                      --一只小白









[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 1392
活跃值: (5182)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
鼓励鼓励
2018-11-16 11:40
0
雪    币: 26205
活跃值: (63302)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
3
加油!文章不错的!
2018-11-16 13:32
0
雪    币: 1971
活跃值: (921)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
IamHuskar 鼓励鼓励
大佬见笑啦0v0
2018-11-18 00:56
0
雪    币: 1971
活跃值: (921)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
Editor 加油!文章不错的!
蟹蟹支持
2018-11-18 00:56
0
游客
登录 | 注册 方可回帖
返回
//