simple js
simple js
题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )

打开题目后,有一个Enter password框,要求输入密码,随便输入“123”

输入“123”结果为

开发者工具F12查看页面源代码

将JS代码复制出来进行分析
function dechiffre(pass_enc){
var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
var tab = pass_enc.split(',');
var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
k = j + (l) + (n=0);
n = tab2.length;
for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
if(i == 5)break;}
for(i = (o=0); i < (k = j = n); i++ ){
o = tab[i-l];
if(i > 5 && i < k-1)
p += String.fromCharCode((o = tab2[i]));
}
p += String.fromCharCode(tab2[17]);
pass = p;return pass;
}
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
h = window.prompt('Enter password');
alert( dechiffre(h) );
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
看到\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"想到把\x转换为%,将字符串转换为URL编码,%35%35%2c%35%36%2c%35%34%2c%37%39%2c%31%31%35%2c%36%39%2c%31%31%34%2c%31%31%36%2c%31%30%37%2c%34%39%2c%35%30
解码得:55,56,54,79,115,69,114,116,107,49,50

将这串数字进行ASCII码转换得:786OsErtk12
根据提示flag格式为Cyberpeace{xxxxxxxxx} ,提交Cyberpeace{786OsErtk12}得到正确答案。
simple js的更多相关文章
- 攻防世界 simple——js
simple_js [原理] javascript的代码审计 [目地] 掌握简单的javascript函数 [环境] windows [工具] firefox [步骤] 1.打开页面,查看源代码,可以 ...
- XCTF simple js
思路分析: 进入靶场, 随便输入,肯定是错误的,f12看下源码,结合题目说js,把js代码单独拿出来看看. function dechiffre(pass_enc){ var pass = " ...
- 前端常用的几个js判断(二)
10.鼠标悬停(hover)切换 class 属性假如当用户鼠标悬停在一个可点击的元素上时,你希望改变其效果,下面这段代码可以在其悬停在元素上时添加 class 属性,当用户鼠标离开时,则自动取消该 ...
- 浅谈JS中的继承
前言 JS 是没有继承的,不过可以曲线救国,利用构造函数.原型等方法实现继承的功能. var o=new Object(); 其实用构造函数实例化一个对象,就是继承,这里可以使用Object中的所有属 ...
- KoaHub平台基于Node.js开发的Koa的简单包装到请求库的类似接口
co-request co-request promisify wrapper for request co-request Simple wrapper to the request library ...
- monyer教你玩电脑——CSS、HTML、JS、XML的关系
首先Monyer还是有必要提一句:这是一篇低中等难度的文章.如果你是高手或被认为是高手,那么请pass掉这篇文章:如果你是新手,甚至不知道什么是css(譬如百度模版)等,那么请pass掉这篇文章.谢谢 ...
- Jquery使用小技巧
1. 禁止右键使用 view plaincopy to clipboardprint? 1. $(document).ready(function(){ 2. $(do ...
- 每个程序员都会的 35 个 jQuery 小技巧
1. 禁止右键点击 $(document).ready(function(){ $(document).bind("contextmenu",function(e){ return ...
- 每个程序员都会的35个jQuery小技巧!
1. 禁止右键点击$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return ...
随机推荐
- Zotero群组新建后无法显示
我们新建Zotero的群组后无法显示. 此时需要点击文献库,就刷新了. 修改Zotero的群组后无法显示修改后的名称 点击同步即可同步内容.
- 使用EdgyGeo Cesium工具查询下载数据集
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ EdgyGeo, Inc. 带来了一件非常棒的工作支撑架构.工程 ...
- 搭建服务器之文件共享cifs,nfs,samba
cifs: 微软系统中用于网上邻居共享的一个机制,在linux下也可以通过命令mount -t cifs .....来挂载共享的文件目录等. nfs: linux之间的共享文件方式,基于rpc ser ...
- vue学习5-js表达式
三目运算符 <!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <m ...
- Linux下Makefile的编写及四个特殊符号的意义@、$@、$^、$
转自:https://blog.csdn.net/runfarther/article/details/50036115# 我们先看三段C++程序: 一.line1的源码 line1.h #ifnde ...
- gin源码解读1-net/http的大概流程
gin框架预览 router.Run()的源码: func (engine *Engine) Run(addr ...string) (err error) { defer func() { debu ...
- Go 面向对象之结构体
#### Go 面向对象之结构体最近有四天没更新公众号,有一些事情耽误了,生活就是这样,总会一些事情让人措不及防; ***山浓水浅,坐看流年***1. Go 也支持面向对象编程(OOP) 但是它和传统 ...
- TCP Wrappers
TCP Wrappers 是 RHEL 7 系统中默认启用的一款流量监控程序,它能够根据来访主机的地址与本机的目标服务程序作出允许或拒绝的操作.换句话说,Linux 系统中其实有两个层面的防火墙,第一 ...
- ES6之async与await
· async - await 是 Promise 和 Generator 的语法糖,目的只是为了让我们书写代码时更加流畅,增强代码的可读性. · async - await 是建立在Promise机 ...
- docker简单介绍。
docker是啥? 一.概念? // 和运维有关的工具,和开发没有很大的关系.只需要去调试项目,将项目运行更迅速. 二.作用? 1.只需要关心项目的编写和调试,不需要关心具体的项目需要运行在哪里,并且 ...