ctf题 第一届“百度杯”信息安全攻防总决赛 upload
知识点:
- 注意参数的内容 注意题目中的flag
- python的base64编码和requests函数库 注意requests.session()
- python的md5
- svn文件泄露
- 文件上传的后缀名
打开题目显示的内容为
查看源代码
要求我们传入一个参数ichunqiu 期初我一直认为是将 Hi后面的那一段话给传入进去试了半天不行随后利用brup抓包发现flag
flag: ZmxhZ19pc19oZXJlOiBOamd6T1RVMQ==
flag为base64编码 后面为base64的双重编码 结合题目提示的fast应该要用脚本
import requests
import base64
url=“http://2147c5b81e23445c96297fa9a2f8feb95d908965eed54a93.changame.ichunqiu.com/”
s = requests.session()
re = s.post(url)
a=re.headers[‘flag’]
b=base64.b64decode(a)
f=str(b).split(’:’)
c=base64.b64decode(f[1])
data={‘ichunqiu’:c}
r = s.post(url,data=data)
print(r.text)
这里要用 requests.session,不然还是显示不够快,传递好flag
它会给你一个路径
Path:3712901a08bb58557943ca31f3487b7d
进入路径
需要知道用户名 密码 验证码
用户名可以通过snv文件泄露发现
进入.svn/wc.db获取信息
密码需要baopo
验证码需要md5
import hashlib
for i in range(10000000000):
hash = hashlib.md5(str(i).encode()).hexdigest()[:6]
if hash ==‘8caa9c’:
print(i)
break
获取登录后等到一个路径可以进行文件上传
抓包
修改content-type将后缀名改为pht即可获得flag