前言
摘要
本文主要介绍:工具checksec
正文
工具checksec
安装checksec
checksec可以独立安装,但是pwntools已经将其打包了,其中集成了大量pwn手用的工具,所以我们直接安装pwntools即可
工具checksec的显示

扩展
想要进一步查看checksec显示的信息,请继续阅读另一篇文章:
elf的安全属性
文章作者: Phaero
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Phaero的世外桃源!
相关推荐
2024-11-14
pwn工具1 pwntools模块
摘要 pwntools的安装 pwntools的组件 正文pwntools的安装pwntools是基于python的一个包,我们可以用pip install来安装这个包。 坑:在 Manjaro 22、Ubuntu 23.04、Fedora 38等最新的linux发行版中运行pip install时,通常会收到一个错误提示:error: externally-managed-environment,即“外部管理环境”错误,但这不是一个 bug。 解决办法: 直接去除警告。缺点是包装多了可能会产生混乱 使用pipx,缺点是这个只适用于命令行,脚本中无法使用import引用包 使用venv创建虚拟环境。(我选择为pwn单独建一个环境) apt install python3-venv python3 -m venv 目录,该指令会在目录中创建一个python虚拟环境。 进入虚拟环境所在的目录,使用source bin/activate来进入虚拟环境,然后pip...
2024-11-14
pwn工具6 patchelf与glibc-all-in-one
面临的窘境在我做ctfshow的pwn26时,我明明已经设定对了ASLR保护值,但是得不到正确的flag。 关于题目中给出的libc也不会用,于是进行了问题的查询,发现这是一个pwn手经常遇见的问题。 解决问题为什么要下载对应版本的glibc这个问题也是开始一直困扰的疑问,为什么不直接使用手头分发的glibc,设置环境变量LD_PRELOAD=./libc.so.6 ./xxx。 直接让加载指定的libc执行,而要去下载一个对应版本的glibc重新编译呢? 因为ld.so与libc.so不匹配可能会导致程序无法运行。 安装及使用glibc-all-in-one安装123git clone https://github.com/matrix1001/glibc-all-in-onecd glibc-all-in-onepython3 update_list 查看可下载列表确保工作目录为glibc-all-in-one1cat list 下载glibc工作目录为glibc-all-in-one1./download...
2024-11-14
pwn 知识点汇总
前言本篇只给出原博客地址,方便review而已。 正文重要工具 pwntools 计算机指令系统指令寻址 鸫鸫鹅(知乎):关于寻址方式一篇就够了 汇编基础知识objdump输出的是AT&T风格的汇编,各种形态的汇编之间有很大区别。不注意这点,一个操作中谁mov给谁容易干混。 栈溢出前置知识plt表与got表及elf的安全属性 转载0001-plt表和got表1 转载0002-plt表和got表2 转载0003-plt表和got表3 转载0004-plt表和got表4 转载0005-plt表和got表5 elf的安全属性 stormQ:计算机系统篇之链接(14):.plt、.plt.got、.got 和 .got.plt sections...
2024-11-14
pwn知识点1 elf的安全属性
正文elf的安全属性Arch指的是编译环境或是编译器环境之类的。 RELRORELRO介绍表示对是否有对数据区域的读写进行限制。 在Linux系统安全领域数据可以写的存储区就会是攻击的目标,尤其是存储函数指针的区域。所以在安全防护的角度来说尽量减少可写的存储区域对安全会有极大的好处。 设置符号重定向表格为只读或在程序启动时就解析并绑定所有动态符号,从而减少对GOT(Global Offset Table)攻击。(具体看RELRO类型) RELRO类型类型有三种: Full RELRO 完全开启只读保护,意味着.plt和.got.plt均为只读 Partial RELRO 部分开启只读保护,意味着plt只读,.got.plt可写 No RELRO...
2024-11-14
pwn知识点2 ASLR,PIE和PIC的异同
正文ASLRASLR介绍进程地址空间各区域随机化,ASLR(Address Space Layout Randomization)。 这是系统级的设置,可以在系统层面全部调整。 为了提升系统的安全,增大漏洞的攻击难度,提出了,称之为ASLR(Address Space Layout Randomization)。 ASLR通过随机放置进程关键数据区域的地址空间来防止攻击者能可靠地跳转到内存的特定位置来利用函数。 它是在程序运行时系统进行的操作,因而只能随机化stack、heap、libraries的基址。 现代操作系统一般都加设这一机制,以防范恶意程序对已知地址进行Return-to-libc攻击。 PIE类型/级别(ASLR保护参数值)1230: ASLR 关闭1: 随机化栈基地址(stack)、共享库(.so\libraries)、mmap基地址2: 在1基础上,增加随机化堆基地址(chunk) 来自博客(csdn) Linux系统设置ASLR ASLR存储在/proc/sys/kernel/randomize_va_space 注意:下面echo...
2024-11-14
ctfshow-pwn24 WP
正文题面提示题目给出提示可以使用shellcraft脚本生成shell。 分析pwn文件使用exeinfope查看可执行文件类型。发现是32位elf文件 使用IDA对pwn文件反编译。 看到hint:1Hint : NX disabled & Has RWX segments 结合题目提示发现可能是ret2text的题型。 进入ctfshow函数中,IDA无法生成该函数的伪代码,其汇编如下: 123456789101112131415161718192021222324252627buf= byte ptr -88hvar_4= dword ptr -4push ebpmov ebp, esppush ebxsub esp, 84hcall __x86_get_pc_thunk_bxadd ebx, (offset _GLOBAL_OFFSET_TABLE_ - $)sub esp, 4push 100h ; nbyteslea eax, [ebp+buf]push eax ...
