从发现SQL注入到ssh连接

news2025/7/17 16:01:04

前言:

某天,同事扔了一个教育站点过来,里面的url看起来像有sql注入。正好最近手痒痒,就直接开始。

一、发现时间盲注和源码

后面发现他发的url是不存在SQL注入的,但是我在其他地方发现了SQL盲注。然后改站点本身也可以下载试用源代码,和该站点是同一套系统:

img

一开始的思路是直接用时间盲注写马,然后遇到的问题就是如何获取站点的绝对路径。通过sqlmap自带的字典去爆破,发现都失效了。(但是其实只是没写成功,不代表路径是不对。)那么接下来的思路就在源码上了。从源码里面没有找到啥可以直接未授权getshell的点。后面在本地搭建这套系统时,发现了其配置信息都在网站目录下的configure.php,后面就是尝试使用sqlmap读取文件。通过猜测,发现了站点的路径为/var/www/html/{站点域名}下面。然后再回头尝试写马,还是失败。但是可以读取文件。然后写了个脚本去跑,成功获取数据库账号密码:

img

Nmap一试,3306开放,心中窃喜。使用mysql连接的时候,发现root登录被做了限制,只能使用localhost进行登录。然后也通过sqlmap获取到其他账号,有的可以登录,但是都因为权限小,无法写马。

1671954426038

二、惊现上传漏洞

写马失败后,想着查询下数据库里面的管理员密码,登录后台看看有没有可利用的点。后面又回过头来看源码了。一边放着dump数据,一边又发现了新东西,这站点存在ckfinder和ckeditor编辑器,但是一个无法访问,一个无法上传木马。

img

就在我想破脑袋也没想到还有啥办法之时,我同事那边来了个好消息。他从旁站获取到了测试账号密码:

img

然后他在个人资料处发现了一些功能点,发现了一堆xss和csrf、会话固定后,最后测了一下上传点

img

这个上传点如果你直接上传php是可以上传成功的,但是路径找不到。很奇怪。

【----帮助网安学习,以下所有学习资料免费领!加weix:yj009991,备注“ csdn ”获取!】
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)

不过如果你先上传一个jpg文件,就会发现图片路径为upload/fileimages/ew00000000040/user_photoa009.jpg

然后再通过bp修改文件扩展名为php,重新上传,就可以成功在前端看到php的路径:

img

通过抓包分析,我们发现他存在一个http_user字段可控,并且只在前端校验文件类型得到重命名组合为user_photo[http_user][传入的文件后缀(.php)]

img

img

直接写入phpinfo(),发现解析了,上蚁剑:

img

成功getshell。

三、脏牛提权

虽然成功获取权限,但是这权限很低,有执行权限,但是很多操作都被限制。前面有获取数据库账号密码,在获取webshell后,可直接连接mysql数据库:

img

这时候可以考虑udf提权,但是尝试发现没有/usr/lib64/mysql/plugin/路径的上传权限。那么久只能通过常规的提权了。使用工具linux-exploit-suggester:https://github.com/mzet-/linux-exploit-suggester

img

发现很多种方式可以提权,但是我用kali编译完的程序上传到目标机上,发现运行不了。后面直接在目标机编译,也出现确实一些库文件,好像因为目标机版本太低了。后面参考了这篇文章,成功进行提权。

https://www.jianshu.com/p/df72d1ee1e3e

Exp:https://github.com/FireFart/dirtycow

四、SSH连接

这个提权会删除root用户,新建一个用户firefart。本来还在考虑使用内网穿透把22端口代理出来,然后直接ssh连接。但是渗透步骤不规范就会导致我这样的结果:他的ssh并不是22端口,而是999端口。我信息收集的时候没有发现到位。当时一开始看没有22端口,所以才顺势觉得要穿透进去。但是其实人家999端口就是ssh。接下来就是成功使用ssh连接。

img

但是有个问题又出现了:如果我想连接ssh,那么久只能使用这个账户登录,因为我不知道root密码。但是这样的话,人家登录不了root就会发现异常。但是如果我把root恢复了,我就没有root权限了。

