iwebsec靶场 文件包含漏洞通关笔记3-session文件包含

news2024/11/26 2:53:22

目录

1.打开靶场

2.源码分析

(1)session文件包含漏洞的的工作原理

(2)sessionstart()做了哪些初始化工作

3.获取session文件位置

4.向session写入webshell

5.访问webshell


1.打开靶场

iwebsec 靶场漏洞库iwebsecicon-default.png?t=N7T8http://iwebsec.com:81/fi/03.php

 随手根据提示,参数写iwebsec=iwebsec,提示SESSION["username"]的内容是iwebsec,于是基于session包含进行渗透

2.源码分析

如下所示,源码中包含session_start,加上把iwebsec赋值session的特点,确认是session文件包含漏洞

<?php

  require_once('../header.php');
  ?>
<html>
	<head>
		<title>session本地文件包含</title>
	</head>
	<h2>session本地文件包含</h2>
		<div class="alert alert-success">
			<p>/03.php?iwebsec=iwebsec </p>
		</div>
	<body>
<?php
	if(isset($_GET['iwebsec'])){
		session_start();
		$iwebsec=$_GET['iwebsec'];
		$_SESSION["username"]=$iwebsec;
		echo 'SESSION["username"]的内容是'. $_SESSION['username'];
	}else{
		exit();
	}
	
?>

 (1)session文件包含漏洞的的工作原理

    1)首先使用session_start()函数进行初始换
    2)当执行PHP脚本时,通过使用SESSION超全局变量注册session变量。
    3)当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.savepath指定,下次浏览网页时可以加载使用。

(2)sessionstart()做了哪些初始化工作

    1)读取名为PHPSESSID(如果没有改变默认值)的cookie值,假使为xxxxxx。
    2)若读取到PHPSESSID这个COOKIE,创建SESSION变量,并从相应的目录中(可以再php.ini中设置)读取sess_xxxxxx(默认是这种命名方式)文件,将字符装在入SESSION变量中;
    3) 若没有读取到PHPSESSID这个COOKIE,也会创建S​ESSION超全局变量注册session变量。同时创建一个sess_xxxxxx(名称为随机值)的session文件,同时将xxxxxx作为PHPSESSID的cookie值返回给浏览器端。

3.获取session文件位置

通常情况下session文件名的构造:sess_   +  sessionid

sessionid可以在cookie页面进行查看右键-查看元素-网络

此时访问

iwebsec 靶场漏洞库iwebsecicon-default.png?t=N7T8http://iwebsec.com:81/fi/03.php?iwebsec=iwebsec

点击此报文在右边点击响应-cookie,如下所示获取到cookie的名称为plu9vbe6dj9a9gad1jg8idbmo7

于是session的文件名为

sess_plu9vbe6dj9a9gad1jg8idbmo7

 文件的位置为

/var/lib/php/session/sess_plu9vbe6dj9a9gad1jg8idbmo7

4.向session写入webshell

目前打算写入一个显示php版本号的脚本,即写入<?php phpinfo();?>

于是构造如下url

http://iwebsec.com:81/fi/03.php?iwebsec=<?php phpinfo();?>

5.访问webshell

由于session文件位置为/var/lib/php/session/sess_plu9vbe6dj9a9gad1jg8idbmo7

利用第一关的任意文件包含漏洞来访问它,相对路径为

/fi/01.php?filename=../../../../var/lib/php/session/sess_plu9vbe6dj9a9gad1jg8idbmo7

那么访问url为

iwebsec 靶场漏洞库iwebsecicon-default.png?t=N7T8http://iwebsec.com:81/fi/01.php?filename=../../../../var/lib/php/session/sess_plu9vbe6dj9a9gad1jg8idbmo7

如下所示,渗透成功

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

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

相关文章

敏捷团队如何领任务?有哪些误区?

敏捷开发团队&#xff08;Scrum团队&#xff09;在每天开每日站会的时候会领取当天的任务&#xff0c;这个实践在敏捷开发中叫做sign-up-for-tasks即领任务。这个实践源自极限编程&#xff0c;在1998年&#xff0c;极限编程最早期的介绍中提到了&#xff0c;“指派任务”和“领…

【1++的C++进阶】之C++11(一)

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的C进阶】 文章目录 一&#xff0c;前言二&#xff0c;列表初始化三&#xff0c;声明自动类型推断&#xff08;auto&#xff09;decltypenullptr 四&#xff0c;右值引用五&#xff0c;完美转发…

docker容器技术实战-2

03docker hub 首先注册上号&#xff1a; https://hub.docker.com/ 上传自己的镜像仓库 创建自己的仓库 webserver 拉取镜像 配置加速器 04搭建私有仓库 上传镜像 在主机1上 在主机2 上 激活内核选项 激活内核选项文件传输过去 配置使用非加密端口 05 docker私有仓库 仓库加…

机器学习笔记自最优化理论与方法(十一)无约束优化问题——关于共轭方向法重要特征的相关证明

机器学习笔记之最优化理论与方法——关于共轭方向法重要特征的相关证明 引言回顾&#xff1a;共轭方向法的思想与几何解释共轭方向法的重要特征(2023/9/12)共轭方向法重要特征的证明 引言 上一节介绍了共轭方向法的朴素思想与几何意义。本节将继续介绍共轭方向法的重要特征以及…

如何判断一篇论文有没有被SCI收录?

打开 Web of Science 网站设置 SCI 筛选条件&#xff08;因为 WoS 收录的不只是 SCI&#xff09; 3. 输入论文题目&#xff0c;点击搜索

如何有效地设置示波器衰减比

