8.8k8 分钟

# 1. 基础命令 # 1. ls 命令(查看当前目录文件) 这里我创建一个 .2021cyb 的隐藏文件,利用 ls -all 查看文件和执行权限 # 2. chmod 命令(修改权限) 在上面利用 ls 命令查看文件 .2021cyb 的权限(d 表示文件夹,拥有者 rwx;组群 r-x;其他 r-x), 改变组群权限为 可读可写 ,其他权限为 可执行 chmod 761 .2021cyb 权限: 4 对应 r;2 对应 w;1 对应 x(也就是二进制 100,010,001) # 3. cd 命令(更改当前目录) 进入前面创建的文件 cd .2021cyb 从该目录进
2.3k2 分钟

# Move 一道栈迁移的题 开启了 NX 无法写入 shellcode 去执行 vunl 函数里的 read 可以进行溢出,但是只能溢出 0x10 个字节,不能满足我们构造 rop 的大小,但是 main 函数里第一个 read 写 0x20 个字节往 bss 段内,这个大小可以用来构造 rop,所以要进行栈迁移 # 栈迁移: 栈迁移要利用 leave 和 ret leave: mov esp , ebp pop ebp ret: pop eip 首先要利用栈迁移需要通过溢出来改写部分数据,将 ebp 的值改为伪造的栈的栈顶, ret 一般改到 read 处来改写伪造的栈的
2k2 分钟

# 1. std::allocator 动态内存管理 - 分配器, std::allocator 类模板是所有标准库容器所用的默认分配器 ( Allocator ) ,若不提供用户指定的分配器。默认分配器无状态,即任何给定的 allocator 实例可交换、比较相等,且能解分配同一 allocator 类型的任何其他实例所分配的内存。 在 C++ 中,std::allocator 是一个模板类,用于分配和释放内存。它是标准库中的一部分,并用于动态分配和管理内存块。 std::allocator 模板类的参数是要分配的对象类型。在这种情况下,std::allocator<char
1.4k1 分钟

# 1.ubuntu22.10(这里对 ubuntu 进行更新) 清华源用 update 报错(出现 404) 换成中科大的源就好了 (23.04 的源) deb https://mirrors.ustc.edu.cn/ubuntu/ lunar main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ lunar main restricted universe multiverse deb https:&#x
22k20 分钟

# pwn47(ret2libc) # 题目: ez ret2libc 32 位程序保护只有 Partial RELRO cint ctfshow()&#123; char s[152]; // [esp+Ch] [ebp-9Ch] BYREF puts("Start your show time: "); gets(s); return puts(s);&#125;有 gets 函数,然后也执行了 puts,可以进行泄露得到 libc 基址 nfrom pwn import *from LibcSearcher import *
2.4k2 分钟

# pwn1 eval 漏洞利用参考: https://xuanxuanblingbling.github.io/ctf/pwn/2020/02/01/calc/ https://juniorprincewang.github.io/2017/10/01/pwnable-tw 之 calc/ https://lonmar.cn/2022/02/23/pwnabletw-calc
4.4k4 分钟

# pwn1 note1 # 1. 程序分析 64 位程序,发现保护全开了 ~~![](/2022picture/1.png)~~ # ida 查看一下: main: ~~![](/2022picture/2.png)~~ v3=1时: 这里发现对于输入的 tag 始终是在 先 创建的 0x20 的 chunk 中,而对于 name 的 chunk 是 tag 的下一个;并且这里发现 func1、2、3 没有任何区别 v3=2时: 看到这里对 name 、 tag 、 func 都可以重新编辑了 v3=3时:
1.3k1 分钟

# 1. 简介(在编译时进行设置): fority 是轻微的检测,用于检查缓冲区溢出的错误,在程序采用打量的字符串或者内存操作函数适用,例如:memcpy、memset、stpcpy、strcpy、strncpy、strncat、sprintf、snprintf、vsprintf、gets 以及宽字符的变体。 # 2. 作用: FORTIFY_SOURCE 是一个 C/C++ 编译器提供的安全保护机制,旨在防止缓冲区溢出和其他与字符串和内存操作相关的安全漏洞。它是在编译时自动 插入的一组额外代码 ,用于增强程序对于缓冲区溢出和其他常见安全问题的防护。 FORTIFY_SOURC
6.2k6 分钟

# 1.Large bin # 1. 在释放堆块时,想要进入 large bin 的堆块需要大于等于 512 (1024)字节【用户空间需要 大于等于 0x3F0,用户空间小于 0x3F0 进入 small bin 】 而 largebin 还要考虑 fd_nextsiez 和 bk_nextsize ,这两个是因为,在 largebin 中,会按着相同大小的 chunk 归到一起,不同 chunk 组直接的联系就需要 fd_nextsize 和 bk_nextsize 。这里除了每组的第一个 chunk ,其他的 fd_nextsize 和 bk_nextsize 都为 0 f
1.7k2 分钟

# 前言 ASLR 与 PIE 是不同的,两者不能认为是同一个机制,但是他们都是对地址进行 随机化 ,只不过作用的 对象 和作用 时期 不太一样 # 1.ASLR (操作系统的功能): ASLR 是 Linux操作系统 的功能选项,作用于程序 (ELF) 装入 内存 运行时。是一种针对缓冲区溢出的安全保护技术,通过对加载地址的随机化,防止攻击者直接定位攻击代码位置,到达阻止溢出攻击的一种技术。 # 打开 / 关闭 ASLR: # 查看 ASLR 打开情况: lsudo cat /proc/sys/kernel/randomize_va_sp