【2024】春节解题领红包之二、三、四、Web(部分),其余记录思路
本帖最后由 梦旅意中人 于 2024-2-27 22:55 编辑## 前言
> #### 本帖内容较为简略,对某些内容未作详述,详细软件使用和分析思路可以参考我之前帖子内容,如有疑问欢迎评论区一同交流探讨。
## 二、widows初级
> #### 使用OD加载程序,此次跳过了检测是否有壳环节,可直接根据提示搜索对应文字信息Please input password(可选),即程序无壳。通过F9后可观察到cmp指令,经验判断可知flag长度为0x24 = 36,构造字符串,
> #### 单步F8后即可在右侧寄存器窗口看到flag信息。
## 三、Android初级
> #### 方法一:玩抓小猫游戏,属实汗流浃背了,~~解出flag后的某一天无意中才通关。~~
>
> #### 方法二:使用MT/NP管理器可知无壳,可见assets文件夹下含有html、`phasher.js`,phasher.js为一个游戏引擎,可以通过修改cat.js如下的代码,即将调用Activity启用的方法,添加到switch每个(局部亦可,可自行选择)case语句后即可,无论游戏成败均会自动播放视频,获取到flag。
>
>
> #### 方法三:assets文件除了游戏外,还包含MP4格式文件,让我看看,发生神魔事了,缘赖式——原神,启动!(下次可以考虑换个喜爱福的,视频开始放了几秒钟关了,解完题才认真看了一遍),习惯性使用16进制编辑器打开该文件,即可在文件末尾处看到flag,果然做事要有始有终,不能像看视频只看前面就不看了。
>
> #### 源码分析:在MP4视频文件末尾追加内容,并未影响文件正常播放,通过游戏胜利调用安卓接口启动另一个Activity,在该Activity中含有对文件末尾内容的读取,并将返回结果过使用TextView显示,因此正常播放视频并不会显示出Flag。(RandomAccessFile,随机访问,支持从文件指定位置读取和写入数据,功能非常强大,但在JDK1.5后已由NIO的内存映射代替大部分功能,可用作断点续传。)
## 四、Android初级
> #### 抽奖游戏,肥肠滴好,本人于当日10点17分运气爆棚,一发入魂,截图为证。
>
>
> #### 这里的honest肥肠滴有意思哈,诚实的人才能看到正确的答案。而每次抽奖积攒时间会越来越长,因此缩短时间间隔提升爆率是个不错的选择,但如果尝试改动文件,签名会发生变化,根据源码分析可知,程序会获取签名并且将签名数据取出与内置的数组进行异或后获得答案,因此最终结果会出现乱码。
>
> #### 那么可以考虑直接启动FlagActivity,adb中使用如下命令,即可获得最终Flag。当然除此之外可以通过`Lucky Patcher`解决上一步中改动后签名问题,以非签名方式安装即可,或根据源码自行编写计算Flag代码亦可。
> ```shell
> adb shell am start -n "com.kbtx.redpack_simple/.FlagActivity"
> ```
## Web部分
### flag1
> #### 视频 00:02 水滴声背景图
>
> #### flag1{52pj2024}
### flag2
> #### 登录成功后的响应头返回
>
> #### flag2{xHOpRP}
>
### flag3
> #### 视频开头(动态模糊水印) flag3{GRsgk2}
### 二维码
> #### 截取视频中被切割的图片,拼接叠加后产生二维码扫描后得到网址
>
> #### https://2024challenge.52pojie.cn/index.html
### flag4
> #### 修改body页面backgroud:black 出现flag4{YvJZNS}
>
### flag5
> #### 修改后发现上方每一行均隐藏一个字母或数字,仔细观察后可见 flag5{P3prqF},也可与flag9一同出现。
### flag6
> #### 引入MD5加密,具有迷惑效果,点击按钮后会通过取余方式实现进度条并打印数据,严重影响浏览器状态,直接根据源码对
>
> #### `1c450bbafad15ad87c32831fa1a616fc`使用md5解密工具尝试解密,获得flag6{20240217}
### flag7
> #### Github提交记录 flag7{Dj19NQ}
>
### flag8
> #### 这个似乎只能"钞能力",努力玩2048,分数够了flag带回家,flag8{OaOjIK}。
### flag9
> #### 字符画?某乎F12会看到类似效果,些许公司会在控制台附上招聘信息,调整浏览器大小即可看到flag9的值,同时flag5同样会出现在一侧,他真的,我哭死。
>
### flag10
> #### 使用Stegsolve工具尝试解析,发现图片可以通过反色获取flag10{6BxMkW}
### flagA
> #### flagA为动态请求,点击登录后会在该请求的响应体中设置,有过期时间。通过观察可知uid接口可以将加密参数解密并返回,通过修改浏览器cookie的uid属性值为flagA对应内容,可以获取动态flagA。
> #### flagA{2eca08fd}
## 其它
### Android中级&高级
> #### 翻阅源码可知动态加载dex与so层校验,高级题中采用了反调试+混淆流遂放弃。
### Windows高级
> #### 64位,upx魔改壳,需要使用x64dbg调试手动脱壳,修补后的程序必须关闭ASLR后才能正常打开,客户端与service与通信,校验完成后返回结果,可通过两个调试器同时调试,可知flag长度应为35位,但太菜没能跟出结果。
> #### 太累了,简单这样写一下,不足之处请多包涵。
正己 发表于 2024-2-25 23:47
师傅,原来你也玩?
哈哈哈哈哈哈哈,我一直都玩呀(难道你也玩喜爱福吗?),去年的题还是看大佬你的教程做的呀,有一说一,表情包做的有趣,课也讲的好,真滴好啊 wwd2018 发表于 2024-2-26 10:53
我能学得会吗?大佬
可以的啊,这次的解析写的简略一些,你有空可以看看我以前的帖子,那里详细些,也能给你一些思路的。 太厉害了吧!{:1_893:} yechao007 发表于 2024-2-25 23:01
太厉害了吧!
过奖了哈,其实我也是小白哈哈哈,跟着教程你也可以解出来的。 师傅,原来你也玩?{:301_997:} 厉害, 学习了 新年快乐。。。。 厉害,跟着大佬学习 学习了,感觉好复杂,谢谢 学习一下 厉害,跟着大佬学习