前言
继续ctf的旅程
开始攻防世界web高手进阶区的10分题
本文是Confusion2的writeup
解题过程
Confusion1的伏笔
根据提示
本题是7分题Confusion1的延续
要用到salt
在Confusion1中给出了salt的位置/opt/salt_b420e8cfb8862548e68459ae1d37a1d5.txt
类似获取flag方法
其值是_Y0uW1llN3verKn0w1t_
Confusion2
进来是跟Confusion1一样的界面
但他有了register和login界面
看源码和御剑都没有东西
那就注册登录看看
注册还需要一个MD5验证码
python脚本爆破下
# -*- coding: utf-8 -*-
import multiprocessing
import hashlib
import random
import string
import sys
CHARS = string.letters + string.digits
def cmp_md5(substr, stop_event, str_len, start=0, size=20):
global CHARS
while not stop_event.is_set():
rnds = ''.join(random.choice(CHARS) for _ in range(size))
md5 = hashlib.md5(rnds)
if md5.hexdigest()[start: start+str_len] == substr:
print rnds
stop_event.set()
if __name__ == '__main__':
substr = sys.argv[1].strip()
start_pos = int(sys.argv[2]) if len(sys.argv) > 1 else 0
str_len = len(substr)
cpus = multiprocessing.cpu_count()
stop_event = multiprocessing.Event()
processes = [multiprocessing.Process(target=cmp_md5, args=(substr,
stop_event, str_len, start_pos))
for i in range(cpus)]
for p in processes:
p.start()
for p in processes:
p.join()
成功登录
发现用户名出现在页面上
没有别的发现
抓包看看
GET /index.