在电子电路实验时&#xff0c;往往需要搭配测量设备方可检验电路可行性、了解电路实时动态。示波器是常见的测量设备之一&#xff0c;而搭配示波器使用的测量工具却有很多&#xff0c;如常见标配的无源电压探头、测输出端电压的有源差分探头、测某点电流信号的电流钳等等。 由…

【玩儿】Win 11 安装安卓子系统

Win 11 安装安卓子系统 一、Android子系统的要求二、配置 Windows 虚拟化支持三、Win11 正式版安装安卓子系统方法教程 (离线包安装)下载离线包安装子系统 四、软件安装应用商店下载ADB 调试模式下安装打开调试模式&#xff08;开发人员模式&#xff09;下载 ADB 调试工具ADB 配…

类和对象续

目录 包 自定义包 包的访问权限控制 常见的包 Static成员 静态成员变量 静态成员方法 代码块 构造块 静态块 重写 继承 继承是啥&#xff1f; 父类成员访问 子类中访问父类成员变量 两者不同名 两者同名 子类中访问父类对的成员方法 super 子类构造方法 …

浮点型数据在内存中是如何存储的

文章目录 浮点型变量的存储规则&#xff1a;浮点数怎么转化为二进制浮点型数据在内存中的存储E不全为0或不全为1E为全0E为全1 浮点型变量的存储规则&#xff1a; 根据国际标准IEEE&#xff08;电气和电子工程协会&#xff09; 754&#xff0c;任意一个二进制浮点数V可以表示成下…

java判断两个时间是不是同一天的方法、Java中判断是否是当天时间

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 热爱技术的小郑 前言 开发中会遇到这样一…

简简单单教你如何用C语言实现获取当前所有可用网口!

一、获取本机所有可用网卡名 原理&#xff1a; 在 Linux 系统中&#xff0c;/proc 目录是一个位于内存中的伪文件系统。 /proc目录是内核提供给我们的查询中心&#xff0c;通过查询该目录下的文件内容&#xff0c;可以获取到有关系统硬件及当前运行进程的信息&#xff0c;如…

【C++基础】左值引用、右值引用、move、forward

本文参考&#xff1a;右值引用 | 爱编程的大丙 转移和完美转发 | 爱编程的大丙 左值、右值、左值引用、右值引用 左值 是指存储在内存中、有明确存储地址&#xff08;可取地址&#xff09;的数据&#xff1b; 右值 是指可以提供数据值的数据&#xff08;不可取地址&#x…

阶乘的素因数分解

一、题目 整除问题_牛客题霸_牛客网 (nowcoder.com) 二、普通数字的素因数分解 假如对n进行素因数分解。先利用素数筛法筛选出0~n范围内的全部素数。然后依次遍历这些素数&#xff0c;用n除以这些素数&#xff0c;直至无法整除。然后接着用下一个素数作为除数&#xff0c;直到n…

重庆OV证书和EV证书有什么区别

SSL数字证书按照保护的域名数量和类型可以分为单域名SSL证书、多域名SSL证书和通配符SSL证书三种&#xff0c;按照验证方式可以将SSL数字证书分为DV基础型SSL证书、OV企业型SSL证书和EV增强型SSL证书三种。今天就随SSL盾小编了解OV证书和EV证书的区别。 1.OV企业型SSL证书由CA…

Linux学习总结

Linux学习目标&#xff1a; Linux操作系统介绍与安装。 Linux常用命令。 Linux常用软件安装。 Linux网络。 防火墙。 Shell编程等。 *******************************LinuxOS介绍与安装************************************ Linux OS介绍与安装 Linux是什么&#xff…

C# 去除utf-8 BOM头

static void Main(string[] args) {var a1 Encoding.UTF8.GetBytes("<");var a2 Encoding.UTF8.GetBytes("&#xfeff;<");Console.WriteLine("去除utf-8 bom之前");Console.WriteLine(Encoding.UTF8.GetString(a1));Console.WriteLine(…

黑马 小兔鲜儿 uniapp 小程序开发- 推荐模块- day03

黑马 小兔鲜儿 uniapp 小程序开发- 02首页模块_软工菜鸡的博客-CSDN博客 小兔鲜儿 - 推荐模块- day03 主要实现 Tabs 交互、多 Tabs 列表分页加载数据。 动态获取数据 参考效果 推荐模块的布局结构是相同的&#xff0c;因此我们可以复用相同的页面及交互&#xff0c;只是所…

轻松打造自己的ChatGPT应用,AI应用,源码附赠

这里写自定义目录标题 前言简介 前言 大家好&#xff0c;我是静幽水&#xff0c;目前是一名大厂全栈工程师&#xff0c;练习时长两年&#xff0c;擅长Java后端&#xff0c;Vue前端&#xff0c;小程序编程&#xff0c;Python编程&#xff0c;ChatGPT 提示词等技术。现在正在系统…

建筑模板木模好还是钢模好

在建筑施工中&#xff0c;模板是一项关键的工程&#xff0c;对于建筑结构的质量和施工效率起着重要作用。在选择模板材料时&#xff0c;木模和钢模都是常见的选择。本文将比较木模和钢模的优缺点&#xff0c;以帮助您做出明智的选择。 正文&#xff1a;一、木模&#xff1a;传统…

信创国产化解决方案

近年来&#xff0c;随着信息技术的飞速发展&#xff0c;信创产业成为国家发展的重要战略之一。2018年以来我国将信创纳入国家战略&#xff0c;提出了“28”发展体系&#xff0c;随后扩展至更多行业&#xff0c;演变为“28N”应用体系。2023年中国信创产业逐步走向应用落地阶段。…