简单的栈溢出 payload from LibcSearcher import * from pwn import * context.terminal = ['terminator', '-x', 'sh', '-c'] context.log_level = …
无符号和有符号整型 数据元素类型:unsigned(无符号整型) C语言中,无符号整型数是不带正负表示符号的整型数。C语言在计算机里编译时数都是用二进制表示的,如果最左边这一位不用来表示正负,而是和后面的连在一起表示整数,那么就不能区分这个数是正还是负,就只能是正数,这就是无符号整型数。 unsigned a=-6; printf("%u…
刷题多了对寄存器开始有着一定的了解了,这篇文章就来总结一下。 六十四位汇编 当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。 当参数为7个以上时, 前 6 个与前面一样, 但后面的依次从 “右向左” 放入栈中,即和32位汇编一样。 参数个数大于 7 个的时候 H(a, b, c, d, e, f,…
mprotect函数详解 在Linux中,mprotect()函数可以用来修改一段指定内存区域的保护属性 函数原型如下: #include <unistd.h> #include <sys/mmap.h> int mprotect(const void *start, size_t len, int prot); mprot…
这道题有两种解法,特地记录一下。 题目分析 先看保护,就只开了个NX保护 main函数很明显的栈溢出 字符串搜索出flag字段,点进去ctrl+x追踪过去 解题思路 思路一 这题在get_secret函数中通过fopen将flag的内容读入了unk_80CF91B中,我们通过查找可以在程序中发现write函数,通过write函数可以读取出bss字段…
今天刷题的时候又学到个东西,这道题可以直接栈溢出到getflag的位置,然后拿到flag。 payload from pwn import * context.log_level = 'debug' p = remote("node4.buuoj.cn",26382) payload = b'a…
简单介绍 Format String漏洞 即格式化字符串漏洞 具体详解可以看这篇文章 详谈Format String(格式化字符串)漏洞:https://www.cnblogs.com/0xJDchen/p/5904816.html %d 用于读取10进制数值 %x 用于读取16进制数值 %s 用于读取字符串值 %n 用于讲当前字符串的长度打印到v…
前言 ret2libc 应该是栈溢出里面的一个难点了,在这点上也卡了很久,现在做个学习记录 ret2libc 思路 ROPgadget --binary ./ciscn_2019_c_1可以查看文件拥有的gadget。 一般在溢出的时候都需要用到pop rdi;ret来控制puts从而控制输出,如果是系统版本大于等于ubuntu18的话还会需要用到…
一、原题链接 bugku-pwn4 二、简单解题思路 0x01、查看程序保护 开启了canary保护和NX保护 0x02、main的栈 int __cdecl main(int argc, const char **argv, const char **envp) { char buf[48]; // [rsp+10h] [rbp-240h] BY…