攻防世界 crypto 高手进阶区之flag_in_your_hand1

51 篇文章 8 订阅

攻防世界 crypto 高手进阶区之flag_in_your_hand1

继续开启全栈梦想之逆向之旅~
这题是攻防世界crypto 高手进阶区之flag_in_your_hand1
在这里插入图片描述

下载附件,解压,一个js一个html,两边出击,浏览器看html页面,记事本看js和html的逻辑和它们之间的关系:
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
.
.
由于我曾经是web手,所以这些web类型的代码还是看得懂的,加上现在又在学逆向,就更好理解了。(笑~)
.
.
html调用了checkToken函数,但是js中checkToken函数代码是这样的:

function checkToken(s) {
    return s === "FAKE-TOKEN";
}

这里说是假TOKEN,输入一下,真的是假的:
在这里插入图片描述
.
.
但是这个函数的逻辑没有问题, s === “FAKE-TOKEN”;如果输入FAKE-TOKEN的话的确是true才对。(这里犯下第一个错误,我竟然怀疑自己的判断!!!以为是有什么我不懂的语法在里面或隐藏调用!)
.
.
那么根据我在做逆向的时候积累的经验:
在这里插入图片描述
说明中间到showflag之前还有其它操作改动了ic:
在这里插入图片描述
.
.
就是这个bm函数了,我在js代码那里跟踪啊跟踪,发现它是好多个函数的嵌套,没办法了,查了资料说看跟踪ic,真是一语惊醒梦中人!ic是判断条件,归根结底还是判断ic,找ic即可:
在这里插入图片描述
.
.
找到ic了,这个ic也的确在bm函数嵌套内,由于在学逆向,所以直接写逆向脚本即可:

key1=[118, 104, 102, 120, 117, 108, 119, 124, 48,123,101,120]
token=""
for i in key1:
	token+=chr(i-3)
print(token)

.
.
结果:
在这里插入图片描述

在这里插入图片描述
.
.
最后回顾一下,为什么下面这个每次都有且每次都不一样呢,观察js代码可以发现每个js函数的接受参数s就是我们传入token,而fg生成函数bm嵌套了很多函数,所以直接逆向bm函数生成flag不现实,而参数token作为s传入后就会加密回显,所以输入错误的token也会显示出不同的加密串:
在这里插入图片描述
.
.
.
总结:

1:

s === “FAKE-TOKEN”;如果输入FAKE-TOKEN的话的确是true才对。(这里犯下第一个错误,我竟然怀疑自己的判断!!!以为是有什么我不懂的语法在里面或隐藏调用!)

2:
根据我在做逆向的时候积累的经验:
在这里插入图片描述

解毕!敬礼!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐一 · 林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值