记录一次学校ctf比赛2
awd
啥也不会,看的视频都没用上,还是自己代码审计经验不足,刚看到那个
账号密码: --
Token:
虚拟IP:192-168-1-191.pvp205.bugku.cn
其他选手地址为192-168-1-X.pvp205.bugku.cn。 服务端口自己发现 SSH 端口2222
请输入flag
Api:https://ctf.bugku.com/pvp/submit.html?token=[token]&flag=[flag]
一脸懵逼,IP地址不是点点点吗?这咋杠杠的。。。离谱。。。
然后比赛就开始,用shell来连接,然后,然后就蒙蔽了。
刚开始想用安全狗,但是后期的解压及命令都是在root下进行的,所以没法。。
把html文件拷贝桌面,d盾没有发现后门,代码审计也没有发现$eval后门,找到一个,但是三个参数,就离谱,试了不成功。。。
跟看的视频不一样,实践也不一样,在var/www/html下找,config,incex等,没有找到关键信息,为了防止被攻击,自己不知道规则,赖我,队友也不知道,然后上传waf include,直接donw,然后直接扣500,5轮,后来又改的,然后没被攻击,但自己登不上网站了。。。。
最后自己没被学长扫,其他人被扫的down且flag。。。得了第二,更离谱,哈哈哈哈
,也多谢学长的关怀。。。
awd总结
等考完,发现方向找错了,其实应该是以网页为主要,然后/admin,尝试登录后台,赖自己太没有经验,没有考虑远程和网页哪个重要,自己也慌了
/admin 然后登录后台,可以查看后台,还可以隐藏删除后面提到的php,一块死,哈哈哈
其实自己还有一种想法,就是登录phpmyadmin,数据库,因为在html下看见了mysql.php,但没有找到admin密码,应该是默认的、
其实刚开始登录网站,看见搜索框,第一件事就是看能不能找命令来进行回显,但是没有
尝试了echo回显、一句话、php代码。。。
也赖自己没经验,看到学长找到那个php编译器,然后运行实例那个,直接就起飞,根据那个来进行ls
cat /flag*
然后只需要登录服务器,就行了。。。
ping 脚本
import os
import time
import subprocess
from multiprocessing import Pool
def ping_call(num):
fnull = open(os.devnull, 'w')
ipaddr = "192-168-1-'+str(num)+'.pvp205.bugku.cn"
result = subprocess.call(ipaddr + ' -n 2', shell=True, stdout=fnull, stderr=fnull)
current_time = time.strftime('%Y%m%d-%H:%M:%S', time.localtime())
if result:
print('时间:{} ip地址:{} ping fall'.format(current_time, ipaddr))
else:
print('时间:{} ip地址:{} ping ok'.format(current_time, ipaddr))
fnull.close()
if __name__ == '__main__':
start_time = time.time()
p = Pool(20)
res_l = []
for i in range(1, 256):
res = p.apply_async(ping_call, args=(i,))
res_l.append(res)
for res in res_l:
res.get()
print('程序耗时{:.2f}'.format(time.time() - start_time))
然后根据地址进行,对ping出来的进行干活。。。运行php。。
web
第一题
在网上查找phpsyudy 2016 漏洞 然后在火狐重发并且看重发的头,可以看到执行的whoaimi,又说falg在根目录下,所以直接system('cat /flag*');变base64就可以
参考链接:
https://www.cnblogs.com/yuzly/p/11610061.html
第二题
这个题有点离谱,1是l,不是1。。。导致没做出来,以后我就复制,不手打了
misc
第一题
思路错误
用binwalk -e 强制分离压缩包
出现[TIFF image data, big-endian, offset of first image directory: 8](javascript:)
意思就是图像偏移8位
嗯。。改头改错了。。
自己创建一个
然后winhex一个jpg的,再把压缩包的前面的位数改了。。。
离谱。。。
改6位,我就改4位,其实也能出来没用爱奇艺播放器,但是自己没有看提示。
第二题
小明的求救
下载附件 得到加密的压缩包 使用使用ziperello爆破得出密码 打开后发现音频文件 听到最后发现 类似电报的滴滴声 我们使用audacity打开
发现音轨 .- ... .--- .. ..-. --. ..- -.-- ... -.-- .- --. 把上面一段音轨通过摩斯密码解密后得到flag
第三题
先对图片进行binwalk分离
binwalk -e zaima.jpg
得到输出文件
有密码,而且压缩包备注上显示4 位数
使用ziperello
然后打开用notepad
b0a46ba5-f566-51ce-d21a-714738845507
然后套入flag{}
杂项
md5,一般都是十六进制,32位,由数字0-9和字母a-f组成的字符串,然后去掉多余的
工具在线的用不了,所以用python脚本的,rsatool不会用。。。
由于是在kali下运行,安装必备组件
apt-get install openssl
apt-get install pyasnl
apt-get install gmpy
apt-get install gmpy2
apt-get install crypto
pip install pycryptodome
然后在用命令
总结
还得学python,感觉太菜了,自己,还有许多不会,遇到问题还得思考,不能急,还有分工问题,自己再多练习一下靶场,我要有一天打爆他们,哈哈哈哈哈