170903 WarGames-Behemoth(0)
来源:互联网 发布:打开app显示网络错误 编辑:程序博客网 时间:2024/05/17 14:26
1625-5 王子昂 总结《2017年9月3日》 【连续第335天总结】
A. WarGames-Behemoth
B.
Level 0
跟narnia类似,不过这次没给源码,直接拖下来反编译:
int __cdecl main(int argc, const char **argv, const char **envp){ size_t v3; // eax@1 int result; // eax@4 int v5; // edx@4 signed int v6; // [sp+1Fh] [bp-51h]@1 signed int v7; // [sp+23h] [bp-4Dh]@1 signed int v8; // [sp+27h] [bp-49h]@1 char v9; // [sp+2Bh] [bp-45h]@1 int v10; // [sp+6Ch] [bp-4h]@1 v10 = *MK_FP(__GS__, 20); v6 = 'G^KO'; v7 = 'EBYS'; v8 = 'Y^X'; printf("Password: "); __isoc99_scanf("%64s", &v9); v3 = strlen((const char *)&v6); memfrob(&v6, v3); if ( !strcmp(&v9, (const char *)&v6) ) { puts("Access granted.."); execl("/bin/sh", "sh", 0); } else { puts("Access denied.."); } result = 0; v5 = *MK_FP(__GS__, 20) ^ v10; return result;}
这个是逆向的套路了,memfrob对字符串进行处理
百度memfrob都只说是对内存进行编码,没有具体的内容,连Linux C手册都下了也独独就缺这一个函数
不明白具体是做什么的,就直接原样处理好咯~
#include <stdio.h>void main(void){char a[]="OK^GSYBEX^Y";int n = strlen(a);memfrob(a,n);printf(a);return 0;}
eatmyshorts
突然想起来还有更简单的方法、之前学到的
behemoth0@behemoth:~$ ltrace /behemoth/behemoth0
__libc_start_main(0x80485a2, 1, 0xffffd7f4, 0x8048690<unfinished ...>
printf(“Password: “) = 10
__isoc99_scanf(0x804876c, 0xffffd70b, 0xffffd700, 0x80482d2Password: 1
) = 1
strlen(“OK^GSYBEX^Y”) = 11
strcmp(“1”, “eatmyshorts”) = -1
puts(“Access denied..”Access denied..
) = 16
+++ exited (status 0) +++
ltrace命令跟踪显示函数,得到了strcmp的参数:eatmyshorts
behemoth0@behemoth:~$ /behemoth/behemoth0
Password: eatmyshorts
Access granted..
$
whoami
behemoth1
$
cat /etc/behemoth_pass/behemoth1
aesebootiv
C. 明日计划
behemoth
- 170903 WarGames-Behemoth(0)
- 170903 WarGames-Behemoth(1)
- 170904 WarGames-Behemoth(2)
- 170905 WarGames-Behemoth(3)
- 170906 WarGames-Behemoth(4)
- 170908 WarGames-Behemoth(7)
- 170907 WarGames-Behemoth(5-6)
- WarGames-leviathan(0-7)
- 170823 WarGames-Narnia(0)
- 170815 WarGames-Krypton(0-6)
- 170816 WarGames-Natas(0-14)
- 170909 WarGames-Utumno(0-1)
- Wargames-Vortex Level 0
- WarGames-Natas(16)
- 170811 WarGames-Bandit(0-10)
- 170817 WarGames-Natas(15)
- 170821 WarGames-Natas(26)
- 170828 WarGames-Narnia(3)
- 闲来蛋疼写个qq侧滑删除
- Android中使用putExtra()传递对象实例
- bzoj 1003 [ZJOI2006]物流运输(最短路spfa+dp)
- 排序算法--冒泡排序
- Spiral Matrix
- 170903 WarGames-Behemoth(0)
- 内存优化总结:ptmalloc、tcmalloc和jemalloc
- 解决float属性导致换行
- 等错误率EER
- Firefox 2015 最受国人欢迎的十大扩展
- MD5加密
- 今天做了一个小游戏 猜拳游戏 大家可以看看玩玩
- SELECT 失败,因为下列 SET 选项的设置不正确: 'ARITHABORT'。请确保 SET 选项正确无误
- Jackson详解