WIFI万能钥匙CTF RE1——WannaLOL

2024-02-19 08:40

本文主要是介绍WIFI万能钥匙CTF RE1——WannaLOL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

发现自己似乎很久没有写过东西了,最近认识了很多大佬们,意识到差距真tm巨大,要补的东西还有很多,其实不写博客学习还是要继续的,不过为了潜意识里联系上某位大佬,还是写点东西了吧。 这是2017年的WIFI万能钥匙逆向题的一道,没有花没有反调试,(最近做题老喜欢爆破,所以就选这道题了)先看题目: error

对的,没错,error了,也是一个很基础的调用messagebox的程序,找到输入内容的GetDlgItemTextA,设置断点

输入图片说明

然后遇到一些跳转,提前看一下跳转地址,然后一路修改标志位(f表示不能跳转),调试下去,即爆破成功。

0040120B   .  FF15 A8704000 call dword ptr ds:[<&USER32.GetDlgItemTe>; \GetDlgItemTextA
00401211   .  68 F4010000   push 0x1F4                               ; /Timeout = 500. ms
00401216   .  FF15 00704000 call dword ptr ds:[<&KERNEL32.Sleep>]    ; \Sleep
0040121C   .  8D45 E4       lea eax,dword ptr ss:[ebp-0x1C]
0040121F   .  50            push eax
00401220   .  E8 DB000000   call WannaLOL.00401300
00401225   .  83F8 04       cmp eax,0x4
00401228   .  59            pop ecx                                  ;  WannaLOL.004012E7
00401229   .  0F85 A0000000 jnz WannaLOL.004012CF                    ;  F
0040122F   .  6A 30         push 0x30
00401231   .  59            pop ecx                                  ;  WannaLOL.004012E7
00401232   .  384D E4       cmp byte ptr ss:[ebp-0x1C],cl
00401235   .  0F84 94000000 je WannaLOL.004012CF                     ;  f
0040123B   .  384D E5       cmp byte ptr ss:[ebp-0x1B],cl
0040123E   .  0F84 8B000000 je WannaLOL.004012CF                     ;  f
00401244   .  384D E6       cmp byte ptr ss:[ebp-0x1A],cl
00401247   .  0F84 82000000 je WannaLOL.004012CF                     ;  f
0040124D   .  384D E7       cmp byte ptr ss:[ebp-0x19],cl
00401250   .  74 7D         je short WannaLOL.004012CF               ;  f
00401252   .  807D E4 31    cmp byte ptr ss:[ebp-0x1C],0x31
00401256   .  75 77         jnz short WannaLOL.004012CF              ;  f
00401258   .  807D E5 35    cmp byte ptr ss:[ebp-0x1B],0x35
0040125C   .  75 71         jnz short WannaLOL.004012CF              ;  f
0040125E   .  74 03         je short WannaLOL.00401263
00401260   .  75 01         jnz short WannaLOL.00401263
00401262      E8            db E8
00401263   >  66:B8 0800    mov ax,0x8
00401267   .  66:35 0700    xor ax,0x7
0040126B   .  0FBE45 E6     movsx eax,byte ptr ss:[ebp-0x1A]
0040126F   .  2BC1          sub eax,ecx
00401271   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax
00401274   .  0FBE45 E4     movsx eax,byte ptr ss:[ebp-0x1C]
00401278   .  DB45 FC       fild dword ptr ss:[ebp-0x4]
0040127B   .  2BC1          sub eax,ecx
0040127D   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax
00401280   .  0FBE45 E5     movsx eax,byte ptr ss:[ebp-0x1B]
00401284   .  DB45 FC       fild dword ptr ss:[ebp-0x4]
00401287   .  2BC1          sub eax,ecx
00401289   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax
0040128C   .  DA75 FC       fidiv dword ptr ss:[ebp-0x4]
0040128F   .  0FBE45 E7     movsx eax,byte ptr ss:[ebp-0x19]
00401293   .  2BC1          sub eax,ecx
00401295   .  8945 FC       mov dword ptr ss:[ebp-0x4],eax
00401298   .  DEE9          fsubp st(1),st
0040129A   .  DA4D FC       fimul dword ptr ss:[ebp-0x4]
0040129D   .  D80D 1C714000 fmul dword ptr ds:[0x40711C]
004012A3   .  D95D FC       fstp dword ptr ss:[ebp-0x4]
004012A6   .  74 03         je short WannaLOL.004012AB
004012A8   .  75 01         jnz short WannaLOL.004012AB
004012AA      E8            db E8
004012AB   >  66:B8 0800    mov ax,0x8
004012AF   .  66:35 0700    xor ax,0x7
004012B3   .  D945 FC       fld dword ptr ss:[ebp-0x4]
004012B6   .  D81D 18714000 fcomp dword ptr ds:[0x407118]
004012BC   .  6A 00         push 0x0
004012BE   .  68 78804000   push WannaLOL.00408078                   ;  ASCII "CrackMe 2017 CTF"
004012C3   .  DFE0          fstsw ax
004012C5   .  9E            sahf
004012C6   .  75 0E         jnz short WannaLOL.004012D6              ;  f
004012C8   .  68 5C804000   push WannaLOL.0040805C                   ;  ASCII "Registration successful !"
004012CD   .  EB 0C         jmp short WannaLOL.004012DB
004012CF   >  6A 00         push 0x0
004012D1   .  68 48804000   push WannaLOL.00408048                   ;  ASCII "CrackMe 2017 CTF v2"
004012D6   >  68 40804000   push WannaLOL.00408040                   ;  ASCII "error !"
004012DB   >  FF35 34AA4000 push dword ptr ds:[0x40AA34]             ; |hOwner = 008C034E ('PEDIY CTF 2017',class='myWindowClass')
004012E1   .  FF15 AC704000 call dword ptr ds:[<&USER32.MessageBoxA>>; \MessageBoxA
004012E7   .  C9            leave
004012E8   .  C3            retn

输入图片说明

爆破确实是不难,做下来也就十几分钟,但是where is the flag????所以接下来,追码吧

打开IDA载入程序,跟到MessageBoxA然后看看哪里调用这个函数

输入图片说明

输入图片说明

奈斯!

输入图片说明

找到函数头F5,反编译代码,让我们看看他在干嘛:

输入图片说明

不奈斯,再自己定义成函数吧。然后就再看一下汇编吧(做题我一般还是不会仔细看汇编代码的),斯国一,来我们看看

输入图片说明

这里有两个IDA找不到头尾的函数,反编译出来也是有,但是不影响什么,等待师傅们的解答。

int sub_4011F4()
{int v0; // ecx@8double v1; // st7@8double v2; // st6@8double v3; // st6@8const CHAR *v5; // [sp-Ch] [bp-28h]@9const CHAR *v6; // [sp-8h] [bp-24h]@8CHAR String; // [sp+0h] [bp-1Ch]@1           /key的第一位/char v8; // [sp+1h] [bp-1Bh]@3                     /key的第二位/char v9; // [sp+2h] [bp-1Ah]@4                    /key的第三位/char v10; // [sp+3h] [bp-19h]@5                    /key的第四位/int v11; // [sp+18h] [bp-4h]@8GetDlgItemTextA(hDlg, 1001, &String, 21);Sleep(0x1F4u);if ( strlen(&String) != 4 || String == 48 || v8 == 48 || v9 == 48 || v10 == 48 || String != 49 || v8 != 53 ){v6 = Caption;goto LABEL_11;                             //这里就GG了/}JUMPOUT(v8 == 53, (char *)&loc_401262 + 1);JUMPOUT(0, (char *)&loc_401262 + 1);v48CACD();v11 = v9 - v0;v1 = (double)v11;v11 = String - v0;v2 = (double)v11;v11 = v8 - v0;v3 = v2 / (double)v11;v11 = v10 - v0;*(float *)&v11 = (v1 - v3) * (double)v11 * 16.0;JUMPOUT(v10, v0, (char *)&loc_4012AA + 1);JUMPOUT(v10 != v0, (char *)&loc_4012AA + 1);v48CB15();v6 = aCrackme2017Ctf;if ( *(float *)&v11 != 384.0 ){
LABEL_11:v5 = Text;return MessageBoxA(hWnd, v5, v6, 0);}v5 = aRegistrationSu;return MessageBoxA(hWnd, v5, v6, 0);
}

硬着头皮看完吧。。除此之外没有别的方法。大致分析一下:输入的字符串长度必须等于4,且不能有0,第一位和第二位分别是1和5,第三位和第四位靠算法算出:

///v0为临时变量/v11 = v9 - v0;         // 第三位 -v0                      v1 = (double)v11;                            v1==key[2]v11 = String - v0;    //第一位-v0v2 = (double)v11;                           v2==key[0]v11 = v8 - v0;         //第二位-v0v3 = v2 / (double)v11;                     v3==key[1]v11 = v10 - v0;                             v4==key[3]*(float *)&v11 = (v1 - v3) * (double)v11 * 16.0;

列方程: (v1-0.2)* v11 * 16.0=384

py脚本走起

输入图片说明

所以解出flag:1555

输入图片说明

链接:https://pan.baidu.com/s/1LnI1F19Cfm97P_cmVHM3Tw 密码:kjj5

转载于:https://my.oschina.net/u/3763247/blog/1803463

这篇关于WIFI万能钥匙CTF RE1——WannaLOL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/724131

相关文章

企业安全之WiFi篇

很多的公司都没有安全团队,只有运维来负责整个公司的安全,从而安全问题也大打折扣。我最近一直在给各个公司做安全检测,就把自己的心得写下来,有什么不足之处还望补充。 0×01  无线安全 很多的公司都有不怎么注重公司的无线电安全,有钱的公司买设备,没钱的公司搞人力。但是人的技术在好,没有设备的辅助,人力在牛逼也没有个卵用。一个好的路由器、交换机、IDS就像你装备了 无尽、狂徒、杀人书一

[环境配置]ubuntu20.04安装后wifi有图标但是搜不到热点解决方法

最近刚入手一台主机,暗影精灵8plus电竞主机,安装ubuntu后wifi怎么都搜不到热点,前后重装系统6次才算解决问题。这个心酸历程只有搞技术人才明白。下面介绍我解决过程。 首先主机到手后是个windows10系统,我用无线网连接了一下,可以正常上网,说明主机有无限网卡且正常。然后我就直接开始安装Ubuntu20.04了,安装成功后发现wifi有图标但是搜不到热点,我想是不是无线网卡驱动有没有

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构,客户端可以订阅任意数量的主题,并可以发布消息到这些主题。服务器(通常称为MQTT Broker)则负责接受来自客户端的连接请求,并转发消

龙芯小本debian无线(wifi)连接设置

本人有一台龙芯8089b小本,已被我重装了debian系统。由于学习nodeJs,所以想用它当node服务器; 正准备下载node等时发现命令模式下不能自动连接无线,于是网上找来一篇debian连接wifi的文章, 来源参考http://blog.163.com/wangpeng922@126/blog/static/64133083201211131100539/ 查看网卡信息:#

多款式随身WiFi如何挑选,USB随身WiFi、无线电池随身WiFi、充电宝随身WiFi哪个好?优缺点分析!

市面上的随身WiFi款式多样琳琅满目,最具代表性的就是USB插电款、无线款和充电宝款。今天就来用一篇文章分析一下这三种款式的优缺点。 USB插电款 优点:便宜,无需充电,在有电源的地方可以随时随地插电使用,比如中兴的USB随身WiFi。 缺点:无电源的情况下,无法带出门使用,部分品牌考虑到这个问题,会配备一个充电仓,这个充电仓相对来说就有点累赘了。网速上也不太稳定,波动比较大。

基于WiFi的智能照明控制系统的设计与实现(论文+源码)

1系统方案设计 本设计智能照明控制系统,结合STM32F103单片机、光照检测模块、显示模块、按键模块、太阳能板、LED灯模块、WIFI模块等器件构成整个系统,在功能上可以实现光照强度检测,并且在自动模式下可以自动调节照明亮度,在手动模式下,用户可以手动调节亮度,并且借助ESP8266 WiFi他模块,用户可以通过手机APP切换模式和调节亮度,并通过OLED液晶显示相关信息,同时加入了太阳能板给

物联网之ESP32控制舵机、通过网页设置舵机角度、Web服务、舵机原理、接线、Arduino、WiFi、Http

MENU 前言原理硬件电路设计软件程序设计LEDC输出PWM信号使用第三方库控制舵机网页控制舵机 前言 舵机在电子产品中非常常见,比如四足机器人、固定翼航模等都有应用,因此学习舵机对电子制作非常有意义。本文章使用Arguino的PWM对SG90舵机旋转角度控制。 原理 舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机只

WIFI贴项目到底是不是“骗局”呢?由我来揭秘!

各位亲爱的朋友们,大家好!我是你们的老朋友鲸天科技千千,一直在这片互联网的热土上耕耘。相信你们对我都不会陌生,因为我常常分享一些互联网上的新奇项目和实用技巧。如果你对我的内容感兴趣,别忘了点个关注哦! 首先很多人交了几千几万的学费入局,我想说你真的被割韭菜了,这个项目本身没什么技术性,都是赚广告收益,收加盟代理费就是在割韭菜,共享经济本身互利互惠,推广员在赚的同时公司也在其中谋利。 共享WiF

华为手机找不到wifi调试?不急,没有wifi调试一样可以进行局域网模式调试

最近小黄在使用uniapp启动无线调试的时候突然发现华为的手机突然找不到wifi调试了,那么我们怎么进行无线调试呢? 其实他只是找不到开关而已,正常使用就行。 1.使用数据线连接手机。 打开cmd命令行执行:adb tcpip 5555 2.再执行adb connect ip:5555 ip为手机的真实ip 这样就可以无线调试了