返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >eval与assert执行一句话木马
  • 504
分享到

eval与assert执行一句话木马

php 2023-09-10 22:09:27 504人浏览 安东尼
摘要

首先介绍一下木马中最简单的存在,俗称一句话木马 eval() eval(str)是把str字符串按照PHP代码来计算或执行 该str字符串必须是合法的php代码,且必须以分号结尾 assert() assert()包含于头文件assert

首先介绍一下木马中最简单的存在,俗称一句话木马

eval()

eval(str)是把str字符串按照PHP代码来计算或执行

该str字符串必须是合法的php代码,且必须以分号结尾

assert()

assert()包含于头文件assert()中,主要有assert()宏组成,

它接受一个int表达式作为其参数,若表达式求值的结果为真(1),则继续程序的执行;若为假(0),则assert()宏就在标准错误流(stderr)中写入一条错误信息,并同时调用abort()函数来终止程序。

assert()函数的主要功能是用于辅助调试程序。


一、木马测试

1.1  eval()

首先构造如下木马,用蚁剑测试连接

 

连接并可成功修改文件(插入 i love you)

二、升级木马并进行测试

2.1  eval()测试

测试 1=eval() 构造 eval($_POST[2])

结果是无法连接,下面分析原因

因为eval是一个语言构造器而不是一个函数,不能被 可变函数 调用PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。

可变函数可以用来实现包括回调函数,函数表在内的一些用途。 可变函数不能用于例如 echo,print,unset(),isset(),empty(),include,require 以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数。

这么看来eval其实并不能算是‘函数’,而是PHP自身的语言结构,如果需要用‘可变’的方式调用,需要自己构造,类似这样子的:

 

2.2   assert()测试

a.   测试 1=assert

 

连接失败!再做其他测试

b.   再选择base64尝试连接,则连接成功!!

c.   测试 1=assert    2=$_POST[3]   base64   连接密码:3

 为什么看似正常的操作,却有的成功连接,有的又失败呢?这是为撒子?

不要慌,看我们接下俩分析:

对于实验 c ,我们利用burpsuit进行抓包并分析,可以看出明显的问题:

 首先注意:

我们要清楚——eval函数中参数是字符,assert函数中参数为表达式 (或者为函数)

这里我们 1 提交的是assert ,2提交的$_POST[3],我们本意是为了执行assert($_POST[3])

而蚁剑同时也post 了 '3' 这个数据变成 %40ini_set 之类的东西,导致assert中又变成了字符串,所以连接失败。

再用butpsuit对未选择base64的实验 b 抓包,可见assert后面的是字符串,因此连接失败!

 而当执行base64时,连接成功,是因为是在执行中多了个 eval() 函数,因此我们实际上是再执行assert(eval()),eval()中参数是字符串,因此连接成功!

assert('xxxx') 里面只有字符串

assert(eval(base64xxxx)); 里面有eval函数

三、 eval()与assert()结合测试

 

 测试链接成功!!

我们抓包查看 ,则能明显发现原因:

我们1提交assert,2提交eval($_POST[3]),构造执行了 assert(eval($_POST[3]))

同时满足assert中参数为函数,eval中参数为字符串。因此执行成功!

总结

最后在强调重点:

eval函数中参数是字符,如:
eval('xxxx');
assert函数中参数为表达式 (或者为函数),如:
assert(phpinfo()) 

来源地址:https://blog.csdn.net/C_LCH_2000/article/details/125949698

--结束END--

本文标题: eval与assert执行一句话木马

