news 2026/5/6 7:35:48

assert函数eval函数蚁剑的思考

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
assert函数eval函数蚁剑的思考

关于assert函数

官方文档:PHP: assert - Manual

在PHP版本<7.0时

assert会将传入的参数试着作为PHP代码去执行,这个参数可以是一个函数或者是一个表达式(是表达式时和本文讨论内容关系不大,具体请参考官方文档中的演示)也可以是一个字符串。在参数是字符串时则对其中的PHP代码语法要求不严格(字符串中的PHP代码最后一句代码尾端的;可以省略,其余的则不行),但对于多句PHP代码组成的字符串只会执行第一句(如果这个字符串中PHP代码存在语法错误则该字符串中的所有PHP代码均不会被执行)。

在PHP版本>=7.0时
在这时PHP对于assert函数进行了更新(具体是在PHP7的哪个版本这里博主并不清楚Orz,但这个更新导致的后果通常是对于7.0及以上的版本来讨论的),assert在更新后无法将使用字符串作为参数,而传入GET或POST的数据默认的类型就是字符串,这就导致了assert不适宜再用来直接写马。

奇怪的特性

assert无法执行关于echo的代码,起初以为是echo是语言构造器的原因,但是用了同为语言构造器的print,发现却能用,emmmm…

关于eval函数

官方文档:PHP: eval - Manual

eval会将传入的字符串作为PHP代码来进行解析,字符串中可以包含多句PHP代码,且所有的PHP代码均会被执行,但如果存在语法错误则整个字符串中的PHP代码均不会执行。字符串中可以包含PHP标签,但必须和已存在的标签闭合(PHP文件头部和尾部的PHP标签)。此外eval并没有assert的奇怪特性,关于echo的代码能够被正常执行。

关于蚁剑

要明白为什么会此前payload中仅有部分可用就得先明白蚁剑通过payload中的SHELL究竟干了啥,这里用wireshark看下蚁剑发的包(这里蚁剑编码采用了base64,用default会导致有时的连不上马)。

可以看到蚁剑使用了POST方式对cmd传入eval执行一个随机生成的POST变量名的值base64解码,并且获得了相应的响应,便有了蚁剑绿色框显示的连接成功。这里将POST变量名的值转码一下再继续观察。

通过观察这段蚁剑测试连接起主要作用代码,不难发现两个特点:

使用了echo
由多句PHP代码构成
那么结论就明了了,关于payload部分可用的结果可以做出如下解释:

使用GET值作为马的连接密码的payload全部不可连接->蚁剑探测马是否可以用只使用了POST方式进行探测
仅使用assert的payload不可连接->原因有两个,一是因为蚁剑用来探测的语句由多句PHP代码构成,但assert只能执行第一句PHP代码;二是因为探测的语句使用了echo,而assert无法执行关于echo的代码

参考文章:https://www.cnblogs.com/Article-kelp/p/14704975.html

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 15:31:14

识别置信度低怎么解决?Speech Seaco Paraformer调参实战案例

识别置信度低怎么解决&#xff1f;Speech Seaco Paraformer调参实战案例 1. 问题背景与场景引入 在使用中文语音识别系统时&#xff0c;你是否遇到过这样的情况&#xff1a;明明说话很清晰&#xff0c;录音质量也不错&#xff0c;但识别结果却总是差强人意&#xff0c;尤其是…

作者头像 李华
网站建设 2026/4/27 21:10:06

万物识别在电商场景应用:商品自动打标系统部署教程

万物识别在电商场景应用&#xff1a;商品自动打标系统部署教程 你是不是也遇到过这样的问题&#xff1a;电商平台上每天上新几百款商品&#xff0c;每件都需要人工标注品类、颜色、材质、风格等标签&#xff1f;一个运营同事一天最多处理80条&#xff0c;还容易漏标、错标&…

作者头像 李华
网站建设 2026/5/3 12:54:29

AssetStudio实战指南:从零开始掌握Unity资源提取

AssetStudio实战指南&#xff1a;从零开始掌握Unity资源提取 【免费下载链接】AssetStudio AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles. 项目地址: https://gitcode.com/gh_mirrors/as/AssetStudio AssetStudio作为一款专…

作者头像 李华
网站建设 2026/5/3 3:37:45

5个技巧让Zotero完美支持中文文献:茉莉花插件终极指南

5个技巧让Zotero完美支持中文文献&#xff1a;茉莉花插件终极指南 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 还在为Zotero无…

作者头像 李华
网站建设 2026/5/4 20:42:31

VMware macOS解锁工具完整使用指南:快速配置苹果虚拟机

VMware macOS解锁工具完整使用指南&#xff1a;快速配置苹果虚拟机 【免费下载链接】unlocker 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 想要在普通PC上体验macOS系统吗&#xff1f;VMware macOS解锁工具Unlocker是您的理想选择。这款工具能够突破VMw…

作者头像 李华
网站建设 2026/5/5 16:53:57

Gofile终极自动化下载:批量文件管理完整指南

Gofile终极自动化下载&#xff1a;批量文件管理完整指南 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 还在为Gofile繁琐的手动下载而烦恼&#xff1f;每天需要处理大量加…

作者头像 李华