289 字
1 分钟

WEB绕过类

2026-01-16
浏览量 加载中...

#绕过积累:#

#eval执行命令型:#

一.#

前置条件:

if(preg_match("/[A-Za-oq-z0-9$]+/",$cmd))
if(preg_match("/\~|\!|\@|\#|\%|\^|\&|\*|\(|\)|\(|\)|\-|\_|\{|\}|\[|\]|\'|\"|\:|\,/",$cmd))
eval($cmd);

禁止: 大写字母 A-Z、小写字母 a-oq-z、数字 0-9、符号 $

禁止: 大部分常见的特殊符号。

留下: 小写字母 p.(点)、/(斜杠)、;(分号)、?(问号)、><=\(反斜杠)、|(管道符)以及 ```(反引号)

方法1:Linux 的 . (source) 命令#

在 Linux 中,. filename 等同于 source filename,可以执行文件中的内容(即使文件没有执行权限)。

过程拆解:

首先post一个由我们自己构造好的含有恶意命令的文件到服务器上去,然后通过 . (source) 匹配到这个文件,然后执行文件中的命令,而不是单纯依靠eval来执行。

这里有运用到一个php的特性:当你向一个 PHP 页面发送一个 POST 请求 且包含文件上传时,无论 PHP 代码里有没有处理上传的逻辑,PHP 引擎都会:

  1. 接收这个文件。
  2. 把它保存在服务器的临时目录下(通常是 /tmp)。
  3. 给它起一个随机名字,比如 phpXXXXXX

  • 版权声明:本文由 余林阳 创作,转载请注明出处。

喜欢这篇文章吗?

点击右侧按钮为文章点赞,让更多人看到!

WEB绕过类
https://sliver-yu.cc/posts/web绕过类/
作者
余林阳
发布于
2026-01-16
许可协议
CC BY-NC-SA 4.0
文章最后更新于 2026-01-16

评论区

目录