- 博客(45)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 2016_0CTF_warmup
考点:stackoverflow,orw,alarm1.安全策略[*] '/root/ctf/buuctf/pwn/warmup' Arch: i386-32-little RELRO: No RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000)开启了NX,不能写入shellcode。2. 分析本题的题目反编译后发现其中调用的方法都是
2022-03-22 15:18:24
606
原创 babyheap_0ctf_2017
BUUCTF 靶场CTF wiki安全策略[*] '/root/ctf/buuctf/pwn/babyheap_0ctf_2017' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled这题防护全开,尤其注意开启了Full RELRO,这样没办法通过劫持GOT表来getshell,可以
2022-03-02 23:42:05
370
2
原创 Asis CTF 2016 b00ks
例题 Asis CTF 2016 b00ks`题目链接1. 安全策略[*] '/root/ctf/Other/pwn/heap/b00ks' Arch: amd64-64-little RELRO: Full RELRO Stack: No canary found NX: NX enabled PIE: PIE enabled开启了full RELRO,因此无法直接进行GOT表劫持。开启了PIE,也导致不能直接用
2022-02-22 14:42:41
3538
原创 【pwn学习】堆溢出(四)- off-by-one 漏洞
off-by-one 漏洞前置学习【pwn学习】堆溢出(一)【pwn学习】堆溢出(二)- First Fit【pwn学习】堆溢出(三)- Unlink和UAFoff-by-one是一种特殊的溢出漏洞,指只溢出一个字节的情况。造成原因造成off-by-one的原因常常是因为边界验证不充分。循环写入时,循环次数设置错误导致多写入了一个字节;字符串操作有误;strlen 是我们很熟悉的计算 ascii 字符串长度的函数,这个函数在计算字符串长度时是不把结束符 '\x00' 计算
2022-02-16 20:41:47
1224
原创 2014 HITCON stkof writeup
文章目录writeup题目链接1、查看安全策略root@kali:~/ctf/Other/pwn/heap# checksec stkof[*] '/root/ctf/Other/pwn/heap/stkof' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)可以看
2022-01-24 15:56:22
2176
原创 【pwn学习】格式化字符漏洞
文章目录什么是格式化字符漏洞格式化字符串函数格式化字符串利用泄露内存例题 利用格式化字符串漏洞获取libc基址覆盖内存栈地址覆盖小数覆盖大数覆盖轮子什么是格式化字符漏洞格式化字符串函数可以接受可变数量的参数,并将第一个参数作为格式化字符串,根据其来解析之后的参数。通俗来说,格式化字符串函数就是将计算机内存中表示的数据转化为我们人类可读的字符串格式。几乎所有的 C/C++ 程序都会利用格式化字符串函数来输出信息,调试程序,或者处理字符串。一般来说,格式化字符串在利用的时候主要分为三个部分。格式化字符串函
2021-12-29 14:51:12
6478
5
原创 【PWN学习】ELF保护机制
文章目录NX防御机制绕过方法编译参数Canary防御机制绕过方法编译参数RELRO防御机制ASLR防御机制绕过方法PIE防御机制绕过方法ReferenceNX防御机制NX在windows中称为DEP。开启NX保护的程序中不能直接使用shellcode执行任意任意代码。栈溢出的核心在于修改了EIP的值,是程序跳转到shellcode上,从而远程执行命令。在利用的时候需要先写入一段获取shell的代码,然后在执行这一段代码,这就要求存储shellcode的内存区域需要同时拥有写入和执行的权限。而NX的保
2021-12-27 14:13:03
3420
原创 ret2shellcode writeup
查看安全策略root@kali:~/ctf/Other/pwn# checksec ret2shellcode [*] '/root/ctf/Other/pwn/ret2shellcode' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX disabled PIE: No PIE (0x8048000) RWX: .
2021-12-22 09:25:54
416
原创 【pwn学习】pwn中的简单shellcode
编写简单的shellcode在linux32位系统中,最简单的获取shell的方式是通过系统调用execve获得execve('/bin/sh',0,0);写成汇编的话如下:global _start_start: xor edx, edx xor ecx, ecx push '/sh' push '/bin' mov ebx, esp mov eax, 0xb int 80h编译
2021-12-20 09:10:37
1369
原创 【pwn学习】GOT表劫持
文章目录例题GOT表劫持获取Syscallopen-read-write利用系统调用号调用open构造payload获取syscall读取flag文件exp例题例题:XCTF-008-Recho查看安全策略root@kali:~/ctf/xctf/pwn# checksec 008_Recho [*] '/root/ctf/xctf/pwn/008_Recho' Arch: amd64-64-little RELRO: Partial RELRO Stac
2021-12-15 16:50:14
4222
1
原创 ret2Syscall writeup
例题: ret2Syscall查看安全策略[*] '/root/ctf/Other/pwn/ret2syscall' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000)开启了NX enabled查看字符串和方法未发现可以利用直接或间接调用的system函
2021-12-14 21:24:30
1398
原创 VScode不支持jdk1.8的解决方案
首先参考官方文档的解释Note: The Java language server requires JDK version 11 or above to launch it self, but this is NOT a requirement to your projects’ runtime. Check Settings for the JDK for more information about how to set the JDK for the extension itself.即这里
2021-12-11 14:31:31
9691
1
原创 【pwn学习】ROP(更新中)
什么是ROP?ROP(Return Oriented Programming),其主要思想是在栈缓冲区溢出的基础上,利用程序中已有的小片段(gadgets)来改变某些寄存器或者变量的值,从而控制程序的执行流程。gadgets就是以ret结尾的指令序列。ROP主要是针对NX保护而诞生的方法,NX开启后,难以直接向栈或者堆上注入代码,因此需要利用gadgets来构建可控的程序流。
2021-12-10 17:15:16
813
原创 【PWN学习】如何获取libc基址
在解pwn题的时候,如果程序中没有可以获得shell的函数,通常会通过got表中调用函数来获取libc基址,然后通过libc获取要用的system函数和binsh字符。
2021-12-09 22:03:07
9702
1
x64程序中参数为结构体的时候,程序如何判断预留栈空间的大小
2021-11-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人