首页
社区
课程
招聘
[原创]【2019看雪CTF】Q2赛季 第五题 丛林的秘密 WP
发表于: 2019-7-2 00:13 5993

[原创]【2019看雪CTF】Q2赛季 第五题 丛林的秘密 WP

2019-7-2 00:13
5993

安卓题,主要java层代码如下:

有native代码,java层调用了其两个函数sayHellocheck_key
sayHello函数返回字串'http://127.0.0.1:8000' ,而check_key似乎不像校验函数:

再看java层中的loadUrlsetJavaScriptEnabled,似乎有猫腻。再细看native代码。
JNI_OnLoad函数中调用了地址为B30的函数,解码了大量数据,并建立了socket,监听8000端口,模拟web服务,有客户端连接后将解码的数据发送到客户端。

数据解码后为html内容,内嵌WebAssembly,html部分内容为(去除了WebAssembly部分):

原来这才是真正的校验交互接口,校验逻辑自然在WebAssembly里。
将WebAssembly写入到文件,转成c再编译,最后反编,得到check_flag的伪代码如下:

先调用了8个函数对输入的32字节进行异或处理,然后调用xxx函数进行最终校验,xxx函数中通过32个32元一次代数方程进行校验,直接解方程得到

即:S0m3time_l1tt1e_c0de_1s_us3ful33
32字节异或的常量值为:

直接异或得到原始输入:


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//