第二届红帽杯

Posted Sch01aR#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二届红帽杯相关的知识,希望对你有一定的参考价值。

  • Not Only Wireshark:

用wireshark打开,筛选http,看到一些可疑的字符

用python跑一下把这些可疑字符提取出来

import re

f = open("Not Only Wireshark.pcapng", "rb").read()

a = re.findall(b"/sqli/example2\\.php\\?name=(...)", f)

f1 = open("test.txt", "a+")

for i in a:
	j = i.decode()
	strs = "".join(j)
	f1.write(strs)

f1.close()

提取出来的字符

在 1234 后面补个5,加上后面几位就是504B0304,这是zip的文件头

生成zip文件

a = "504B03040A0001080000739C8C4B7B36E495200000001400000004000000666C616781CD460EB62015168D9E64B06FC1712365FDE5F987916DD8A52416E83FDE98FB504B01023F000A0001080000739C8C4B7B36E4952000000014000000040024000000000000002000000000000000666C61670A00200000000000010018000DB39B543D73D301A1ED91543D73D301F99066543D73D301504B0506000000000100010056000000420000000000"
a_b = bytes.fromhex(a)
f = open(\'test.zip\',\'wb\')
f.write(a_b)
f.close()

生成完成后打开

看到一个flag文件,但是要密码

解压密码在流量包中

解压密码是 key= 之后的内容

输入解压密码,得到flag

  • simple upload:

随便输个账号密码

burp 抓包

发现一个可以的地方 admin=0,把 0 改成 1,发包

在返回包里看到一个链接,访问一下

是一个上传点

上传个php脚本上去

burp 改包

admin=0 把 0 给成 1,shell.jpg 改成 shell.php

主要是检测 Content-Type 这个,要是image/jpeg 或 png 的

返回包中得到地址,访问一下

直接是图片了,看一下是啥容器

Tomcat,得上传 jsp 脚本上去

在根目录看到一个 flag 文件

查看内容,得到 flag

biubiubiu:

打开链接,是一个登陆页

在地址处看到,index.php?page=login.php,可能存在文件包含

试着读一下/etc/passwd,index.php?page=../../../../../etc/passwd

成功读取了/etc/passwd

接下来读取 nginx 的配置文件,index.php?page=../../../../../etc/nginx/nginx.conf

读取错误日志文件的内容,index.php?page=../../../../../var/log/nginx/access.log 和 index.php?page=../../../../..//var/log/nginx/error.log,发现访问的链接地址都会被记录

访问x.php<?php phpinfo();?>

phpinfo 被成功执行

写一句话

  • 听说你们喜欢手工爆破:

题目提示:flag{}内英文字母为大写形式

下载下来是一个 iso 文件,看一下里面的东西

有个压缩文件,还有很多的 txt 文本文件

全部提取出来

压缩文件需要密码,这些 txt 里都是 base64 加密的 Th3r3 1s n0 f1ag,不是解压密码

把这些 txt 的文件名提取出来

import os

a = os.listdir(r"C:\\Users\\hp\\Desktop\\OS_038c9291c8039792d1aad140f6664671")

f = open("password.txt", "w")
for filename in a:
    index = filename.rfind(".")
    name = filename[:index]
    if "情系海边之城" not in name:
    	f.write(name + "\\n")

f.close()

提取结果

把这些用作字典用 ARCHPR 4.53 爆破一下

爆出了密码

打开 doc 文件,需要密码才能打开

用工具 Advanced Office Password Recovery 爆破一下

得到密码 5693,打开文档

这里有一串字符

百度一下情系海边之城

情系海边之城又叫海边曼切斯特,联想到曼彻斯特编码

n = 0x123654AAA678876303555111AAA77611A321

flag = \'\'
bs = \'0\' + bin(n)[2:]
r = \'\'

def conv(s):
	return hex(int(s,2))[2:]

for i in range(0, len(bs), 2):
	if bs[i:i+2] == \'01\':
		r += \'0\'
	else:
		r += \'1\'

for i in range(0, len(r), 8):
	tmp = r[i:i+8][::-1]
	flag += conv(tmp[:4])
	flag += conv(tmp[4:])

print("flag" + "{" + flag.upper() + "}")

得到 flag

 

以上是关于第二届红帽杯的主要内容,如果未能解决你的问题,请参考以下文章

红帽杯 find_it

2019 红帽杯 easyRE

2019 红帽杯 easyRE

[2021红帽杯]Web writeip

津门杯&红帽杯

津门杯&红帽杯