Hackergame 2020
签到——FLAG 提取器
首先打开环境的界面如下
首先随便试了一下
并且无法靠进度条移动到1的位置
那这就F12冲
发现它进度条这里有最小值,那么就直接将最小值改为1,然后就能直接提取flag了
2048
打开题目环境,就是一个2048的游戏
F12发现中间注释部分有提示
所以直接访问http://202.38.93.111:10005/static/js/html_actuator.js
可以查看JS代码,并且可以看到有这一样段代码
其中不理解的就是后面的
('b'+'a'+ +'a'+'a').toLowerCase();
百度了解之后这一串代码的结果就是banana
所以直接访问http://202.38.93.111:10005/getflxg?my_favorite_fruit=banana
得到flag
一闪而过的 Flag
这题会直接下载一个可执行文件的附件,点开之后一下就消失了
所以打开命令提示符,执行文件就能得到flag了
从零开始的记账工具人
这个题目会下载一个excel文件,然后第一列的都是大写数字
这个可以通过脚本将大写数字转换成阿拉伯数字,脚本如下
using System;
using System.IO;
namespace ConsoleApp1
{
class Program
{
static string ConverToDigit(string args)
{
//别字列表
string[] WrongStr = { "○", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "千", "百", "正" };
//标准数字
string[] Standard = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾", "仟", "佰", "整" };
//中文货币标准
string[] RMB = { "兆", "仟", "佰", "拾", "亿", "仟", "佰", "拾", "万", "仟", "佰", "拾", "元", "角", "分" };
string[] Num = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
//统一大写标准
for (int i = 0; i < WrongStr.Length; i++)
{
args = args.Replace(WrongStr[i], Standard[i]);
}
//数字转换为阿拉伯数字
for (int i = 0; i < Num.Length; i++)
{
args = args.Replace(Standard[i], Num[i]);
}
//将格式统一为:"#亿#仟#佰#拾#万#仟#佰#拾#元#角#分"
args = args.Replace("0", ""); //去掉0
args = args.Replace("整", ""); //去掉整
if (args.IndexOf("元") < 0)
{
args = "0元" + args;
} //只有角分的情况要加上元
int Idx = RMB.Length;
string tmp = "";
string str = "";
for (int i = args.Length - 1; i > 0; i--)
{
tmp = args.Substring(i, 1);
if (!Char.IsNumber(tmp, 0)) //不是数字
{
while (true)
{
Idx -= 1;
if (tmp == RMB[Idx])
{
string t = args.Substring(i - 1, 1);
str = (Char.IsNumber(t, 0) ? t : "0") + tmp + str;
break;
}
else
{
str = "0" + RMB[Idx] + str;
}
}
}
}
//替换掉全部中文
str = str.Replace("元", ".");
if (args[0].Equals('拾'))
{
str = "1" + str;
}
for (int i = 0; i < RMB.Length; i++)
{
str = str.Replace(RMB[i], "");
}
return str.ToString();
}
static void Main(string[] args)
{
string path = "C:\\Users\\Administrator\\Desktop\\a.txt";
StreamReader rd = File.OpenText(path);
string line;
while ((line = rd.ReadLine()) != null)
{
Console.WriteLine(ConverToDigit(line));
}
// Console.WriteLine(ConverToDigit("拾元捌角贰分"));
}
}
}
将大写数字转换成数字之后就直接计算总金额就行了