摘要:
查看文件格式以及保护开启情况。发现为64位程序,符号被剥离,动态链接程序且题目提供给了libc。保护全开,猜想可能是fast attack加上malloc_hook利用(毕竟去年这题是这个利用,肯定先往这边想) 简单的运行程序,发现是常规的菜单类题目,功能有申请内存(alloc)、更新(update 阅读全文
摘要:
查询题目保护开启,发现只开了NX,未开启RELRO和PIE,思路可以从修改got表展开。 ida装载分析程序执行流程,main函数发现是一个常规的菜单类题目,推测为堆相关题目。 Malloc函数。分配最大不超过4096,且如果大小超过112就直接放入堆区,否则先存入栈区,再拷贝到堆区。存在结构体保存 阅读全文
摘要:
查看文件类型和保护开启情况,发现全保护开启,一般为堆溢出,无法改写got表,思路一般往malloc_hook转变。 运行程序观察执行大概流程。经典的菜单题目。 Allocate操作,输入分配字节大小以及标记。 Fill操作,输入分配的块号以及分配大小和填充内容。 Free操作,输入删除的块号进行删除 阅读全文
摘要:
第一题--BITSCTF 2017-Command_Line 查看文件格式以及开启的保护措施,此处全保护均未开启(默认开启ASLR),且为64位ELF。 尝试运行,发现打印出一处地址(基本不用考虑ASLR了),猜测为栈某处地址 放入ida观察逻辑,发现的确打印了栈上的一个地址,可以直接用。此处可以顺 阅读全文
摘要:
本系列为i春秋论坛上Tangerine@SAINTSEC大神所写的linux pwn入门系列相关习题的分析与解答。 原教程系列地址:https://bbs.ichunqiu.com/forum.php?mod=collection&action=view&ctid=157 1、csaw ctf 20 阅读全文
摘要:
问题:在做pwn题的过程中,我们经常会遇到题目提供libc,但是本地调试的时候加载的是本地libc。 解决方法: 方法1: 可以用添加环境变量的方法,如下: export LD_LIBRARY_PATH=`pwd` #当前目录为加载目录export LD_PRELOAD=你的libc #加载本地pw 阅读全文
摘要:
最近看了linux堆管理的文章,这篇博文是对文章的提炼和总结。 入门二进制很难啊! Linux堆管理策略 1、总述 在主线程中调用malloc之后会发现系统给程序分配了堆,且恰好在数据段之上。这说明它是通过brk系统调用实现。并且分配的地址空间大小远大于申请的大小,我们把它称之为main arena 阅读全文
摘要:
Python中常量的概念其实是对象的概念(所谓在Python中,万物皆对象),所有的赋值操作都是变量对操作数对象的引用。在Python中,每一个变量都有一个独一无二的id,可以称之为变量地址,用id()方法查看(如图1)。其中右边的字符串可以看作为一个字符串对象,而左边为这个字符串对象的引用。我们现 阅读全文
摘要:
1、字符串类型 Python中的字符串可以用一对” ”、一对’ ’或者一对””” “””来实现(如图1),其中要注意的是首尾不能不一致,例如’ ”或者” ‘将抛出语法异常(如图2)。对于三引号来说可以在其内定义多行的字符串(前面单双引号定义的都是单行字符串),并且在其内可以随意使用单引号和双引号而不 阅读全文