ciscn_2019_s_3】的更多相关文章

拿到题目例行检查 64位程序开启了nx保护,将程序放入ida 看到没有system函数第一时间想到的就是泄露libc来做,后来才知道是我学识尚浅,需要用execve函数来做 进入main发现跳转到vuln,于是在进入vuln查看 定义了0x10可以写入0x400读取0x30,有明显的栈溢出 进入gadgets查看 经过网上的查询 mov rax,3bh是sys_execve系统调用,所以我们可以用execve(/bin/sh,0,0)获取shell -----------------------…
[BUUCTF]PWN21--ciscn_2019_s_3 附件 步骤 例行检查,64位,开启了NX保护 试运行的时候回显是一些乱码,直接用ida打开,从main函数开始看 main函数调用了vuln函数 __asm 关键字用于调用内联汇编程序,并且可在 C 或 C++ 语句合法时出现. 我们首先要了解一下64位系统的系统调用 传参方式:首先将系统调用号 传入 rax,然后将参数 从左到右 依次存入 rdi,rsi,rdx寄存器中,返回值存在rax寄存器 调用号:sys_read 的调用号 为…
32位与64位 系统调用的区别: 1. 传参方式不同 2. 系统调用号 不同 3. 调用方式 不同 32位: 传参方式:首先将系统调用号 传入 eax,然后将参数 从左到右 依次存入 ebx,ecx,edx寄存器中,返回值存在eax寄存器 调用号:sys_read 的调用号 为 3 sys_write 的调用号 为 4 调用方式: 使用 int 80h 中断进行系统调用 64位: 传参方式:首先将系统调用号 传入 rax,然后将参数 从左到右 依次存入 rdi,rsi,rdx寄存器中,返回值存在…
get_started_3dsctf_2016 关键词:ROP链.栈溢出.mprotect()函数 可参考文章(优质): https://www.cnblogs.com/lyxf/p/12113401.html #!python #coding:utf-8 from pwn import * from LibcSearcher import * context.log_level = 'debug' #context.arch = 'i386' elf = ELF('./get_started_…
[BUUCTF-Pwn]刷题记录1 力争从今天(2021.3.23)开始每日至少一道吧--在这里记录一些栈相关的题目. 最近更新(2021.5.8) 如果我的解题步骤中有不正确的理解或不恰当的表述,希望各位师傅在评论区不吝赐教!非常感谢! [OGeek2019]babyrop /dev/random和/dev/urandom是unix系统提供的产生随机数的设备,先产生一个随机数 输入放到buf里,然后与随机数比较,不等的话程序就结束了,于是将输入的第一个字母弄成'\0',以绕过strncmp 后…
这两题为什么要记录呢,一个是我发现网上很多教程没写清楚(也可能是我太菜了),二是细节点很多,不同的大佬方式不太一样,有很多细节需要注意 ciscn_2019_es_2 这题是栈迁移的题,先上exp 1 # encoding=utf-8 2 from pwn import * 3 4 context.log_level = 'debug' 5 leave_ret=0x08048562 6 sys = 0x8048400 7 p=process('./ciscn_2019_es_2') 8 p.re…
先放个例题吧,原理后面有时间再更:BUUCTF ciscn_2019_s_3 保护只开了nx 1 signed __int64 vuln() 2 { 3 signed __int64 v0; // rax 4 char buf[16]; // [rsp+0h] [rbp-10h] BYREF 5 6 v0 = sys_read(0, buf, 0x400uLL); 7 return sys_write(1u, buf, 0x30uLL); 8 } 1 .text:00000000004004ED…
温故而知新,可以为师矣.所以花了几天时间重新做了下 buuctf 的 pwn 题,先发下第一页共 32 题的题解.还有如果题解都很详细那么本文就太长了,写起来也浪费时间,所以比较简单的题就直接丢 exp 了,不懂可以去看其他人的题解,难的题我觉得我写的题解应该是挺详细的.截至到发文日期,只要是涉及 libc 的题目的 exp 都是能打通远程的.如有错误评论欢迎指正. test_your_nc 直接 nc 连接即可得到 shell rip 简单的 ret2text ,不过靶机是 ubuntu18…