回调后门基础
回调后门概述
回调后门(Reverse Shell)是一种常见的攻击方式,攻击者通过受害主机主动连接到远程服务器(攻击者控制的机器),从而获得远程控制权限。
工作原理
- 受害者主机 运行一个恶意代码,尝试连接攻击者控制的服务器。
- 攻击者主机 监听特定端口,一旦连接建立,就可以执行任意命令。
1. 初始的回调后门
call_user_func('assert',$_REQUEST['pass'];
代码解析:
- call_user_func():把第一个参数作为回调函数调用
- assert():用于执行字符串代码
- $_REQUEST[‘pass’]:攻击者控制的输入
攻击示例
call_user_func('assert',$_REQUEST['pass']);
-
执行phpinfo()查看PHP环境信息,通过向pass传递phpinfo(),则代码执行后回显PHP版本信息

-
蚁剑连接webshell


失败解析
- assert( c o d e ) ; 等价于 i f ( ! e v a l ( code); 等价于 if (!eval( code);等价于if(!eval(code)) throw new AssertionError();
- assert($_POST[123]); 的问题是,如果 $_POST[123] 是个未定义变量或者非字符串,它会返回 NULL,导致 assert(NULL); 直接返回 false,没有实际执行任何代码。
- 假如eval传入的是字符串形式的php代码,assert()解析后相当于eval($_POST[]123),从而执行传入的任意命令
蚁剑默认发送的payload
- 当body传pass= P O S T [ 123 ] 时, a s s e r t ( _POST[123]时,assert( POST[123]时,assert(_POST[123]);可能解析为assert(NULL),或者assert(空字符串),直接返回false,所以没有返回值
2.数组操作的单参数回调后门
$e = $_REQUEST['e'];
$arr = array($_POST['pass'],);
array_filter($arr, base64_decode($e));
代码解析:
- array():创建数组,包含用户传入的 $_POST[‘pass’]。
- array_filter():使用回调函数过滤数组元素。
- base64_decode($e):解码后作为回调函数。
- 所以e传递assert的Base64编码(YXNzZXJ0),则 array_filter() 会执行 assert($_POST[‘pass’]);,从而执行传入的PHP代码。

相关文章:
回调后门基础
回调后门概述 回调后门(Reverse Shell)是一种常见的攻击方式,攻击者通过受害主机主动连接到远程服务器(攻击者控制的机器),从而获得远程控制权限。 工作原理 受害者主机 运行一个恶意代码,尝…...
深度学习 Deep Learning 第13章 线性因子模型
深度学习 Deep Learning 第13章 线性因子模型 内容概要 本章深入探讨了线性因子模型,这是一类基于潜在变量的概率模型,用于描述数据的生成过程。这些模型通过简单的线性解码器和噪声项捕捉数据的复杂结构,广泛应用于信号分离、特征提取和数…...
【个人笔记】用户注册登录思路及实现 springboot+mybatis+redis
基本思路 获取验证码接口 验证码操作用了com.pig4cloud.plugin的captcha-core这个库。 AccountControl的"/checkCode"接口代码,通过ArithmeticCaptcha生成一张验证码图片,通过text()函数得到验证码的答案保存到变量code,然后把图…...
华为OD机试2025A卷 - 正则表达式替换(Java Python JS C++ C )
最新华为OD机试 真题目录:点击查看目录 华为OD面试真题精选:点击立即查看 题目描述 为了便于业务互交,约定一个对输入的字符串中的下划线做统一替换。 具体要求如下: 输入字符串,将其中包含的每一个下划线“_”,使用特殊字符串(^|$|[,+])替换,并输出替换后的结果…...
WPS宏开发手册——Excel常用Api
目录 系列文章4、Excel常用Api4.1、判断是否是目标工作excel4.2、获取源工作表和目标工作表的引用4.3、获取单元格的值4.4、设置单元格的值4.5、合并单元格4.6、获取源范围4.7、获取源范围行数4.8、通过源来获取单元格的值4.9、设置单元格的背景颜色4.10、设置单元格的文字颜色…...
数据库基础入门
关系型数据库 vs. 非关系型数据库SQL 基础 & ORM 框架使用一、数据库概述 数据库(Database)是 存储和管理数据 的系统,主要分为 关系型数据库(Relational Database) 和 非关系型数据库(NoSQL)。 📌 数据库的作用: ✅ 存储:持久化数据,避免数据丢失。 ✅ 管理…...
聚类(Clustering)基础知识3
文章目录 一、聚类的性能评价1、聚类性能评价(1)聚类性能评价方法: 2、参考模型 (reference model)(1)数据集:(2)聚类结果:(3)参考模型࿱…...
RK3588使用笔记:设置程序/服务开机自启
一、前言 一般将系统用作嵌入式设备时肯定要布置某些程序,这时候就需要对程序设置开机自己,否则每次都要人为启动,当有些嵌入式系统未连接显示屏或者无桌面环境去操作启动程序时,程序自启就是必须的了,本文介绍在纯li…...
Python-数据处理
第十五章 生成数据 安装Matplotlib:通过pip install matplotlib命令安装库。绘制折线图的核心语法为: import matplotlib.pyplot as plt x_values [1, 2, 3] y_values [1, 4, 9] plt.plot(x_values, y_values, linewidth2) plt.title(&quo…...
LoRA技术全解析:如何用4%参数量实现大模型高效微调
引言 在当今的人工智能领域,大型语言模型(LLM)已经成为革命性的技术。然而,这些模型通常拥有数十亿个参数,全量微调成本极高。本文将为初级开发者详细讲解LoRA(Low-Rank Adaptation)技术&#…...
职测-言语理解与表达
成语填空 成语的误用 误用①:望文生义【按成语的字面意思去理解,导致误用】 成语解释如数家珍对列举的事物或叙述的故事十分熟悉,但熟悉的对象不能是自己收藏的宝贝目无全牛比喻技术熟练到得心应手的境地登堂入室比喻学问或技艺由浅入深&a…...
深度学习处理文本(2)
建立词表索引 将文本拆分成词元之后,你需要将每个词元编码为数值表示。你可以用无状态的方式来执行此操作,比如将每个词元哈希编码为一个固定的二进制向量,但在实践中,你需要建立训练数据中所有单词(“词表”&…...
python实现股票数据可视化
最近在做一个涉及到股票数据清洗及预测的项目,项目中需要用到可视化股票数据这一功能,这里我与大家分享一下股票数据可视化的一些基本方法。 股票数据获取 目前,我已知的使用python来获取股票数据方式有以下三种: 爬虫获取,实现…...
JavaScript DOM与元素操作
目录 DOM 树、DOM 对象、元素操作 一、DOM 树与 DOM 对象 二、获取 DOM 元素 1. 基础方法 2. 现代方法(ES6) 三、修改元素内容 四、修改元素常见属性 1. 标准属性 2. 通用方法 五、通过 style 修改样式 六、通过类名修改样式 1. className 属…...
ARM向量表
向量表作用说明RVBAR在 AArch64 中,重置向量不再是异常向量表的一部分。 有复位向量的专用配置输入引脚和寄存器。在 AArch64 中,处理器从 IMPLEMENTAION‑DEFINED 地址开始执行, 该地址由硬件输入引 脚RVBARADDR定义, 可以通过 R…...
leetcode刷题日记——除自身以外数组的乘积
[ 题目描述 ]: [ 思路 ]: 题目要求获取数组中每个元素除自己以外的各元素的乘积最简单的方法就是算出数组所有元素的乘积,然后除以自身,即可得到除自身外各元素的乘积 但要考虑到其自身为0的情况,即当期自身为0时&am…...
【信奥一本通提高篇】基础算法之贪心算法
原文 https://bbs.fmcraft.top/blog/index.php/archives/22/ 贪心算法 概述 近年来的信息学竞赛试题,经常出现求一个问题的可行解或最优解的题目。这类问题就是我们通常所说的最优化问题。贪心算法是求解这类问题的一种常用算法。在众多的算法中,贪心…...
PyQt6实例_批量下载pdf工具_批量pdf网址获取
目录 前置: 步骤: step one 安装包 step two 获取股票代码 step three 敲代码,实现 step four 网址转pdf网址 视频 前置: 1 本系列将以 “PyQt6实例_批量下载pdf工具”开头,放在 【PyQt6实例】 专栏 2 本节讲…...
KMeans算法案例
KMeans算法案例 案例介绍 已知:客户性别、年龄、年收入、消费指数 需求:对客户进行分析,找到业务突破口,寻找黄金客户 数据集共包含顾客的数据, 数据共有 4 个特征, 数据共有 200 条。接下来,使用聚类算法对具有相似…...
IDApro直接 debug STM32 MCU
使用IDA pro 逆向分析muc 固件的时候, 难免要进行一些动态的debug,来进一步搞清楚一些内存的数据、算法等,这时候使用远程debug 的方式直接在mcu上进行debug 最合适不过了。 不过有个前提条件就是一般来说有的mcu 会被运行中的代码屏蔽 RDP、…...
六十天前端强化训练之第三十六天之E2E测试(Cypress)大师级完整指南
欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗,谢谢大佬! 目录 一、知识讲解 1. E2E测试核心概念 2. Cypress框架特性 3. 工作原理 4. 测试金字塔定位 二、核心代码示例:用户登录全流程测试 三、实现效果展示 四、学习要…...
创建和管理Pod
创建和管理Pod 文章目录 创建和管理Pod[toc]一、什么是Pod1.Pod 的核心定义2.Pod 的组成与结构3.Pod 的生命周期4.Pod 的使用场景5.高级特性 二、Pod与容器1. 为什么使用 Pod 作为 Kubernetes 的最小部署单元?2. 单一容器 Pod3. 多容器 Pod4. 初始化容器(…...
20250330-傅里叶级数专题之离散傅里叶变换(5/6)
5. 傅里叶级数专题之离散傅里叶变换 推荐视频: 工科生以最快的速度理解离散傅立叶变换(DFT) 哔哩哔哩 20250328-傅里叶级数专题之数学基础(0/6)-CSDN博客20250330-傅里叶级数专题之傅里叶级数(1/6)-CSDN博客20250330-傅里叶级数专题之傅里叶变换(2/6)-CSDN博客20250330-傅里叶…...
Android设计模式之代理模式
一、定义: 为其他对象提供一种代理以控制对这个对象的访问。 二、角色组成: Subject抽象主题:声明真是主题与代理的共同接口方法,可以是一个抽象类或接口。 RealSubject真实主题:定义了代理表示的真实对象,…...
《非暴力沟通》第十二章 “重获生活的热情” 总结
《非暴力沟通》第十二章 “重获生活的热情” 的核心总结: 本章将非暴力沟通的核心理念延伸至生命意义的探索,提出通过觉察与满足内心深处的需要,打破“义务性生存”的桎梏,让生活回归由衷的喜悦与创造。作者强调,当行动…...
3.29:数据结构-绪论线性表-上
一、时间复杂度 1、ADT 2、定义法计算时间复杂度:统计核心语句的总执行次数 (1)例题1,与2022年的真题对比着写 此题关键在于求和公式的转化,类型为:线性循环嵌套非线性循环 2022年那道题如果考场上实在脑…...
Java项目如何打jar包?
1.java把项目打包成jar 步骤一、IDEA -> File -> Project Structure -> Artifacts -> -> JAR -> From moduls with dependencies... -> 选择 Module 和 Main Class -> 选择 JAR files from libraries JAR files from libraries 解释 extract to the t…...
【奶茶经济学的符号暴力本质】
金字塔式七层分析框架:奶茶经济学的符号暴力本质 第一层:缺货的戏剧经济学 结论:13.7%缺货率是精密计算的神经钩 机制:喜茶新品首日仅投放86.3%门店,制造"限量焦虑"激活前额叶决策区矛盾验证: …...
Python PDF解析利器:pdfplumber | AI应用开发
Python PDF解析利器:pdfplumber全面指南 1. 简介与安装 1.1 pdfplumber概述 pdfplumber是一个Python库,专门用于从PDF文件中提取文本、表格和其他信息。相比其他PDF处理库,pdfplumber提供了更直观的API和更精确的文本定位能力。 主要特点…...
大模型架构记录13【hr agent】
一 Function calling 函数调用 from dotenv import load_dotenv, find_dotenvload_dotenv(find_dotenv())from openai import OpenAI import jsonclient OpenAI()# Example dummy function hard coded to return the same weather # In production, this could be your back…...
