许大仙's Litt1ε Bl0g

一只想变成大佬的小白

「JarvisOJ」XMANlevel3_x64题解

一、解题思路 checesec查看 代码段和数据段不存在随机化,栈不可执行,无金丝雀值。 反汇编level3_x64,可知单纯靠elf=ELF(“./level3_x64”),引入level3_x64文件,是不能得到system函数的调用地址的。观察函数列表就知道,没有system函数,所以PLT表中没有system函数的条目[这个程序没有调用过system函数,故system不参...

「JarvisOJ」XMANlevel2_x64题解

一、解题思路 checksec查看,是老样子,和level0的情况一样。 对比level0_x64和level2_x64反汇编后的结果 vulnerable_function都一样 main函数有所不同。 发现main函数中有system的调用,system函数本身位于libc库中,是通过PLT+GOT表实现调用的,一方面可以通过ELF模块获得system_plt...

「JarvisOJ」XMANlevel0题解

day6 for XMAN level0 一、解题思路 果然level0就是要比level4简单啊。当然level0毕竟是64位的。 checksec level0查看到栈不可执行,但是NO PIE,无金丝雀值[为栈溢出攻击提供客观条件]。 通过ida64反汇编发现string view中有“/bin/sh”且函数列表中有“system”函数,想办法调用!就可以获得shell了....

metaspolit——制毒初试

本篇原文:https://www.cnblogs.com/20179204gege/p/7747655.html 原文写的很不错,在此基础上,以64位ubuntu+msf模块安装,和win 2000 SP4作为环境,进行实验 一、实验内容 1.使用kali/ubuntu+msf进行靶机[即受攻击机]的漏洞扫描,利用metasploit选择其中的一个漏洞进行攻击,并获取权限。 2.分析攻...

「JarvisOJ」XMANlevel4题解

day5:DynELF和gadgets学习 day6: XMANlevel4 DynELF模块介绍及简单使用 1.DynELF模块介绍及使用条件 DynELF是用于泄漏[leak]地址信息的模块,通过反复调用泄露漏洞,在被攻击机器的内存中不断搜索地址信息。官网给出的说明是:Given a function which can leak data at an arbitrary addre...

「JarvisOJ」XMANlevel3题解

day4:XMANlevel3 一、GOT表和PLT表 GOT(Global Offset Table)和PLT(Procedure Linkage Table)是Linux系统下面ELF格式的可执行文件中,用于定位全局变量和函数[动态库的]的数据信息.[一开始把GOT表和GDT表看重了,实际上完全不同。GOT+PLT表的目的就是为了在运行时重定位。] 在ELF文件的动态连接机制中,每...

「JarvisOJ」XMANlevel2题解

day3:XMANlevel2 一、peda中checksec命令 CANARY:(金丝雀值,指的是矿工曾利用金丝雀来确认是否有气体泄漏,如果金丝雀因为气体泄漏而中毒死亡,可以给矿工预警),类似于windows GS技术,当栈溢出发生时,canary值将在已保存的指令指针被重写前先改变。[canary放在栈中返回地址前,执行ret前检测canary的值]系统检测这个值是否改变[...

「JarvisOJ」XMANlevel1题解

day2:XMANlevel1 题目链接:https://www.jarvisoj.com/challenges 一、初入pwn 作为小白,甚至下载完level1.80eacdcd51aca92af7749d96efad7fb5都一脸懵逼。 按照pwn的思路,肯定是要反汇编的,所以level1应该是个可执行文件[即PE,ELF格式的文件],显然这个后缀不对,linux下后缀应该为....

pwn tools for pwntools、peda、ROPgadget

day1 for tools(pwntools,peda,ida) 一、pwntools 1.简介 pwntools是由Gallopsled开发的一款专用于CTF Exploit的Python库,包含了本地执行、远程连接读写、shellcode生成、ROP链的构建、ELF解析、符号泄漏等众多强大功能,可以说把exploit繁琐的过程变得简单起来。 2.安装 目前pwntools支...

GDT(全局描述符表)和LDT(局部描述符表)————[GDT、LDT、GDTR、LDTR解析]

每个程序都有自己的LDT,但是同一台计算机上的所有程序共享一个GDT。 LDT描述局部于每个程序的段,包括其代码、数据、堆栈等。 GDT描述系统段,包括操作系统本身。 一、引入 保护模式[Protected Mode]下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成 段描述符寄存器: 存储段描述符 选择器:存储段描述符...