Sunichi's Blog

sunichi@DUBHE | Linux & Pwn & Fuzz

0%

此题的漏洞主要是在第4个选项,即wish函数中,在里面有栈溢出漏洞,能够利用栈溢出返回到任意地址中。用ida查看程序,需要集齐7龙珠才能许愿。初始有15元,购买1个龙珠5元,出售1个龙珠3元,在购买时进行下述检查:

1
2
3
4
if ( !money )
return puts("You don't have enough money.");
money -= 5;
++dragon_ball_num;
阅读全文 »

0x00 pwn100

保护措施:

1
2
3
4
5
Arch:     i386-32-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x8048000)

pwn100为简单的栈溢出:

阅读全文 »

第一次和大佬们一起参加CTF比赛,在pwn中选了一个栈溢出的题目来做。

先丢到ida中,如其名“跑马灯”,程序会在跑完三轮跑马灯前的最后一次,设置一个定时器并在2秒后触发进入死循环handler。在跑马灯结束到触发alarm之前,有一个窗口可以提供输入。

1
2
3
4
signal(14, (__sighandler_t)handler);
alarm(2u);
//......
return gee();
阅读全文 »

buf的空间大小为0x400,read()的读入长度也为0x400。进入echo()函数继续查找。

字符串s2长度为0x10,内容从buf进行拷贝,当遇到\x00时特,停止拷贝。栈布局如下

size data
0x10 s2
0x08 saved ebp
0x08 return address
0x400 buf

构造如下payload

阅读全文 »

使用ida查看程序,在函数0x40063d中有read函数,读取用户输入的200个字节。接着调用puts函数输出。

1
2
sub_40063D((__int64)&v1, 200);
return puts("bye~");
阅读全文 »