0
点赞
收藏
分享

微信扫一扫

HackTheBox-Emdee five for life

Hyggelook 2022-02-13 阅读 72

文章目录

概述

HackTheBox 网站CTF靶场Web相关题目Emdee five for life,题目地址https://app.hackthebox.com/challenges/emdee-five-for-life,主要考察针对Web页面访问与提交数据的脚本开发能力。

在这里插入图片描述

题目

题目概述

题目提示为Can you encrypt fast enough?,开启程序实例后,提示访问167.99.202.131:30306,访问http://167.99.202.131:30306,看到如下Web界面
在这里插入图片描述
即题目给出了一个随机字符串,要求获取这个随机字符串并对其md5散列,并将得到的散列值填入输入框提交,但对时间有要求,如果提交的过慢会失效。

题目解答

经过尝试,手工获取后md5处理再提交必然超时,需要使用脚本处理,这里使用Python,主要使用requests、BeautifulSoup、hashlib三个库。

import requests
from bs4 import BeautifulSoup
from hashlib import md5

url = 'http://167.99.202.131:30306/'

with requests.Session() as session:
    with session.get(url) as rt:
        soup = BeautifulSoup(rt.text, 'html.parser')
        target_str = soup.find('h3').text
        md5_str = md5(target_str).hexdigest()
        args = {'hash': md5_str}
        with session.post(url, data=args) as rt2:
            print(rt2.content)
  • 其中requests库用于通过GET方法访问网站,并通过POST方法提交数据,这里需要注意要保持同一个会话,即随机字符串和hash值维持在同一个会话里,通过requests.Session()实现。
  • BeautifulSoup解析GET结果并提取随机字符串。
  • hashlib用于对随机字符串进行md5散列。

运行脚本,在返回结果中包含flag

在这里插入图片描述

举报

相关推荐

0 条评论