两道64位栈溢出,思路和之前的32位溢出基本一致,所以放在一起 在这两道中体现的32位和64位的主要区别在于函数参数传递的方式 在32位程序运行中,函数参数直接压入栈中 调用函数时栈的结构为:调用函数地址->函数的返回地址->参数n->参数n-1->···->参数1 在64位程序运行中,参数传递需要寄存器 64位参数传递约定:前六个参数按顺序存储在寄存器rdi, rsi, rdx, rcx, r8, r9中 参数超过六个时,从第七个开始压入栈中 Level2_x64   和3…
简单利用"/bin/sh"夺权 简单看一下 放到ida中发现了"/bin/sh"串,和system函数,可以利用== 所以只要在vuln函数返回时跳转到system函数,同时添加参数"/bin/sh"就可以实现啦 #!/usr/bin/env python # -*- coding: utf-8 -*- from pwn import * io = remote("pwn2.jarvisoj.com",9878) elf =…
Jarvis OJ - [XMAN]level1 - Writeup M4x原创,转载请表明出处http://www.cnblogs.com/WangAoBo/p/7594173.html 题目: 分析 checksec检查保护机制如下,NX没开,可以通过执行shellcode来get shell 拖到IDA中,查看函数的流程,vulnerable_function函数打印了缓冲区的起始地址,read可以读取0x100个字符,而buf到ret的偏移为0x88 + 0x4 < 0x100,而该el…
Jarvis OJ - Baby's Crack - Writeup M4x原创,欢迎转载,转载请表明出处 这是我第一次用爆破的方法做reverse,值得记录一下 题目: 文件下载 分析: 下载后解压有exe和flag.enc两个文件,初步推测flag.enc是用exe加密后的文件,我们只需要分析exe的加密算法,还原flag.enc的明文即可 exe无壳,拖到IDA中用F5大法,找到关键代码: // local variable allocation has failed, the outpu…
这次除了elf程序还附带一个动态链接库 先看一下,很一般的保护 思路分析 在ida中查看,可以确定通过read函数输入buf进行溢出,但是并没有看到合适的目标函数 但是用ida打开附带的链接库,可以看到system函数和"/bin/sh"字符串都存在 于是思路就确定为read函数溢出->system函数,同时加入参数"/bin/sh" 通过libc.so文件可以得到write.system和/bin/sh的偏移,但system和/bin/sh在内存的地址是未知…
100分的pwn 简单查看一下,果然还是比较简单的 放到ida中查看一下,有明显的溢出函数,并且在函数中打印出了字符串的地址,并且字符串比较长,没有NX保护 所以我们很容易想到构造shellcode,在栈中执行shellcode拿shell权限 shellcode是一段恶意代码,在没有NX保护程序中,可能作为输入而写进栈,之后运行到此处时可以执行shellcode指令从而达到目的 所以我们先截取buf的地址,在buf中写入夺shell的shellcode,之后再用buf的地址覆盖函数返回地址 从…
差不多最简单的pwn了吧,不过本菜鸟还是要发出来镇楼 分析一下,checksec 查看程序的各种保护机制 没有金丝雀,没有pie 执行时输出Hello,World,在进行输入,溢出嘛  开工 丢到ida里看看,先看看有价值的strings,除了输出的helloworld 还发现了"/bin/sh",获取shell的函数都写好啦,是callsystem 继而发现在main函数执行时调用的vulnerable_function()存在不安全的read输入,可以看到buf的长度为0x80+0…
首先 老规矩,把软件拖到Ubuntu里checksec一下文件 然后知道了软件位数就放到IDA32里面... 熟悉的函数名... 缘真的妙不可言... 然后看了下vulnerable_function函数的栈结构 算了下 vulnerable_function中的read函数准备给buf 0x100的空间 但是buf却用了0x88+0x4就结束了vulnerable_function函数.. (0x88 + 0x4)<(0x100) 所以这里出现了栈溢出 但是,我F12+Shift一下却没发现有…
最近做了Jarvis OJ的一部分pwn题,收获颇丰,现在这里简单记录一下exp,分析过程和思路以后再补上 Tell Me Something 此题与level0类似,请参考level0的writeup http://www.cnblogs.com/WangAoBo/p/7591552.html #!/usr/bin/env python # -*- coding: utf-8 -*- __Auther__ = 'M4x' from pwn import * elf = ELF('./guest…
[XMAN]level 0 [XMAN]level 1 —— 简单shellcode利用 [XMAN]level 2 [XMAN]level 3 —— ret2libc尝试 [XMAN]level2&level3 x64 [XMAN]level 4 —— DynELF [XMAN]level 5 smashes ——SSP leak & ELF重映射 Test Your Memory ----?level1? /***************************************…