VNCTF2024misc方向部分wp

文章探讨了一种SQL注入攻击手法,利用tshark抓包工具分析了异常的payload。涉及到了OpenGl库的绕过方法,以及在OnlyLocalSql挑战中的逆向工程和权限利用,如SSH端口转发和恶意MySQL服务器利用。
摘要由CSDN通过智能技术生成

sqlshark

tshark -r sqlshark.pcap -Y "http" -T fields -e frame.len -e http.file_data > data.txt

不太像常规的盲注,一次性发送两条很类似的payload,比常规的多了一个least在判断password值的最小值

Form item: "password" = "any'/**/Or/**/(iF(((((Ord(sUbstr((sElect(grOup_cOncat(password))frOm(users)) frOm 14 fOr 1))))in(99))),1,0))#"
Form item: "password" = "any'/**/Or/**/(iF(((leAst((Ord(sUbstr((sElect(grOup_cOncat(password))frOm(users)) frOm 14 fOr 1))),99)in(99))),1,0))#"

其实可以直接忽略这一条,用长度判断直接去掉,随手写的乱七八糟脚本如下:

import re
import urllib.parse
with open('data.txt','r',encoding='utf-8')as file:
    lists = file.readlines()

flag=''
tmp = 1
flag_tmp = 0
for i in range(0,len(lists),2):
    match = re.search(r'(\d+)', lists[i+1])
    length = match.group(1)
    # print(length)
    payload = (urllib.parse.unquote((bytes.fromhex(lists[i].split("\t")[1])).decode())).lower()
    # print(len(payload))
    if length == "492" and len(payload)<135:
        print(payload)
        match = re.search(r'in\((\d+)\)\)', payload)
        asc = int(match.group(1))

        match = re.search(r'from\+(\d+)\+',payload)
        # print(match)
        location = int(match.group(1))
        flag+=chr(int(asc))
print(flag)     

得到的密码套个VNCTF{}就是flag了

LearnOpenGL

flag被砖块挡住了,直接用全透明图覆盖掉砖的图片

from PIL import Image

# 创建一个全透明的RGBA模式图片
img = Image.new("RGBA", (128, 128), (0, 0, 0, 0))

# 保存图片
img.save("transparent_image.png")

image-20240217182134194

image-20240217182148134

ez_msb

总体流程如下,在blocks_add_xx_0处将两个数据结合到一起了

image-20240217183828864

照着逆就好了,打印一下振幅再加题目名其实就很明显可以看出flag.txt对应哪部分数据了

jio本:

from scipy.io import wavfile
import numpy as np

# 读取音频文件
samplerate, data = wavfile.read('out.wav')

# 将音频数据转换为浮点数类型
samples = np.array(data, dtype=float)

# 获取音频振幅
amplitudes = np.abs(samples)
amplitudes = np.abs(samples)*1000/2

# 获取整数部分
int_amplitudes = amplitudes.astype(int)
data = ''
for i in int_amplitudes[:200]:
    data += (bin(i)[2:].zfill(2))
print(data)

image-20240217184133187

OnlyLocalSql

坏,被搞得怀疑人生的题目

源码:CTF-Archives/VNCTF2024-OnlyLocalSql: VNCTF2024 - Misc - OnlyLocalSql - Source Code (github.com),请给巨魔一个star!

出题人讲解https://space.bilibili.com/12949995

可以看到有个web服务,同时看源码就可以看出是不久前的西湖论剑的only_sql的源码,当然是后话了

image-20240217184428278

直接访问http服务访问不通,看题目描述提到强制连接本地服务

发现本地curl是通的

image-20240217184712083

因此想到使用流量转发,过ssh隧道去访问服务器的内网

彻底搞懂SSH端口转发命令 - 知乎 (zhihu.com)

Lateral Movement and Pivoting - 横向移动和枢纽 | TryHackMe CN Mirror (tryhackmyoffsecbox.github.io)

将服务器127.0.0.1的80端口转发到本地的8888端口,因此访问本地的8888端口的流量就会被通过服务器21013的ssh端口访问80端口,相当于从服务器本地进行访问

ssh -p 21013 ctf@manqiu.top -L 8888:127.0.0.1:80

image-20240217190307021

成功访问到,不过这里mysql密码被改了,不是query.php里的注释密码,后面不能直接跟西湖论剑里一样去连接并命令执行

不过由于知道flag的位置/flag,并且发现/flag www-data就能读了

image-20240217190718310

两种方法,一个是rogue_mysql_server项目rmb122/rogue_mysql_server: A rouge mysql server supports reading files from most mysql libraries of multiple programming languages. (github.com),伪造mysql服务,任意读文件,需要把本地的端口转发给服务器的33060,写到这里平台关了,题目docker还没启好,先留个坑迟一点填

还有一个非预期是题目权限没弄好 /var/www/html下有写权限,直接写个一句话就搞定了,反正flag不是root权限读

在这里插入图片描述

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值