Category: 南京邮电大学网络攻防训练平台

南京邮电大学网络攻防训练平台 RE方向 第十一题 simple machine

环境配置 系统 : Windows xp / Ubuntu 32bit 程序 : simple machine 要求 : 输入口令 使用工具 :IDA pro 开始分析 搜集线索 用ida程序,参考左边的函数列表定位到主流程main函数部分: int __cdecl main() { signed int offest; // [sp+8h] [bp-10h]@7 signed int len_my_str; // [sp+Ch] [bp-Ch]@4 sub_8048526(); puts(“[SxqVM v0.0.1]”); if ( sub_80484FB() != 0 ) // anti debug function. return value equals 0 is […]

南京邮电大学网络攻防训练平台 RE方向 第六题 WxyVM 2

环境配置 系统 : Windows xp / kali 64bit 程序 : WxyVM2 要求 : 输入口令 使用工具 :IDA / c32asm 开始分析 程序流程 用ida载入程序程序,直接找到了main函数。这里,用F5生成伪c代码会卡住,我们选择查看图形视图:右击汇编窗口->Graph View,得到流程图如下: 程序首先读入flag字串: .text:00000000004005BE mov edi, offset s ; “[WxyVM 0.0.2]” .text:00000000004005C3 call _puts .text:00000000004005C8 mov edi, offset aInputYourFlag ; “input your flag:” .text:00000000004005CD call _puts .text:00000000004005D2 mov esi, offset my_str_694100 .text:00000000004005D7 mov edi, offset […]

南京邮电大学网络攻防训练平台 PWN方向 第二题 cgpwna

环境配置 系统 : Windows xp / ubuntu 32bit 程序 : cgpwna 要求 : 缓冲区溢出执行cat命令 使用工具 :IDA 开始分析 搜集线索 在linux系统中,使用file命令查看文件的信息: ➜ playground file cgpwna cgpwna: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=8648818dcc39023c4dac61d2edb091bcd3fd3270, not stripped 发现是32位的可执行程序,我们可以先运行一下,了解其输出: ➜ playground ./cgpwna what do you want to do? 1.leave some […]

南京邮电大学网络攻防训练平台 RE方向 第四题 WxyVM

环境配置 系统 : Windows xp / kali 64bit 程序 : WxyVM 要求 : 输入口令 使用工具 :IDA 开始分析 用ida直接载入程序,加载完毕后按下Shift+F12显示字符串窗口: .rodata:0000000000400848 0000000E C [WxyVM 0.0.1] .rodata:0000000000400856 00000011 C input your flag: .rodata:000000000040086A 00000008 C correct .rodata:0000000000400872 00000006 C wrong .eh_frame:000000000040091F 00000006 C ;*3$\” 这里双击input your flag:然后选择代码交叉引用,定位到程序验证逻辑处: __int64 __fastcall main(__int64 a1, char **a2, char **a3) { char IsOK; […]

南京邮电大学网络攻防训练平台 RE方向 第十二题 Single

环境配置 系统 : Windows xp 程序 : single 要求 : 输入口令 使用工具 :IDA / 数独在线求解 开始分析 在ida中载入程序按f5并查看伪c代码: __int64 __fastcall main(__int64 a1, char **a2, char **a3) { __int64 result; // rax@1 __int64 v4; // rcx@1 char *str; // [sp+0h] [bp-70h]@1 __int64 v6; // [sp+68h] [bp-8h]@1 v6 = *MK_FP(__FS__, 40LL); memset(&str, 0, 0x64uLL); puts(“Input string:”); scanf(“%s”, &str); […]

南京邮电大学网络攻防训练平台 RE方向 第五题 maze

环境配置 系统 : Windows xp 程序 : maze 要求 : 输入口令 使用工具 :IDA 开始分析 我们用ida载入程序,查看生成的伪代码: __int64 __fastcall main(__int64 a1, char **a2, char **a3) { signed __int64 index; // rbx@4 signed int tmp_ch; // eax@5 bool is_ok_or_not; // bp@5 bool res; // al@8 const char *res_str; // rdi@19 __int64 line; // [sp+0h] [bp-28h]@1 line = 0LL; […]

南京邮电大学网络攻防训练平台 pwn方向 第一题 When did you born?

环境配置 系统 : Windows xp / Kali 程序 : when_did_you_born.zip 要求 : 输入口令 使用工具 :IDA 开始分析 作者直接给了一个c源程序给我们,那么就一起来看看它的内容: #include <stdio.h> struct Student { char name[8]; int birth; }; int main(void) { setbuf(stdin, 0); setbuf(stdout, 0); setbuf(stderr, 0); struct Student student; printf(“What\’s Your Birth?\n”); scanf(“%d”, &student.birth); while (getchar() != ‘\n’) ; if (student.birth == 1926) { printf(“You […]

南京邮电大学网络攻防训练平台 RE方向 第十题 480小时精通C++

环境配置 系统 : Windows xp 程序 : cpp 要求 : 输入口令 使用工具 :IDA 开始分析 使用file指令发现这是一个64位的程序: ➜ playground file cpp cpp: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=bd6f0292f6070a3fffd3a9ecf60203bccfc7ac26, not stripped 在64位环境linux上运行效果如下: root@kali:~/下载# ./cpp The Encrypted Flag is: 62646163734e346a6f60715f673c6e5b4561777c337657635b7831717b5f74447577297d 程序只给出了加密后的数据,看来我们只能自己在程序中寻找加密函数进行分析了。 得到关键数据 首先,我们根据其输出格式: printf(“%02x”, *((_BYTE *)&v6 + i)); 我们编写如下python代码还原出c风格字符串: […]

南京邮电大学网络攻防训练平台 RE方向 第七题 你大概需要一个优秀的mac

环境配置 系统 : Windows xp 程序 : xor 要求 : 输入口令 使用工具 :IDA 开始分析 首先对于不明的文件肯定是拖入linux下用file程序分析: xor: Mach-O 64-bit x86_64 executable 发现这个是mac下的可执行文件,我们手上没有mac,姑且用ida静态分析看看。载入程序,直接发现了main函数: int __cdecl main(int argc, const char **argv, const char **envp) { char my_str; // [sp+40h] [bp-70h]@1 __int64 v5; // [sp+A8h] [bp-8h]@1 v5 = *(_QWORD *)__stack_chk_guard_ptr; memset(flag, 0, 0x64uLL); memset(&my_str, 0, 0x64uLL); scanf(“%s”, &my_str); if […]

南京邮电大学网络攻防训练平台 RE方向 第三题 Py交易

环境配置 系统 : Windows xp 程序 : Py.pyc 要求 : 输入口令 使用工具 :pyc文件在线反编译 开始分析 使用在线工具反编译代码: import base64 def encode(message): s = ” for i in message: x = ord(i) ^ 32 x = x + 16 s += chr(x) return base64.b64encode(s) correct = ‘XlNkVmtUI1MgXWBZXCFeKY+AaXNt’ flag = ” print ‘Input flag:’ flag = raw_input() if encode(flag) […]