诶,后面我在想,如果我把原始的passwd文件恢复,然后不断开ssh连接是不是我还能有权限操作呢?说干就干,使用firefart执行mv /tmp/passwd.bak /etc/passwd恢复原本的账户。然后ssh不断开,我发现我还是root权限。这就好办了。useradd新建账号edu,然后把新建的账户加入管理员组。具体操作可以参考:https://blog.csdn.net/llm_hao/article/details/118031154

使用新账号edu进行登录,发现为root权限,成功!

img

这时候才把原本firefart账号的窗口关闭。重新再使用firefart账户登录,发现已经无法登录了。看来这应该是系统的一种机制吧,哈哈哈。

结尾

这次渗透其实走了很多弯路,到最后都没用上数据库。很多时候一个点打不进去的时候,适当的放弃,去打新的点,不要太头铁,特别是攻防的时候。

总结一下:发现盲注,源码到跑取站点账号密码(时间盲注效率低到我现在还没跑出后台管理账户密码),无果。到从旁站上传木马,获取网站服务器权限,权限较低,使用脏牛提权,到后面的恢复原本的账户,并新建一个管理员。其实这个站点是还有内网在,貌似是教育局办公内网,但目前还在尝试,后续会随缘更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++/Java调用C++动态链接库————附带示例和详细讲解

文章目录0 准备1 C调用动态链接库2 Java调用C动态链接库3 运行0 准备 在CMake中,使用如下的方法把代码编译成动态/静态链接库: # 设置项目名 project(getMatInfo)# 设置c版本 set(CMAKE_CXX_STANDARD 11)# 如果不填写SHARE,默认为静态链接…

Spring Security开发实践

Spring Security 是 Spring 家族中用于提供认证、授权和攻击防护功能的一套安全框架。它也是 Spring 应用在安全框架方面的公认标准。 Spring Security 安全框架适合为 Spring Boot 项目提供安全保护,所以如果您是个 Spring Boot 项目的开发人员,且正在寻…

Python 将视频按照时间维度剪切 | Python工具

目录 前言 环境依赖 代码 总结 前言 本文提供将视频按照时间维度进行剪切的工具方法,一如既往的实用主义。 环境依赖 ffmpeg环境安装,可以参考我的另一篇文章:windows ffmpeg安装部署_阿良的博客-CSDN博客 本文主要使用到的不是ffmpeg&a…

基于Vue.js+Node问卷调查系统的设计与实现

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

ORM框架

ORM框架可以做的两件事: 创建、修改、删除数据库中的表(不用写SQL语句)。【无法创建数据库】操作表中的数据(不用写SQL语句) 1.安装第三方模块: pip3.9 install mysqlclient 2.创建数据库: 启动Mysql服务…

20221226编译Toybrick的TB-RK3588X开发板的Android12系统2-SDK预处理

20221226编译Toybrick的TB-RK3588X开发板的Android12系统2-SDK预处理 2022/12/26 16:40 结论: 1、风火轮技术团队的技术支持力度欠佳! 淘宝客服只能处理发货问题,发发SDK还可以,技术问题只能找联系方式 联系手机:18926…

一起从零开始学VUE(16)生命周期与组合式API

文章目录生命周期自定义hook函数toRef其他组合APIshallowReactive与shallowRefreadonly与shallowReadonllytoRaw 与 markRawcustomRefprovide与inject响应式数据的判断生命周期 除了直接写对应的钩子函数外,Vue3.0也提供了composition API形式的钩子函数&#xff0c…

【再学Tensorflow2】TensorFlow2的建模流程:电影评论分析

TensorFlow2的建模流程:电影评论分析词嵌入技术数据准备定义模型训练模型评估模型使用模型保存模型参考资料情感分析无处不在,它是一种基于自然语言处理的分类技术。其主要解决的问题是给定一段话,判断这段话是正面的还是负面的。情感分析的本…

KDE桌面环境下电源管理对应的文件及选项

在KDE桌面环境下,“系统设置”—>“电源管理”—>“高级电源设置”的界面如下: 点击界面中的“配置通知”选项,界面如下所示: 其中图形界面下的各项设置对应的文件为~/.config/powerdevil.notifyrc。上图状态下&#xff0c…

