命令执行漏洞(附例题)

一.原理

应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。

二.利用条件

1、应用调用执行系统命令的函数

2、将用户输入作为系统命令的参数拼接到了命令行中

3、没有对用户输入进行过滤或过滤不严

三.分类

1.远程命令执行漏洞

概念:远程命令执行漏洞,指用户通过浏览器提交执行操作命令, 由于服务器端,没有针对执行函数做过滤,就执行了恶意命令

2、远程代码执行漏洞

概念:代码执行漏洞也叫代码注入漏洞,指用户通过浏览器 提交执行恶意脚本代码,执行恶意构造的脚本代码

四.例题

SWPUCTF 2021 新生赛easyrce

1.给一串代码,直接审计

eval():把字符串按照 PHP 代码来计算,需以分号结尾

  1. error_reporting(0);:这行代码将错误报告设置为关闭状态。这意味着在执行PHP代码时,不会显示任何错误或异常信息。这可能会导致难以调试和发现潜在的问题。
  2. highlight_file(__FILE__);:这行代码使用highlight_file()函数来高亮显示当前文件的代码。__FILE__是一个预定义的常量,它表示当前文件的路径和文件名。这个功能可以在调试或查看代码时提供帮助。
  3. if(isset($_GET['url'])):这行代码检查是否有一个名为"url"的GET参数存在。$_GET是一个超全局数组,用于获取通过HTML表单或URL传递的变量值。如果存在名为"url"的GET参数,则继续执行代码。
  4. eval($_GET['url']);:这行代码使用eval()函数执行用户提供的代码。$_GET['url']获取前面检查的GET参数"url"的值,并将其作为字符串传递给eval()函数执行。这意味着用户可以在URL中输入任何PHP代码,并将其执行。

发现通过GET传参,实现命令执行

2.构造payload,查看权限,发现为www-data

复制代码
/?url=system("whoami");

2.查看目录,发现flllllaaaaaaggggggg

复制代码
/?url=system("ls /");

3.cat查看文件,得到flag

复制代码
/?url=system("cat /flllllaaaaaaggggggg");
相关推荐
wanhengidc4 小时前
服务器租用有何优点
运维·服务器·安全·web安全
csdn_aspnet5 小时前
Gemini赋能安全工程师,自动写PoC脚本,探索Gemini在网络安全领域辅助漏洞验证与POC生成的实战路径
安全·web安全·prompt·poc·gemini·工程师
Chengbei115 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
小江的记录本8 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
会Tk矩阵群控的小木9 小时前
云控系统在TikTok多账号管理中的核心应用与技术实现
开发语言·php·开源软件·个人开发·tk矩阵
超梦dasgg9 小时前
Java 生产环境第三方对接安全保障方案
java·开发语言·安全
IAR Systems9 小时前
软件定义汽车:构建更安全、更智能的汽车应用软件
安全·汽车·嵌入式·iar
傻啦嘿哟10 小时前
降低首字延迟(TTFB):专线节点与TCP Fast Open的配置
开发语言·php
介一安全10 小时前
【漏洞学习】PHP+Windows环境通用文件上传漏洞深度剖析
windows·web安全·php·文件上传·安全性测试
无限进步_11 小时前
【C++】weak_ptr、循环引用与线程安全
开发语言·数据结构·c++·算法·安全