自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 buu刷题记录

1.text_your_nc签到题,直接nc一下2.ripchecksec一下,发现没开啥保护,是64位程序丢进ida,发现gets函数存在栈溢出漏洞同时发现fun函数,那就是ret2text的题型。找偏移,构造payloadfrom pwn import *#context.log_level='debug'p = remote('node5.buuoj.cn',29576)system = 0x4001187payload = b'a' * 23

2024-09-19 20:28:05 273

原创 idea-pwn

所以我再次回到vuln函数,还是刚刚的get_n,通过下方的if语句,它只是限制了v1不能超过32,但是如果我输入-1呢?既然我已经判断题目是ret2libc,那我肯定是需要借助漏洞来找到libc的基地址,我此时就想,那我可不可以利用格式化字符串的漏洞找出已经执行过的函数的真实地址,进而找出libc的基地址呢?可以直接写出第一段payload了。此时可以直接获取puts函数的真实地址,剩下的就是ret2libc,计算libc的基地址,找到system和/bin/sh的地址,获取shell。

2024-09-16 20:04:11 402

原创 PWN整数溢出

在C语言中,整数的基本数据类型分为短整型(short),整形(int),长整型(long),每一个数据类型分为有符号数和无符号数,每种数据类型都有各自的大小范围。(数据类型的大小范围是由编译器决定的,所以以下范围默认是64位下使用gcc-5.4)当程序中的数据超过其数据类型的范围,就会造成溢出,整数类型的溢出被称为整数溢出。

2024-09-11 17:44:53 394

原创 格式化字符串漏洞

printf函数是C语言中的格式化输出函数,它对于每一个格式串(%s、%n...),printf函数都会在栈中寻找一个变量,并将其视为一个字符串的地址,然后printf会尝试寻找这些地址所对应的字符串,将其复制到格式化字符串中去输出,如果栈中的值指向的地址无法访问或不存在,那么printf就会输出空值。如果printf函数未写明格式化字符串,只写出了对应的参量,那我们就可以任意输出带有特定目的的格式化字符串来泄露或是篡改栈上的值从而获取程序控制流。函数返回值:打印出的字符格式。2.泄露任意地址内存。

2024-09-10 17:52:17 488

原创 返回导向编程

对于32位程序我们需要eax寄存器来存储系统调用号,一般情况下,我们的思路是通过系统调用执行:execve('/bin/sh',null,null),这里需要注意传入的是/bin/sh的地址,然后通过gaget修改ebx,ecx,edx寄存器的值,最后进行系统调用(int 80 指令的地址)64位程序的传参方式和32位程序有所不同,若参数小于6个,参数传递利用的寄存器以此为:rdi,rsi,rdx,rcx,r8,r9,除此之外,系统调用号通过rax传递,最后进行系统调用(syscall指令的地址)

2024-09-10 17:05:52 320

原创 ret2syscall

如果文件开启了NX保护,那直接在栈上写入shellcode以获取shell的攻击手法变得难以执行,除了寻找其他可写可执行的段(bss)以期写入shellcode的方法外,还可以考虑利用文件中已有的gaget来改变某些寄存器或者某些变量的值,从而控制程序执行流。ROP攻击一般需要满足一下条件1.32位程序。

2024-09-10 14:07:52 315

原创 2024 BaseCTF

拿到题目同样我们先用checksec检查一下保护发现题目只开启了数据段不可执行的保护,所给文件为64位的可执行文件,丢进ida里发现read函数存在栈溢出漏洞,同时未发现后门函数。题目中还给出了libc,所以我们自然想到此题型为ret2libc3,我们首先需要泄露出已知函数在libc中的地址,从而算出基地址,后根据libc中system函数的地址和/bin/sh的地址来构造payload,从而获取shell.

2024-09-03 21:58:20 1133

原创 2024 BaseCTF

打开环境发现除了echo命令什么命令都是无效的但是如果我直接打开文件呢?一般flag都藏在根目录下,利用相对路径./flag尝试获取flag,虽然仍然报错,但是我们还是成功获取到flag。

2024-08-21 20:44:15 1360

原创 栈溢出基础

压栈时变小,退栈时变大先入后出如果在一个函数中调用另一个函数,编译器就会对应生成一条call指令,当程序执行到这条call指令时,就会跳到对应的函数入口处开始执行,而每一个函数的最后,都有一条return指令,负责在函数结束后跳回到调用处继续执行。

2024-08-03 21:17:45 567

原创 [NewStarCTF 公开赛赛道]ret2text 94

在main函数打个断点进行动态分析发现共需填入0x20个字符型数据,且还需填写8个数据将原来末尾的数据覆盖,然后将main函数的返回地址写为后门函数的地址,写出攻击脚本。根据题目ret2text的提示,我们可以构造payload,在栈内填充垃圾数据,从而使得main函数的返回地址为后门函数的地址,进而拿取到机器的控制权,获取flag.利用pwndbg进行动态分析时发现没有执行权限,所以我们要利用chmod命令加权。确实是后门函数,并且有函数存在栈溢出的漏洞。发现一个后门函数,点进去确认一下。

2024-07-31 22:25:14 270

原创 二进制基础

可执行文件2.可执行文件。Windows:PE可执行程序(.exe)、动态链接库(.dll)、静态链接库(.lib)Linux:ELF可执行程序(.out)、动态链接库(.so)、静态链接库(.a)二、Linux下的可执行文件ELF。

2024-07-29 11:34:54 728

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除