吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7670|回复: 69
收起左侧

[CTF] 学破解第122天,《攻防世界crypto练习区flag_in_your_hand》学习

  [复制链接]
小菜鸟一枚 发表于 2020-7-24 21:06

学破解第122天,《攻防世界crypto练习区flag_in_your_hand》学习

前言:
  从小学到大专(计算机网络技术专业),玩过去的,所以学习成绩惨不忍睹,什么证书也没考,直到找不到工作才后悔,不知道怎么办才好。

  2017年12月16日,通过19元注册码注册论坛账号,开始做伸手党,潜水一年多,上来就是找软件。(拿论坛高大上的软件出去装X)

  2018年8月某一天,报名了华中科技大学网络教育本科(计算机科学与技术专业)2018级秋季。(开始提升学历)

  2019年6月17日,不愿再做小菜鸟一枚,开始零基础学习破解。(感谢小糊涂虫大哥在我刚开始学习脱壳时,录制视频解答我的问题)

  2020年7月7日,感谢H大对我的鼓励,拥有了第一篇获得优秀的文章。(接下来希望学习逆向,逆天改命)

  坛友们,年轻就是资本,和我一起逆天改命吧,我的学习过程全部记录及学习资源:https://www.52pojie.cn/thread-1208234-1-1.html
立帖为证!--------记录学习的点点滴滴

0x1下载文件

  1.发现是一个js文件和一个html文件

  2.用浏览器打开运行html文件,出现如下界面
1.png

  3.通过观察,我知道要输入flag ,点击按钮验证flag的正确性
2.png

0x2分析按钮事件

  1.看一下html文件的源码

    var ic = false;
    var fg = "";

    function getFlag() {
        var token = document.getElementById("secToken").value;
        ic = checkToken(token);
        fg = bm(token);
        showFlag()
    }

    function showFlag() {
        var t = document.getElementById("flagTitle");
        var f = document.getElementById("flag");
        t.innerText = !!ic ? "You got the flag below!!" : "Wrong!";
        t.className = !!ic ? "rightflag" : "wrongflag";
        f.innerText = fg;
    }

  2.很明显的看到了点击按钮触发getFlag函数,ic默认是false,调用checkToken(token)这个函数,那么说明checkToken函数就是关键点了。

  3.打开checkToken函数看看里面的内容,难道说flag就是FAKE-TOKEN,哈哈哈

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

  4.然而输入之后还是提示错误,那就只剩fg = bm(token);这句代码有问题了

  5.那还用说,直接进去,搜索一下ic,说明ic肯定是在这面变成false的

function ck(s) {
    try {
        ic
    } catch (e) {
        return;
    }
    var a = [118, 104, 102, 120, 117, 108, 119, 124, 48,123,101,120];
    if (s.length == a.length) {
        for (i = 0; i < s.length; i++) {
            if (a[i] - s.charCodeAt(i) != 3)
                return ic = false;
        }
        return ic = true;
    }
    return ic = false;
}

  6.直接点击左侧图标下断点吧,然后点击按钮,成功的断了下来,发现函数参数s就是我输入的变量,然后比较s和a的长度,接着用s的值减3和a的值相比较,如果都没问题,那么就返回true

  7.把它的算法复制过来,变成c++代码跑一下,就能得到flag:security-xbu

int main()
{
    string s(13,NULL);

    int a[12] = { 118, 104, 102, 120, 117, 108, 119, 124, 48, 123, 101, 120 };

    for (int j = 0; j < 12; j++)
    {
        s[j] = a[j] - 3;
    }

    cout << s << endl;

    system("pause");
    return 0;
}

  8.输入之后成功得到RenIbyd8Fgg5hawvQm7TDQ,验证一下,成功通过,放张成功截图吧。
3.png

0x3总结

  1.js中还有三个等于号,表示完全等于(数据类型也一样),不知道是不是这样理解。

  2.感觉和OD分析程序很像,找到标志位改变的地方,然后下断点过去,看看输入是什么。

  3.函数虽多,但只要没改变我们输入的s和标志ic就不用去管它。

  PS:善于总结,善于发现,找到分析问题的思路和解决问题的办法。虽然我现在还是零基础的小菜鸟一枚,也许学习逆向逆天改命我会失败,但也有着成功的可能,只要还有希望,就决不放弃!

免费评分

参与人数 32威望 +1 吾爱币 +46 热心值 +31 收起 理由
潇未然 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
anlovedong + 1 + 1 用心讨论,共获提升!
小哥9527 + 1 热心回复!
mymodify + 1 + 1 用心讨论,共获提升!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ttstar + 1 + 1 谢谢@Thanks!
空凡星 + 1 + 1 加油!哪怕曾经堕入深渊,只要现在努力向上爬,依旧有机会站在云端
silence2540 + 1 + 1 我很赞同!
xjboy_123 + 1 用心讨论,共获提升!
Royal_zya + 1 + 1 我很赞同!
Ronda + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhang1171909 + 1 用心讨论,共获提升!
万里绿枫叶 + 1 + 1 我很赞同!
丁v16 + 1 我很赞同!
阿台永远滴神 + 1 + 1 我很赞同!
小张不嚣张 + 1 我很赞同!
ygmz + 1 我很赞同!
Donghui891227 + 1 + 1 我很赞同!
twinklestars + 1 + 1 我很赞同!
vv慢慢 + 1 + 1 我很赞同!
hiramyun + 1 + 1 我很赞同!
woyucheng + 1 + 1 谢谢@Thanks!
不懂就问小小白 + 1 + 1 谢谢@Thanks!
纯洁表弟 + 1 + 1 热心回复!
lzy05410 + 1 + 1 我很赞同!
青春已不在丶 + 1 + 1 我很赞同!
天南地北一群魔 + 1 + 1 谢谢@Thanks!
神游的人 + 1 我很赞同!
我不玩游戏 + 1 我很赞同!
唐僧丢了袈裟 + 1 我很赞同!
tiger2019 + 1 我很赞同!
心软是病呀 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

dia1314 发表于 2020-7-24 22:04
你哪里找的视频学习资料,可以分享吗
pglcsu 发表于 2020-7-25 02:33
感谢大佬的分享呀,真的不容易,最近也是在自学py绿色那个计算机语言,小白一个开头挺难的,不过也继续加油
justforkc 发表于 2020-7-24 21:21
心软是病呀 发表于 2020-7-24 21:24
谢谢楼主的教程
tiger2019 发表于 2020-7-24 21:25
表示敬意。你是未来的大佬。
allennt 发表于 2020-7-24 21:32
厉害了。。。。。
小黑黑a 发表于 2020-7-24 21:33
&#8195;1.js中还有三个等于号,表示完全等于(数据类型也一样),不知道是不是这样理解。
Silent丶Y 发表于 2020-7-24 21:47
谢谢分享
rwi2013 发表于 2020-7-24 21:55
学习了,谢谢楼主
我不玩游戏 发表于 2020-7-24 22:01
学习了,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-27 15:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表