• gopwn初探

    go pwn的特点 Golang 使用了自己的运行时和内存管理机制。Go 的堆栈是可扩展的(split-stack model),即每个 Goroutine 的堆栈大小可以动态扩展。这使得堆栈布局更加复杂,和固定大小的堆栈相比更难预测。 无标准栈帧,也就是不怎么依靠rbp作为栈帧指针(但实际那个位置有时还是维护rbp),通常通过rsp进行局部变量寻址。 Go 语言依赖垃圾回收器...
  • webpwn

    一、web与pwn的联系 在某些 Web 服务中,会通过调用二进制程序来处理特定请求,尤其是在涉及动态内容生成、脚本执行、数据处理等场景时。以下是一些常见的例子: 1. CGI (Common Gateway Interface) 概述: CGI 是一种通用的接口标准,允许 Web 服务器调用外部的二进制程序或脚本来生成动态内容。 调用方式: 当用户请求特定路径时,Web ...
  • CVE-2024-2961

    一、利用目的 在二进制程序调用iconv这个glibc函数时,或是在PHP从一个字符集转换到另一个字符集调用iconv这个API时,其中当编码转换为ISO-2022-CN-EXT时,iconv有可能会产生缓冲区溢出 二、利用方式 以从UTF-8转义到ISO-2022-CN-EXT为例。要触发此漏洞,我们需要迫使iconv()在输出缓冲区结束前发出一个转义序列。为此,我们可以使用诸如“劄...
  • mips_pwn

    一、mips架构概述 1.寄存器 寄存器 别名 用途 $0 $zero 常量0 $1 $at 保留给汇编器(Assembler Temporary)。在汇编过程中用于一些临时计算,程序员不应直接使用。 $2-$3 \(v0-\)v1 用于存储函数的返回值。 $4-$7 \(a0-\)a3 ...
  • Exploits under exception handling

    引入 在栈溢出漏洞中,程序没有控制或错误控制输入的大小导致了该漏洞的产生。那我们很自然会想到能不能用try throw catch的异常机制来捕获栈溢出行为,从而能更直观的获取错误信息,也在一定程度上避免了一些奇怪的错误产生。但在c++的异常处理实现中,如果我们放任输入数据超过缓冲区大小,冀以异常机制来捕获栈溢出,结果将不尽如人意,甚至还会导致canary保护机制的绕过。 原理&am...
  • self-made sandbox

    由于最近要打几场awd,一个一个漏洞改过来感觉有点麻烦,所以想到了上沙箱,但是一般好像比赛会禁止上通防,这里想试试看自己通过系统调用写一个沙箱出来,看看能不能瞒天过海。 一、c代码实现沙箱 不是很清楚沙箱具体用到的系统调用,所以先让gpt生成了一段正常用c语言实现的沙箱代码。 1234567891011121314151617181920212223242526272829303132...
123