Elasticsearch8.X入门实战(七)Java API操作:员工信息

Elasticsearch本身使用Java开发,因此对Java的支持能力是最好的。本节通过对员工信息建立索引,并对索引数据进行添加、修改等,讲解Elasticsearch的相关Java客户端 API的操作。 1.新建项目 在Eclipse中新建Maven项目elasticsearch_demo,在pom.xml文件中加入项目的依赖库,…

vue2[webpack]中接入vue3[vite]的qiankun微前端服务

本文记录在 vue2[webpack]老项目中,使用qiankun.js微前端服务,接入vue3[vite]新项目。 纯vue2[webpack]技术项目可参考以前的文章: vue项目落地(qiankun.js)微前端服务-zhanghaoran’s blog vue2为基座主应用; vue3为子应用。 改造…

cursor:pin S wait on X故障诊分析

1. 故障概述 7:15,二节点出现大量的“cursor: pin S wait on X”等待事件,数据库性能下降,持续到7:19分恢复正常,持续时间4分钟左右。下面是详细的故障分析诊断过程。2. 故障分析 2.1. 故障现象 7:15,系统出现大量“curs…

Lexical Simplification with Pretrained Encoders 论文精读

Lexical Simplification with Pretrained Encoders 论文精读InformationAbstract1 Introduction2 Related Work3 Unsupervised Lexical Simplification3.1 The BERT model3.2 Simplification Candidate generation3.3 Substitution Ranking3.4 Simplification Algorithm4 Exper…

【半监督医学图像分割 ISBI】2022-ICT-MedSeg

【半监督医学图像分割 ISBI】2022-ICT-MedSeg 论文题目:AN EMBARRASSINGLY SIMPLE CONSISTENCY REGULARIZATION METHOD FOR SEMI-SUPERVISED MEDICAL IMAGE SEGMENTATION 中文题目:一种简单的一致性正则化半监督医学图像分割方法 论文链接:ht…

基于redis缓存查询店铺

基于redis缓存查询店铺 Overridepublic Result queryById(Long id) {//从redis中查询商铺缓存String shopJson stringRedisTemplate.opsForValue().get(CACHE_SHOP_KEY id);//判断缓存是否命中if (StrUtil.isNotBlank(shopJson)){//命中,则返回店铺信息Shop shop …

统计同成绩学生

目录 1038:统计同成绩学生 输入格式: 输出格式: 样例: 输入样例: 输出样例: 代码长度限制: 时间限制: 内存限制: 思路: 1.暴力法 1.1查找函数 1.1.2查找函数代码 1.2main函数 1.2.1main函数代码 1.3完整代码…

亚马逊云科技Build On - 使用Serverless搭建创新零售应用的惊喜体验

近日有幸参加了亚马逊云科技Build On第三季的学习培训,深刻感受到亚马逊在云服务方面技术的先进性。在培训后进行了实操体验,通过Serverless 的事件驱动架构搭建一个快消行业场景的应用——咖啡店的订餐系统。只用了短短的几小时,就完成了整个…

学生管理系统(Python实现)

文章目录学生管理系统介绍学生管理系统效果展示代码实现入口函数打印菜单新增学生信息显示学生信息查找学生信息删除学生信息实现存档读档打包成exe程序学生管理系统介绍 学生管理系统是为了对学校学生信息进行管理而开发的一款软件,下面我们来实现一个命令行版本的…

【UE4 第一人称射击游戏】12-全自动步枪并显示剩余弹药量

上一篇: 【UE4 第一人称射击游戏】11-武器跟随鼠标移动并添加开火音效 本篇效果: 步骤: 1.打开“Weapon_Base”,添加一个整数类型,名为“Ammo”的变量,用来表示弹药量。编译后默认值设为30 再添加一个浮点…

操作系统~Linux~线程控制,POSIX线程库的使用

1.POSIX线程库 与线程有关的函数构成了一个完整的系列&#xff0c;绝大多数函数的名字都是以“pthread_”开头的要使用线程库中的函数&#xff0c;要通过引入头文件<pthread.h>链接这些线程函数库时要使用编译器命令的“-lpthread”选项2.创建线程-pthread_create() 功…