
Linux User Pwn
文章平均质量分 97
Linux User Pwn
_sky123_
这个作者很懒,什么都没留下…
展开
-
LLVM PASS pwn
LLVM的核心是一个库,其设计了一种通用的LLVM IR,并提供一系列接口来操作LLVM IR,生成目标平台代码等等后端的功能.LLVM Pass就是遍历传入的IR并进行一些处理,在实现上,LLVM的核心库中存在一些Pass类,通过继承这些类并重载一些方法,就可以方便的处理传入的IRLLVM Pass的用处:在Pass遍历LLVM IR的同时,就可以非常方便的完成插桩,静态分析,机器无关的代码优化等等操作.下面列出了几个重要的命令行工具.llvm-asLLVM IRllvm-disllvm-asopt。原创 2023-03-22 22:27:28 · 814 阅读 · 0 评论 -
musl pwn
调试环境搭建debug_musl 可以源码调试。运行 setup.sh 将源码及相关动态链接库解压到根目录下 musl 文件夹下,用的时候只需要将对应版本的 libc.so 文件复制到目录下,然后利用 patchelf 运行如下命令修改可执行文件所依赖的 ld 为 libc.so 即可进行源码调试。patchelf --set-interpreter ./libc.so ./pwn另外该项目中的 build.sh 可以自动下载和编译 musl 到根目录下的 musl 文件夹中,建议在 ubuntu原创 2023-04-03 01:27:29 · 1279 阅读 · 0 评论 -
linux pwn 基础知识
环境搭建虚拟机安装镜像下载网站为了避免环境问题建议 22.04 ,20.04,18.04,16.04 等常见版本 ubuntu 虚拟机环境各准备一份。注意定期更新快照以防意外。虚拟机建议硬盘 256 G 以上,内存也尽量大一些。硬盘大小只是上界,256 G 不是真就占了 256 G,而后期如果硬盘空间不足会很麻烦。基础工具vimsudo apt install vimgedit不习惯 vim 的可以使用 gedit 文本编辑器。sudo apt install geditgit原创 2023-08-11 17:12:36 · 3304 阅读 · 0 评论 -
linux 栈溢出
栈基础知识栈结构函数调用过程32位为例:KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲& \text{push a…函数参数传递32位程序普通函数传参:参数基本都压在栈上(有寄存器传参的情况,可查阅相关资料)。syscall传参:eax对应系统调用号,ebx、ecx、edx、esi、edi、ebp分别对应前六个参数多余的参数压在栈上。64位程序:普原创 2022-02-01 20:57:34 · 4235 阅读 · 0 评论 -
linux 格式化字符串漏洞
格式化字符串漏洞格式化字符串介绍常见格式化字符串函数函数基本介绍printf输出到stdoutfprintf输出到指定FILE流vprintf根据参数列表格式化输出到stdoutvfprintf根据参数列表格式化输出到FILE流sprintf输出到字符串snprintf输出指定字节数到字符串vsprintf根据参数列表格式化输出到字符串vsnprintf根据参数列表格式化输出指定字节到字符串常用格式化字符串形式%[p原创 2022-02-04 20:08:21 · 2348 阅读 · 0 评论 -
linux 堆利用
堆利用Unlink假设正常情况下,每申请一个 chunk 会保存一个指向该 chunk 内存块的指针。在 chunk1 中构造 fake chunk ,需要注意:为了绕过if (__builtin_expect(FD->bk != P || BK->fd != P, 0)) malloc_printerr(check_action, "corrupted double-linked list", P, AV);令:fake原创 2022-02-18 14:47:09 · 5487 阅读 · 1 评论 -
linux IO_FILE 利用
基本结构_IO_FILE_plus定义如下:struct _IO_FILE_plus{ FILE file; const struct _IO_jump_t *vtable;};包括一个结构体 file 和一个指针 vtable 。其中 vtable 指向一个函数指针表,很多 IO_FILE 的攻击都是围绕它展开的。_IO_FILE_plus 类型的结构有 _IO_2_1_stdin_ 、 _IO_2_1_stdout_ 和 _IO_2_1_stderr_ 。另外有头指针 _IO_原创 2022-03-29 16:17:32 · 44317 阅读 · 2 评论 -
linux 堆利用基础知识
ptmalloc2 是目前 Linux 标准发行版中使用的堆分配器。malloc 函数返回对应大小字节的内存块的指针。此外,该函数还对一些异常情况进行了处理:用以扩展 chunk,相邻 chunk 闲置且空间充足则会进行合并,否则会重新分配 chunk。即通过 realloc 我们可以完成对一个 chunk 的 free,也就是说在特殊情况下 realloc 是可以当作 free 使用的,其中,在size 为 0 的情况下,realloc 函数会调用 free 释放该 chunk。该函数在分配时会清空 ch原创 2022-07-13 20:23:01 · 3956 阅读 · 1 评论