go pwn的特点
Golang 使用了自己的运行时和内存管理机制。Go
的堆栈是可扩展的(split-stack model),即每个 Goroutine
的堆栈大小可以动态扩展。这使得堆栈布局更加复杂,和固定大小的堆栈相比更难预测。
无标准栈帧,也就是不怎么依靠rbp作为栈帧指针(但实际那个位置有时还是维护rbp),通常通过rsp进行局部变量寻址。
Go 语言依赖垃圾回收器...
一、web与pwn的联系
在某些 Web
服务中,会通过调用二进制程序来处理特定请求,尤其是在涉及动态内容生成、脚本执行、数据处理等场景时。以下是一些常见的例子:
1. CGI (Common Gateway
Interface)
概述: CGI 是一种通用的接口标准,允许 Web
服务器调用外部的二进制程序或脚本来生成动态内容。
调用方式: 当用户请求特定路径时,Web ...
一、利用目的
在二进制程序调用iconv这个glibc函数时,或是在PHP从一个字符集转换到另一个字符集调用iconv这个API时,其中当编码转换为ISO-2022-CN-EXT时,iconv有可能会产生缓冲区溢出
二、利用方式
以从UTF-8转义到ISO-2022-CN-EXT为例。要触发此漏洞,我们需要迫使iconv()在输出缓冲区结束前发出一个转义序列。为此,我们可以使用诸如“劄...
一、mips架构概述
1.寄存器
寄存器
别名
用途
$0
$zero
常量0
$1
$at
保留给汇编器(Assembler
Temporary)。在汇编过程中用于一些临时计算,程序员不应直接使用。
$2-$3
\(v0-\)v1
用于存储函数的返回值。
$4-$7
\(a0-\)a3
...
引入
在栈溢出漏洞中,程序没有控制或错误控制输入的大小导致了该漏洞的产生。那我们很自然会想到能不能用try
throw
catch的异常机制来捕获栈溢出行为,从而能更直观的获取错误信息,也在一定程度上避免了一些奇怪的错误产生。但在c++的异常处理实现中,如果我们放任输入数据超过缓冲区大小,冀以异常机制来捕获栈溢出,结果将不尽如人意,甚至还会导致canary保护机制的绕过。
原理&am...
由于最近要打几场awd,一个一个漏洞改过来感觉有点麻烦,所以想到了上沙箱,但是一般好像比赛会禁止上通防,这里想试试看自己通过系统调用写一个沙箱出来,看看能不能瞒天过海。
一、c代码实现沙箱
不是很清楚沙箱具体用到的系统调用,所以先让gpt生成了一段正常用c语言实现的沙箱代码。
1234567891011121314151617181920212223242526272829303132...