we1come to carl's home

we1come to carl's home

a worm in cosmos

南宁杯re-SMC.exe
写在前面之前做了一下这个比赛 pwn,这道题其实当时也看了一下,感觉逻辑比较复杂然后时间有点来不急就没再看了,之后逛先知社区发现有人写了一篇动态逆向这道题的文章,看了一下写的很详细,学习一下。 文章地址 idea先运行一下看看程序的大体逻辑,可以发现是一个经典的验证类型的程序。 然后去 ida 里面看看这个验证程序怎么实现的,flag 为 29 位的字符串最后一位是 ‘}’ ,然后进行前8位的校验。 v7是一个计数器,前 8 位每次与预设值验证相等的时候技术器会加 1 ,当 v7 等于 8 的时候就会进入下一轮的 check。本轮的 check 可以简化为 A ^ B == C ,我们...
33c3 ctf babyfengshui
idea老说要开始堆的学习,拒绝拖延症从我做起。XD 老规矩,先看一下开的保护情况。有 nx 和 canary,没有 pie ,got 表部分可写。 123456/home/carlstar/Desktop/babyfengshui' Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000) 再看看逻辑是什么样子的,经典的菜单题目。像这种菜单题目最好先运行一下,这样可以更好的...
Meterpreter免杀总结
说两个通用的,毕竟高级的免杀方法都不可能公开,要不分分钟就被干掉了,大家且用且珍惜。现在的杀软都是静态 + 动态 + 流量分析了,下面这两个可以过一些国内常用的静态查杀,动态的话就之后再总结。 planA利用 msfvenom 生成 c 语言的 shellcode 然后拿其它编译器生成 exe 文件,如果默认使用 msfvenom 生成目标文件的话会留有 msfvenom 独有的特征码,非常明显大多数杀软都会匹配到。所以我们使用其它编译器来去除这个特征码。使用msfvenom选择encoder的时候大家一般都会选择shikata_ga_nai这个编码方式(因为x86的encoder里只有...
hackme inndy echo3
idea这道题的利用方式虽然也是格式化字符串,但是不在 stack 上而是在 bss 段,所以利用的方式也会变得复杂,不能直接修改指定位置的内存值,而是要构造一个 “跳板” 来实现任意位置的写。在 main 函数中还有一个坑:程式会取一个随机数用 alloca 函数来随机化栈地址,所以需要先泄漏一下栈地址。 1234567891011121314151617181920212223int __cdecl __noreturn main(int argc, const char **argv, const char **envp){ void *v3; // esp int ...
hackme.tw tictactoe
idea保护是这样子的,程序的逻辑很多,直接本地运行一下发现是棋类游戏。 1234567carlstar@ubuntu:~/Desktop$ checksec tictactoe [*] '/home/carlstar/Desktop/tictactoe' Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000) 漏洞点在这里,在读落子的位置时没有校验输入的范围,可以输入负数...
hackme.inndy.tw very_overflow
idea先来看一下 vlun 函数,没有限制 add_note 的次数,因此可以多次 add_note 填满缓冲区来做 ROP 执行 plt_system。在 show_note 时会打印 Next note 的地址,在本地调试的时候发现栈上有 __libc_start_main ,所以可以泄漏出来找到 libc_base 返回到 plt_system。还有一点就是由于本地和远程的问题,在 add_note 时使用的 recvuntil 后在发生 payload 会超时,去掉后直接发送就可以了。 1234567891011121314151617181920212223242526272...
2018鹏城杯 Ctopia
最近几次的 pwn 感觉都是要先逆向出来逻辑然后再漏洞利用,漏洞不像以前那么明显了。。看来是时候开坑逆向了。 idea是一个游戏,还挺好玩的。通关后得到flag,一般这种题目要不是难度设置的特别高要不就是特别费时,比赛期间肯定正常打不完。先上 ida 看看程序的逻辑。在 mainloop中可以看到每达到一定的条件后程序就会写一个 key,最终 4 个 key 后会执行解密函数。那么可以让程序跑起来后手动执行这 4 个写 key 的操作 然后调用 KEY::FINAL_DECRYPT 这个函数就可以获取 flag 。 最终效果如下 Traffic_Light看了一下大佬们的 wp 发...
hackme.inndy.tw stack
idea保护全开,还挺吓人的orz。然后再看看程序的逻辑吧。 1234567carlstar@ubuntu:~/Desktop$ checksec stack [*] '/home/carlstar/Desktop/stack' Arch: i386-32-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled 题目给了源代码,是模仿栈的操作,自己实现了 pop 和 push 操作。 关键源代码如下,可以看到在 pop ...
leave_msg
leave_msg方法一看了一下开的防护,有 rwx 段,nx 没有开,shellcode 有利用的空间。 1234567[*] '/home/carlstar/Desktop/leave_msg' Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX disabled PIE: No PIE (0x8048000) RWX: Has RWX segments 再看一下程序了逻辑,再两处输入都有限制。第一次输入时我们可...
hackme.inndy.tw rsbo
Idea一道32位的rop,老规矩,先看看保护和逻辑确定一下思路。 1234567carlstar@ubuntu:~/Desktop$ checksec rsbo [*] '/home/carlstar/Desktop/rsbo' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) main函数 1234567891011121314151617181920212...
avatar
carlstar
万物奇妙 万事出乎意料