buuctf pwn刷题(1)

本文详细介绍了buuctf中的多个Pwn题目,包括test_your_nc、pwn1、warmup_csaw_2016、pwn1_sctf_2016、ciscn_2019_n_1和level0。通过查壳、ida分析和检查程序保护,发现了栈溢出漏洞,并展示了如何利用这些漏洞获取shell权限。涉及的技术包括静态分析、动态调试和脚本编写。
摘要由CSDN通过智能技术生成

1.test_your_nc

先用exeinfo查壳,是64位的程序
在这里插入图片描述

用64位ida静态分析一下,找到main函数
在这里插入图片描述
F5反汇编,看到system("/bin/sh")
system()的作用———执行shell命令也就是向dos发送一条指令。
即执行/bin/sh命令,获得shell权限
在这里插入图片描述
在这里插入图片描述
用虚拟机连node3.buuoj.cn:27191
nc node3.buuoj.cn 27191
查看文件目录
ls
查看flag中的内容
cat flag
在这里插入图片描述

2.pwn1

查壳,64位程序
在这里插入图片描述
用虚拟机看一下有什么保护
在这里插入图片描述

64位ida静态分析,看一看main函数以及有特殊含义的函数
发现main函数中有gets()函数,所以有栈溢出漏洞
gets()函数可以输入无限长度的字符,所以容易超出系统分配的栈的最大长度。而在调用函数时栈中存有调用函数之后的命令的地址,所以只要将原本应该返回的地址覆盖掉,就能让程序进入fun函数,从而得到权限。
在这里插入图片描述
发现fun函数可以获得shell权限,那么只要让程序执行fun函数即可
在这里插入图片描述
进入到gets函数的s中
在这里插入图片描述
我们要将阴影部分填充入垃圾数据,在发送fun所在地址到r即可
在这里插入图片描述
脚本

#!/usr/bin/env python3

from pwn import*

context(os="linux",arch="amd64",log_level="debug")

#zdb=process("./pwn1")
zdb=remote
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值