自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 bjdctf_2020_babystack2

bjdctf_2020_babystack2Checksec:Ida:我们输入的数字就是read函数读入的长度,但存在一个if检查不能>10但没有判断类型所以存在整数溢出漏洞,输入负数就能绕过,同时程序存在后门函数backdoorExp:Flag;...

2021-11-18 18:31:11 117

原创 get_started_3dsctf_2016

get_started_3dsctf_2016题目Ubuntu 16Checksec一下Main函数里get存在溢出点offest=0x38Get_flag函数只需要我们输入正确的a1,a2就会给我们flag于是我们构造exp:这里有个问题要用exit()去退出main()远端才能打通Exp:成功得到flag:...

2021-11-18 18:17:37 104

原创 ez_pz_hackover_2016

ez_pz_hackover_2016Checksec:Ida:Fgets会读取我们的输入但存在一个strlen检查,我们知道strlen在读入/x00就会停止。同时当我们的输入包含crashme的时候会进入vlun函数,Vlun函数里的memcpy会拷贝我们之前的输入,存在溢出所以我们只需要构造payload=crashme/x00+偏移+返回地址+shellcode就行了Crashme/X00到ebp的偏移:0xffffcd58-0xffffcd42=0x16

2021-11-18 17:59:20 145

原创 jarvisoj_tell_me_something

jarvisoj_tell_me_somethingChecksec:Ida:Read函数存在溢出,offest=0x88存在后门函数good_game,plt地址0x400620exp:Flag:

2021-11-17 19:11:23 90

原创 jarvisoj_level3

jarvisoj_level3Checksec:Ida:标准的ret2libc,offest=0x88+4有write和read的plt地址Exp:from pwn import*from LibcSearcher import*r=remote("node4.buuoj.cn",26088)elf=ELF('./level3')context.log_level = 'debug'payload=flat('a'*0x88+'bbbb')payload+=

2021-11-17 17:29:23 656

原创 ciscn_2019_es_2

ciscn_2019_es_2Checksec:Ida:Read函数存在溢出点但溢出长度比较小只能到ret,程序中存在system函数但没有sh字段所以要栈迁移(修改ebp)确定EBP到s的偏移:0x198-0x160=0x38Exp:Flag:

2021-11-16 21:46:47 190

原创 [HarekazeCTF2019]baby_rop2

