# 【PWN】攻防世界题目:get_shell > 零零散散的自学了一些pwn,今天来试着做一下题目 [TOC] ## 开始 他说运行就可以获取到shell于是就选了,貌似一个简单的题目 ![](https://cz.caozhexxgweb.cn/zb_users/upload/2023/12/202312181105275212214.png) ## 查看内容 下载文件后拖到windows虚拟机中,看看这是个什么文件 下图看上去是一个ELF文件,是一个linux下的可执行文件 ![](https://cz.caozhexxgweb.cn/zb_users/upload/2023/12/202312181108357333284.png) ## 尝试分析 于是直接在linux中跑一下,发现直接回来一个shell? ![](https://cz.caozhexxgweb.cn/zb_users/upload/2023/12/202312181110045000976.png) 在IDA中打开看看,跳转main函数看看,发现打印一条消息 "OK,this time we will get a shell.",然后将字符串 "/bin/sh" 的地址移动到 edi 寄存器,调用 system 函数,执行 edi 寄存器中指定的命令。启动了一个新的shell。 ![](https://cz.caozhexxgweb.cn/zb_users/upload/2023/12/202312181113137499267.png) ## 获取Flag 看上去很简答,但flag呢?我忽然想到,这是一道pwn题目,我回到做题页面,发现果然可以启动一个场景 ![](https://cz.caozhexxgweb.cn/zb_users/upload/2023/12/202312181115456642782.png) 启动之后尝试用nc连接试试看,直接就回弹一个shell来了,里面有个flag文件,cat一下试试看,获取了一个`cyberpeace{b31b0e8c6b9070d67216127baf86ed62}` ![](https://cz.caozhexxgweb.cn/zb_users/upload/2023/12/202312181116158365740.png) 发现正确了,果然很简单,貌似都没有涉及到堆栈溢出。 ![](https://cz.caozhexxgweb.cn/zb_users/upload/2023/12/202312181118094924032.png) 到此就结束了,希望这题是个学习pwn一个良好的开始。