网站备案 改名,设计企业品牌商标,网站免费诊断,wordpress 缩略图类型Oopsie
解题流程
文件上传
首先开启机器后#xff0c;我们先使用 nmap -sC -SV来扫描一下IP地址#xff1a; -sC#xff1a;使用 Nmap 的默认脚本扫描#xff08;通常是 NSE 脚本#xff0c;Nmap Scripting Engine#xff09;。这个选项会自动执行一系列常见的脚本我们先使用 nmap -sC -SV来扫描一下IP地址 -sC使用 Nmap 的默认脚本扫描通常是 NSE 脚本Nmap Scripting Engine。这个选项会自动执行一系列常见的脚本进行更为详细的探测比如检查服务版本、漏洞扫描、系统信息等。 -sV探测服务版本。这会使 Nmap 在扫描时尝试识别目标主机上运行的服务及其版本信息。 可以看到开放了两个端口22和80端口既然开放了80端口说明我们可以使用web浏览器进行访问。
那么我们此时使用kali自带的火狐浏览器进行访问访问对应的IP地址显示页面如下 页面继续往下划我们看到了这样的一段话我们需要登录才能访问这个访问 那么此时我们就可以猜到这个页面应该应该是存在子目录能够进行登录操作的那么此时我们就需要找到这个子目录。此时我们我们使用burpsuit自带的抓包功能进行看一下页面的子目录有哪些由于burpsuit是kali自带的操作起来也方便。为了方便操作这里我直接打开burpsuit自带的浏览器 输入目标IP之后burpsuit可以不进行拦截操作因为burpsuit会自动收集打开过程中的数据包就在旁边的 HTTP history中抓到的数据包如下所示 此时我们看到有个 cdn-cgi/login的目录很像我们需要的登录目录那么此时我们访问一下这个目录显示页面如下果真就是我们想要的登录窗口 尝试了一些弱口令爆破之后没有成功发现下方还有一个 Login as Guest的选项我们可以当做游客进行登录 进入之后我们就可以看到游客界面的导航栏了 查看导航栏发现有一个 uploads的栏目难道可以进行文件上传吗我们点进去看看发现需要超级管理员用户才可以访问 那么我们就需要想办法来提升用户的权限有一个方法就是右键页面然后打开检查元素 然后我们就可以查看用户的cookie信息我们观察到有roleguest 和 user2233。我们可以假设如果我们以某种方式知道超级用户的数量admin 作为 user 变量我们也许能够访问上传页面 然后返回刚才的 Account栏目信息根据上面的url信息发现此时发id2那么我们尝试一下id1会发生什么 修改id1我们成功知道了admin的id值此时我们就可以尝试修改一下cookie值来尝试提高用户的权限 此时我们修改了cookie的值然后刷新一下页面发现我们已经拥有了上传文件的权限 现在我们已经可以访问上传表单了我们可以尝试上传 PHP 反向 shell。对于本题我们将使用 /webshells/php/php-reverse-shell.php这里提供了下载地址然后将该PHP文件上传 好了到了这一步现在我们需要找到刚刚上传的php文件所在的目录我们可以自己猜测目录位置这里我使用gobuster来暴力破解一下目录名 gobuster一下子就找到了 uploads目录然后尝试看一下该目录的内容发现我们没有查看该目录的权限但是我们可以尝试访问一下我们上传到该目录的文件 反弹shell
首先我们建立一个 netcat的连接如下图所示 然后我们在网页中访问我们上传的文件的地址 然后就可以发现我们成功监听到了这里需要注意的是我们在此过程的每个页面访问到需要修改cookie值包括上传和重新访问否则监听不到呜呜呜所以推荐上传的过程中每次都使用burpsuit修改一下cookie值 好现在我们我们成功拿到shell了现在为了使页面看起来更加美观我们使用下述命令
python3 -c import pty;pty.spawn(/bin/bash) 提升权限
接下来我们查看一下 .php的文件后缀看是否有敏感信息泄露输入命令 find / -type f -name *.php 2/dev/null 作为用户 www-data该角色对系统的访问受到限制。由于网站正在使用 PHP 和 SQL我们可以进一步枚举可能泄露的 Web 目录 或配置错误。经过一番搜索我们可以在 /var/www/html/cdn-cgi/login目录下找到一些 php 文件。我们可以手动查看所有页面的源代码也可以尝试搜索使用 grep 工具可以得到有趣的字符串。输入命令cat * | grep -i passw* 我们确实得到了密码MEGACORP_4dm1n!! 。我们可以通过以下方式检查系统上的可用用户读取 /etc/passwd 文件以便我们可以尝试重用此密码输入 cat /etc/passwd 发现一个可用用户robert此时我们切换到robert用户结果发现登录不上… 怎么判断用户是否可用 格式用户名:密码:用户ID:组ID:描述信息:家目录:登录Shell 检查 UID 是否大于等于 1000。 检查登录Shell 是否有效非 /sbin/nologin 或 /bin/false。 检查用户的家目录是否存在。 那我们再找找发现在db.php中找到了密码 赶紧使用这个密码试一下没有问题这个密码是正确的 然后我们在该用户的主目录找到了一个user.txt文件我们查看一下发现了第一个flag 好了现在还有一个flag应该是在root用户中我们尝试提权来查看一下。
在运行任何权限提升或枚举脚本之前让我们检查一下用于提升权限的基本命令sudo 和 id 等权限 我们观察到用户 robert 是 bugtracker 组的一部分。让我们尝试看看里面是否有任何二进制文件输入命令find / -group bugtracker 2/dev/null 我们发现一个名为 bugtracker 的文件。我们检查它的权限和文件类型ls -la /usr/bin/bugtracker file /usr/bin/bugtracker 该二进制文件上设置了一个 suid这是一个很有用的利用路径。 SUID 是一个强大的工具它允许文件以文件所有者通常是 root身份执行从而使某些需要特权的程序能够由普通用户执行。 当一个文件具有 SUID 权限时无论哪个用户执行该文件该文件将以文件所有者的身份运行而不是以执行文件的用户身份运行。 如果文件的所有者是 root 用户那么任何人执行该文件时都会以 root 用户的身份来执行。 然后我们运行该应用程序观察其行为 该工具接受用户输入作为将使用 cat 命令读取的文件名但是它没有指定文件 cat 的完整路径因此我们可以利用它。 我们将导航到 /tmp 目录并创建一个名为 cat 的文件其中包含以下内容
/bin/sh
然后我们设置改文件的执行权限
chmod x cat
为了利用这一点我们可以将 /tmp 目录添加到 PATH 环境变量中/tmp 目录将被添加到 PATH 变量的最前面
export PATH/tmp:$PATH
然后我们检查一下环境变量
echo $PATH 然后我们再次执行一下该二进制文件提权成功 然后我们找到 /root目录下的 root.txt由于cat查看不了那我们使用more来查看一下 最后成功获取root用户的flag。
题目答案
task 1
With what kind of tool can intercept web traffic?用什么工具可以拦截网络流量
答案proxy
task 2
What is the path to the directory on the webserver that returns a login page?返回登录页面的网络服务器上的目录路径是什么
答案/cdn-cgi/login
task 3
What can be modified in Firefox to get access to the upload page?可以在 Firefox 中修改哪些内容才能访问上传页面
答案cookie
task 4
What is the access ID of the admin user?管理员用户的访问 ID 是什么
答案34322
task 5
On uploading a file, what directory does that file appear in on the server?上传文件时该文件出现在服务器上的哪个目录中
答案/uploads
task 6
What is the file that contains the password that is shared with the robert user?包含与 robert 用户共享的密码的文件是什么
答案db.php
task 7
What executible is run with the option “-group bugtracker” to identify all files owned by the bugtracker group?使用选项“-group bugtracker”运行什么可执行文件来识别 bugtracker 组拥有的所有文件
答案find
task 8
Regardless of which user starts running the bugtracker executable, what’s user privileges will use to run?无论哪个用户开始运行 bugtracker 可执行文件都将使用什么用户权限来运行
答案root
task 9
What SUID stands for?SUID 代表什么
答案Set owner User ID
task 10
What is the name of the executable being called in an insecure manner?以不安全方式调用的可执行文件的名称是什么
答案cat
task 11
Submit user flag提交用户flag
答案f2c74ee8db7983851ab2a96a44eb7981
task 12
Submit root flag提交root的flag
答案af13b0bee69f8a877c3faf667f7beacf