初识命令执行【简介、工作原理和利用方式】

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

0、前言

本文看完如果想对应实战相关内容,可以看上一期分享的《ctfhub—RCE通关》

1、命令执行简介

远程命令执行或者代码执行,英文全称Remote Command/Code Execute,简称RCE。命令执行漏洞指的是可以执行系统或应用指令(如CMD命令或bash命令)的漏洞,PHP命令执行漏洞主要基于一些函数的参数过滤不严导致。

常见的命令执行函数

PHP: exec、shell_exec、system、passthru、popen、proc_open等。
ASP.NET: System.Diagnostics.Start.Process、System.Diagnostics.Start.ProcessStartInfo等。
Java: java.lang.Runtime.getRuntime()、java.lang.Runtime.exec()等 。

漏洞分类3种:

1、代码层过滤不严
商业应用的一些核心代码封装在二进制文件中,在web应用中通过system函数来调用;
2、系统的漏洞造成命令注入
bash破壳漏洞(CVE-2014-6271)
3、调用的第三方组件存在代码执行漏洞
如WordPress中用来处理图片的ImageMagick组件;
JAVA中的命令执行漏洞(struts2等);
ThinkPHP命令执行;

漏洞危害主要有4个:

1、继承Web服务程序的权限去执行系统命令,
2、反弹shell,
3、控制整个网站甚至控制服务器,
4、进一步内网渗透。

常见防御方式:

1、尽量少用执行命令的函数或者直接禁用,
2、参数值尽量使用引号包括,
3、在使用动态函数之前,确保使用的函数是指定的函数之一,
4、在进入执行命令的函数/方法之前,对参数进行过滤,对敏感字符进行转义。

2、工作原理

一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口,比如常见的路由器、防火墙、入侵检测等设备的web管理界面上。

在这里插入图片描述

(图片来源网络)

利用条件:

1、应用调用执行系统命令的函数;
2、将用户输入作为系统命令的参数拼接到了命令行中;
3、没有对用户输入进行过滤或过滤不严。

3、利用方式

在操作系统中,"&、|、||"都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令。 同时,操作系统很多时候允许一次执行多个命令,命令之间用 分号 ; 隔开

3.1、使用的特殊字符
# Windows支持的特殊字符
# |  直接执行后面的语句
ping 127.0.0.1|whoami
#|| 前面出错或假时执行后面的语句
ping 2||whoami
# & 前面的语句为假则直接执行后面的语句,前面可真可假
ping 127.0.0.1&whoami
# && 前面的语句为假则直接出错,后面的也不执行,前面只能为真
ping 127.0.0.1&&whoami

# Linux支持的特殊字符
# ; 前面的执行完执行后面的,也可理解为拼接
ping 127.0.0.1 -c 2;whoami
# | 管道符,显示后面的执行结果
ping 127.0.0.1|whoami
# || 当前面的执行出错时执行后面的
ping 1 -c 2||whoami
# & 前面的语句为假则直接执行后面的前面可真可假
ping 127.0.0.1 -c 2&whoami
# && 前面的语句为假则直接出错,后面的也不执行,前面只能为真
ping 127.0.0.1 -c 2&&whoami

# 说明,在ping后面加-c 2,是指定请求测试2次
3.2、常用命令
# Windows系统
# 查看文件目录
dir
# 查看Windows的IP地址
ipconfig
# 查看ARP缓存表
arp -a
# 在命令行打开计算器
calc
# 打开注册表
regedit
# 查看开放的端口信息
netstat -ano

# Linux系统
# 查看passwd文件
cat /etc/passwd
# 查看该用户的ID号
id
# 查看用户所属的组
groups
# 查看组信息
cat /etc/group
# 查看当前用户
whoami
# 查看当前路径
pwd
# 查看主机信息
uname -a
# 查看主机的配置信息
cat /etc/issue
# 查看开放的端口信息
netstat -pantu
# 查看路由信息
netstat -nr

4、下期内容预告

下期会分享远程代码执行漏洞复现需要的环境准备:kali系统安装docker和部署vulhub服务,敬请关注我的公众号:大象只为你,持续更新中…

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值