
一、WEB
1、[彩蛋题-1-1] Relax games
题目链接:http://81.70.101.23:2333/
4096(2048)小游戏,需要我们玩到100000分

直接到js文件里搜索100000找对应函数就可以了

后面有“=”,大概率是base64,扔进去解码即可得到答案

2、[彩蛋题-1-2] 扫雷
题目链接:http://124.222.182.202:1919(已失效)

认真玩你就输了

看网页script部分,有个console.log

扔进控制台,得到flag

3、[彩蛋题-2] 什么是Vim
题目链接:http://124.222.182.202:810(已失效)
什么是vim,vim写网页会留下来什么吗?

非正常关闭vi/vim编辑器时会生成一个.swp文件
因为这个界面用Vim写的,所以应该有index.php.swp文件

也不用进Vim恢复文件了,直接打开看就能找到flag

3、手速大赛
在10秒内提交114次计算结果即可

import requests,re,time
ip = '11.4.5.14'#服务器地址
s = requests.Session()#保持session
page = s.get("http://{}/?{}".format(ip,'Hello~MonianHelloHere.Date:2022/08/01'))#跟服务器打个招呼
def WTH(page):
calc = re.compile(r'\d+').findall(page.text[100:], 0, 30)#切割网页
print('#{}\n{} + {}={} \n\n {}'.format(i,int(calc[0]),int(calc[1]),str(int(calc[0]) + int(calc[1])),page.text))#Debug
return(str(int(calc[0]) + int(calc[1])))
ltime = time.time()
for i in range(115):
page=s.get("http://{}/?res={}".format(ip,WTH(page)))
print('运行结束,总用时{0:,.2f}秒'.format(float(time.time()-ltime)))
实际运行大概0.6秒左右
切割网页,得到数字算完再交回去
因为到 题目: 的时候正好100个字符,前面的字符直接用[100:]切一下,之后正则匹配下两个数字就可以了

服务器 : speedTest_base_源码.rar
4、Steam社区
题目链接:Steam 社区
一个steam登录页面
当然,你要是真的用你账号登,号就無了

点击右上方的登录可以进入后台

在注释中提示要使用admin admin1 admin12 admin123 admin1234....进行尝试

admin:拜托,骗子没那么傻会用admin
admin1:和admin没关系
admin12:都说了,和admin没关系
admin123:别想了,和admin没啥大关系,但也有关系
admin1234:别想了,和admin没啥大关系,但现在关系更接近了
admin12345:别想了,和admin没啥大关系,但现在关系已经巨接近了
admin123456:别想了,和admin没啥大关系,但基本上一致了and visit a2.html
admin1234567:哈哈哈,不逗你了hacker,用户名是admin1233211234567,是不是关系特别近
得知用户名是admin1233211234567,以及第二个提示:http://81.70.101.23:1234/a2.html
在第二个提示中,有很多$_password = str_ireplace
,对传入的password进行过滤
使用admin1233211234567登录后,提示password=systemflagecho。Correct username but incorrect password,please try again.
由于system flag echo均被过滤,直接使用systemflagecho
肯定无法登录
这里使用双写关键字绕过,密码为sysystemstemflflagagecechoho
得到flag

二、PWN
1、[彩蛋题-1] civilization
文明游戏

先认真玩游戏,各种wiki无果。扔进IDA看一眼,根据源码简述下游戏流程
比较长也比较墨迹,可以直接跳过,看不好好玩游戏的部分
(0)定义初始数据:

这里具体值的含义一会再解释
(1)main()主函数:
游戏共10回合,10回合后没能实现上天目标游戏失败(How did this happen?!),反之胜利

(2)turn()函数:
根据输入内容选择要进行的操作

每回合有四个选择:上天 feitian()
、砍树 cut_tree()
、收粮 harvest()
、商贸 trade()
(2.1)feitian()函数:

根据游戏要求,需要足够的 生产力(dword_4068)和金钱(laoqin)才可以建立太空中心获得游戏胜利
也就是 生产力(dword_4068)>=需要产力(dword_4098),金钱(laoqin)>=需要金钱(dword_409C)
(2.2)trade()函数:

dword_4080用来储存贸易路线的值,最多五条
创建贸易路线后,生产力+100,粮食+100,dword_4064为每回合自增金钱,+50
(2.3)cut_tree()函数:
一看就知道,砍树

作用也很明显,先判断有没有树,树一共可以砍五次(dword_4078的初始值为5),砍一次少一次。砍一次树能得到200生产力(基础值)
(2.4)harvest()函数:

和砍树类似,不赘述了。dword_406C是粮食
(3)run()函数:

好麻烦,大概就是看粮食够不够吃,一件事有多少人干
(4)auto_work()函数
啊哈哈,重头戏来咯
乍一看没什么,打印下当前持有的资源顺便加点钱。但是仔细看下

在2.1说飞天函数那里,提到过胜利条件是
生产力(dword_4068)>=需要产力(dword_4098)
金钱(laoqin)>=需要金钱(dword_409C)
而dword_4098和dword_409C这两位每回合还要自己加点料
而这二位的初始值分别是1100锤和2200钱
当时玩的时候没想到他俩玩阴的,玩了好长时间,结果钱和锤都够了也没能拿到flag
按照每回合自增200锤和400钱来算,到第十回合需要3100锤和6200钱

到这里就可以考虑不好好玩游戏了
游戏内我们可操作的也就是输入的名字和那几个数字
在(2)turn()函数里,有一个choice()

这里输入的值如果不是数字,或者值不是1234都会抛出 How self-indulgent the king is!
没什么操作空间
在(3)run()函数里,有一个read_num()

很明显,负数都比正数小,也能通过if()。所以输入人数的时候可以直接上负号

2、逆向彩蛋题
一个去年的题

解压缩,exe外带个dll


点一下

刚开始打算上连点器,后来发现真有人点出来了

先查壳,虽然不知道为什么DiE没查出来壳,用PEiD却能查出来yoda的壳

妹说就是0壳,上OD

jnb short 0040186F
JUMP NO BIT 到 就这就这就这
把地址0040186F
改成00401841
,顺便把后面全部nop

运行,flagGET

三、MISC
1、[彩蛋题-1] 比♂利
最近MISC做的题也不少了,群公告也有提示
记得要深♂入查看图片隐♂藏的地方哦
进010 Editor看文件尾

盲猜base64,解码

Once more
核心价值观编码(Core Values Encoder)
工具地址:Core Values Decoder

Comments | 1 条评论
那么,就到此为止吧,再写,就不礼貌了
反正,应该也没新生能搜到