[HarekazeCTF2019]baby_rop2Checksec:Ida:很容易看到read存在溢出,offest=0x28程序中没有system函数和sh字段我们要用ret2libc绕过nx保护程序中存在printf函数我们用它来泄漏libc基址先找到printf需要填的rdi和rsiExp:from pwn import * from LibcSearcher import *context.log_level='debug'r=remote("n

2021-11-16 20:48:33 896

原创 ciscn_2019_s_3

ciscn_2019_s_3Checksec:Ida:看到代码量很少,同时出现了syscall基本上这题就是srop了。接下来确定溢出,offest=0x10srop :伪造 sigreturn frame 去 伪造 execve("/bin/sh",0,0) 来 getshell我们已经确定了offest还需要完成1,需要知道栈的地址(比如需要知道自己构造的字符串`/bin/sh`的地址);2,需要知道`syscall`指令在内存中的地址;3,需要知

2021-11-16 17:51:00 1224

原创 pwn2_sctf_2016

pwn2_sctf_2016Checksec:Ida:箭头处存在整数溢出漏洞,buff的长度是我们的输入控制的,我们直接输入一个负数就能得到可以溢出的buff大小。然后程序中存在printf的plt地址,我们用他去泄露libc基址来绕过nxExp:from pwn import *from LibcSearcher import *context(log_level='debug')r = remote("node4.buuoj.cn",29425)elf =

2021-11-16 17:47:55 1262

原创 jarvisoj_fm

jarvisoj_fmChecksec:Ida:很明显的格式化字符串漏洞并且我们将x修改为4程序就会给我们调用system函数偏移gdb .%p都能确定,利用方式%$n,pwntools的fmstr模块都行可以看我之前写的pwn5的wp有详细说Exp:Flag:...

2021-11-15 17:01:36 470

原创 bjdctf_2020_babyrop

bjdctf_2020_babyropUbuntu16Checksec:Ida:标准的ret2libc,有puts函数,offest=0x28Exp:from pwn import *from LibcSearcher import *context(log_level='debug')p = remote("node4.buuoj.cn",26832)elf = ELF('./bjdctf_2020_babyrop')read_got = elf.got['re

2021-11-15 16:40:46 905

原创 铁人三项(第五赛区)_2018_rop

铁人三项(第五赛区)_2018_ropUbuntu18Checksec:Ida:可以很容易找到read函数存在溢出offset=0x88+4程序没有system函数和sh字段,ret2libc来绕过nxExp:from pwn import * from LibcSearcher import*r=remote("node4.buuoj.cn",29553) elf=ELF("./2018_rop")vul_addr=elf.sym['main'

2021-11-15 16:18:41 3022

原创 ciscn_2019_ne_5

ciscn_2019_ne_5Checksec:Ida:首先会让我们输入密码,密码正确就会进入一个switch循环我们看到循环中case4是调用catflag函数,跟进查看Catflag函数中存在strcpy(dest,src)dest(offest)=0x44+4,只要我们能控制src就会存在溢出再次回到main我们发现case1调用的addlog可以让我们输入src于是思路就很清楚了先case1调用addlog输入我们的payload再case4将pa

2021-11-15 15:43:28 330

原创 others_shellcode

others_shellcodeChecksec:可能是个啥签到。。。Ida:Exp:Flag:

2021-11-15 14:43:59 223

原创 ciscn_2019_n_5

Checksec:没开任何保护Ida:Read函数先将我们的输入写入bss段,然后再次调用read函数存在溢出、offest=0x28所以这题就是很标准的ret2shellcode:构造exp:from pwn import*context(arch="amd64",log_level='debug',os='linux',terminal = ['tmux', 'sp', '-h'])r=remote("node4.buuoj.cn",29164)shell

2021-11-15 14:30:50 566

原创 jarvisoj_level2_x64

jarvisoj_level2_x64Checksec:Ida:很容易找到溢出点,offest=0x88,程序有system的plt地址,搜索bin_sh字段构造exp:Flag;

2021-11-15 14:15:09 525

原创 [HarekazeCTF2019]baby_rop

Checksec一下Ida:Main函数里找到溢出点offest=0x18,同时存在system函数的plt地址搜索bin_sh字段要注意栈平衡,构造exp:成功得到flag:

2021-11-15 14:02:01 244

原创 not_the_same_3dsctf_2016

not_the_same_3dsctf_2016Ubuntu16checksec一下ida:Gets函数存在溢出点offest=0x2dMain函数上面就是后门函数,给我们将flag.txt读入bss段找到读入的flag地址我们只需要printf打印一下就行了远端还需要我们正常退出函数,找一下exit()因为是静态编译的,所以基本所有函数都会有直接构造exp:from pwn import*context(log_level="deb.

2021-11-09 23:17:23 197

原创 ciscn_2019_en_2

ciscn_2019_en_2Ubuntu 18Checksec一下Ida:逻辑很简单,encrypt()里gets函数存在溢出点,offest=0x58程序里没有出现system函数的plt也没有binsh字段那我们就要ret2libc,但因为是Ubuntu18常规搜了一下ret发现跟之前的ciscn_2019_c_1好像是一样的,然后确认了一下就直接把之前的exp拿来用了Exp:from pwn import*from LibcSearcher i

2021-11-07 18:09:00 243

原创 bjdctf_2020_babystack

bjdctf_2020_babystack题目Ubuntu 16Checksec检查一下Ida:read函数的读取长度是我们的输入,存在溢出点,offest=0x10+0x8然后main函数上面就是backdoor函数构造exp:成功得到flag:

2021-11-07 18:07:19 87

原创 jarvisoj_level2

jarvisoj_level2Ubuntu 16Checksec检查一下Ida:main函数里就是vulnerable_function(),进入发现read函数存在溢出点Offest=0x88+4(比较小不过用不到栈迁移)发现程序中有system()的plt地址,我们首先搜索bin_sh字段试图减少我们的工作量于是我们构造exp:成功得到flag...

2021-11-02 23:09:34 103

原创 ciscn_2019_n_8

Ubuntu 18checksec检查Ida:发现只需要满足var[13]=17即可执行system( “/bin/sh”)然后我们可以直接输入var???Exp:

2021-11-02 22:06:27 77

原创 [OGeek2019]babyrop

题目Ubuntu16,libc2.23Checksec一下,32位程序Read很明显的溢出,但之前存在两个检查,strlen()在读入/x00后就会截断,同样我们给a1传入/xff来溢出buff(0xe7)。Offest=0xe7+0x4程序中没有puts函数但存在write和read函数也能达到相同作用泄露libc基址寻找我们要用的system函数和bin_sh字段。构造rop链:p32(write_plt)+p32(main_addr)+p32(1)+p3

2021-11-02 22:05:29 112

原创 [第五空间2019 决赛]PWN5

[第五空间2019 决赛]PWN5题目Ubuntu16,libc2.23Checksec检查发现开启了canary和nx进入main函数发现gets函数存在格式化字符串漏洞并且程序会检查我们输入的password是否等于unk_804C044这个随机数,成功会直接给我们调用system(“/bin/sh”),因此我们检查unk_804C044位置发现位于bss段接下来只要确认我们输入的数据到unk_804C044的偏移即可修改unk_804C044。可以通过.%p或者gd

2021-11-02 22:03:51 108

原创 ciscn_2019_c_1

ciscn_2019_c_1Ubuntu 18Checksec发现开启nx保护审计代码Get函数存在溢出点offest=0x50+8寻找程序是否存在system函数和/bin/sh字段来减少我们的工作量结果都没有,但我们看到了puts函数我们可以通过ret2libc来泄露libc基址再通过查询got表确定libc中system函数和bin_sh字段。这里有个要注意的点是Ubuntu18,puts函数前要pop_rdi_rdi我们通过Ropgadge

2021-11-02 21:57:07 166

原创 jarvisoj_level0

jarvisoj_level0Ubuntu 16Checksec发现程序开启了nx保护进入main函数里面调用了vulnerable_function()跟进。发现read函数往buff读入0x200字节但buff只有0x80字节的存储空间存在溢出点Offest=0x80+8发现程序存在后门函数callsystem,plt地址:0x400596因此构造exp:成功get flag...

2021-11-02 21:50:49 70

原创 pwn1_sctf_2016

pwn1_sctf_2016题目Ubuntu 16,libc2.23Checksec发现开启了nx保护Ida反编译发现是静态编译的直接找到main函数在vlun函数中发现我们发现fget函数只能让我们输入32个字节但buff(s)的大小是0x3c到return的Offest=0x3c+0x4小于32.继续审计代码,发现程序会将“I”转换成“you”you*32=96大于offest存在溢出点。程序存在后门函数get_flag,plt地址:0x8048F0D

2021-11-02 21:47:49 133

原创 ciscn_2019_n_1

题目是Ubuntu18,libc2.27Checksec发现程序开启了nx保护即可写段不可执行可执行段不可写我们需要利用程序中已有的片段或者ret2libc来绕过nx保护查看main函数进入func函数get存在溢出漏洞offest=0x30+8但程序同时提示了我们只需要将v2=11.2815(16进制0x41348000)即可执行system("cat /flag")查看v2位置在栈上0x04距离我们可以控制的get(v1),offest=0x30-0x04

2021-11-02 21:45:55 129

原创 warmup_csaw_2016

题目环境是Ubuntu16默认libc2.23Cheksec程序架构是amd64没有开启任何保护运行程序程序给我们提示了wow:0x4006dGet函数存在栈溢出,offest=0x40+8个字节快捷键g跳转程序提示的0x4006d,发现存在后门函数system(“cat flag.txt”)于是我们构造exp:from pwn import*r=remote("node4.buuoj.cn",27357)cat...

2021-11-02 19:45:47 132

原创 buu_rip

题目提示了Ubuntu18,默认libc2.27checksec显示开了canary和nxgets存在栈溢出漏洞,offest=0xf+8发现程序中存在后门函数fun,plt地址0x401186程序没有开启aslr,因此直接溢出后跳转后门函数即可。但Ubuntu18我们需要先pop rdi才能调用system函数没有找到pop rdi ret但找到了同样可以栈平衡的retn地址:0x401185Exp:fro...

2021-11-02 17:46:25 200

空空如也

空空如也

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

TA关注的人

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