栈溢出

栈溢出

11

pwn_me.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int pwn_me(void)
{
char buf[8];
int flag=0;
puts("input your password");
scanf("%s",buf);
if(!flag)
{
puts("error");
exit(0);
}
else
{
puts("success");
exit(0);
}
}

int main(void)
{
pwn_me();
}

gcc -m32 ./pwn_me.c -o pwn_me

gcc -m32 -fno-stack-protector ./pwn_me.c -o pwn_me

ROP(Return Oriented Programming)

返回导向编程

Stack-smashing Protection(SSP,又称 ProPolice)

SSP 还有意将局部变量中的数组放在函数栈的高地址,而将其他变量放在低地址。这样就使得通过溢出一个数组来修改其他变量(比如一个函数指针)变得更为困难。

常用的Canary下栈溢出套路

1.泄漏Canary

2.覆盖TLS中的Canary

3.劫持_stack_chk_fail

4.one-by-one leak

5.stack smash

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 栈溢出
载入天数...载入时分秒...