本文链接: https://www.lsjlt.com/news/402693.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • eval与assert执行一句话木马
    首先介绍一下木马中最简单的存在,俗称一句话木马 eval() eval(str)是把str字符串按照php代码来计算或执行 该str字符串必须是合法的PHP代码,且必须以分号结尾 assert() assert()包含于头文件assert...
    99+
    2023-09-10
    php
  • eval与assert一句话木马分析
    eval与assert一句话木马分析 严正声明:本文仅限于技术讨论,严禁用于其他用途。 文章目录 eval与assert一句话木马分析前言一、eval定义和用法二、assert的定义与用法三、...
    99+
    2023-09-02
    php 开发语言
  • 一句话木马大全
    PHP       //可执行命令一句话 普通一句话 ​​​ PHP系列 ​​​​​​​​   密码是 -7 过狗一句话 select '' into outfile 'C:/Inetpub/wwwroot/mysql-...
    99+
    2023-10-21
    php 开发语言
  • PHP 一句话木马 @eval($_POST[‘hack‘]); 语句解析及靶机演示
    一句话木马如下,利用文件上传漏洞,往目标网站上传该木马,即可获取和控制整个网站主机目录 语句解析 @符号 @符号表示后面的语句即使执行错误,也不报错。 eval()函数 eval()函数的作用是把括号内的字符串全部当作php代码来执行。 ...
    99+
    2023-08-31
    php 网络安全
  • 一句话木马@eval($_POST[“cmd“]);是什么意思(超详细)
    在文件上传(upload)类ctf题中,相信大家都接触过一句话木马 那么具体它是扫描意思呢 POST 是html中标签的POST方法 在页面中,所有的POST方法都会由submit输入方式向action中的php文件返还信息,通...
    99+
    2023-09-03
    php 安全 开发语言 upload html5
  • PHP一句话木马浅析
    一句话木马就是只需要一行代码的木马,短短一行代码,就能做到和大马相当的功能。为了绕过waf的检测,一句话木马出现了无数种变形,但本质是不变的:木马的函数执行了我们发送的命令。PHP一句话木马的原理是利用了PHP中的eval()。 一句话木...
    99+
    2023-09-07
    php 开发语言 Powered by 金山文档
  • java安全——jsp一句话木马
    jsp回显一句话木马 文章目录 jsp回显一句话木马一、搭建web服务1、创建空白maven项目,搭建本地tomcat2、引入servlet的pom依赖 二、无回显一句话三、带回显一句话三...
    99+
    2023-10-23
    java 安全 servlet
  • php一句话木马变形技巧
    目录一、什么是一句话木马?二、我们如何发送命令,发送的命令如何执行?0.eval函数1.assert函数2.create_function函数3. call_user_func回调函...
    99+
    2024-04-02
  • 蚁剑连接一句话木马演示
    需要准备 一台虚拟机作为服务器,一台作为攻击机(可用主机),将虚拟机的网络都设置为桥接。 我这里服务器用win2008R2系统 攻击机用win10 接下来我会演示 php 的一句话木马 其他脚本语言的一句话木马使用过程和这个差别不大 在服务...
    99+
    2023-09-16
    安全 php 扫描测试工具 渗透测试
  • php图片一句话木马使用方法
    php图片一句话木马使用方法,PHP一句话: 1、标准的写法,直接通过eval执行php代码@eval ($_POST['code']); 2、动态执行assert生成一个木马文件(隐藏性最好的一种)@$_GET['a']($_GET[...
    99+
    2023-09-06
    php木马 Powered by 金山文档
  • Java中JS引擎实现的一句话木马
    目录前言基本原理获取脚本引擎绑定对象eval基本语法调用Java方法导入Java类型创建Java类型的数组导入Java类方法调用与重载Payload结构设计语法问题的坑两种语言对象间...
    99+
    2024-04-02
  • 【python实现生成隐藏的一句话木马】
      如今,各大杀毒软件死死的盯着那几个危险函数不放。但是还有些人喜欢通过检索 webshell 关键字这样批量去找,这就更不可能找到了。那么今天这个 webshell 的原理是什么呢?这个webshell的原理就是:每一行最后都有空格与制表...
    99+
    2023-10-06
    python php
  • 如何实现phpmyadmin弱密码导致一句话木马上传
    这篇文章将为大家详细讲解有关如何实现phpmyadmin弱密码导致一句话木马上传,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.打开phpmyadmin(一般防火墙不能...
    99+
    2024-04-02
  • 上传漏洞(一句话木马、中国菜刀使用、DVWA文件上传漏洞利用)
    1、常见漏洞分类  2、常见验证手段    可抓包后修改扩展名为图片格式,再上传可绕过验证。如:   可以修改php文件后缀为其他,再上传。如test.php.xxx  可对图片文件添加一句话木马,再修改为.php上传,会解析为图...
    99+
    2023-09-04
    php 安全 运维 linux
  • 如何处理一个利用thinkphp5远程代码执行漏洞挖矿的木马
    小编给大家分享一下如何处理一个利用thinkphp5远程代码执行漏洞挖矿的木马,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!记一次挂马清除经历:处理一个利用thinkphp5远程代码执行漏洞挖矿的木马昨天发现 一台服务器突...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作