远程代码执行

漏洞简介

远程代码/命令 执行又称为RCE,由于程序在调用一些函数的时候没有对用户的输入进行检测,所以造成了远程代码执行

但是本质就是利用了相对应的语言执行系统命令

rce 有两种解释

  • remote code execute 远程代码执行
  • remote command execute 远程命令执行

作用

RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

原理

根根原理就是利用了给用户提供了命令执行的方式,但是没有对内容做限制

漏洞挖掘

  1. 黑河挖掘

    相对应的网站本身可以执行相对的命令 比如ip 等

  2. 白盒挖掘

    反序列化漏洞 php java go .net

漏洞危害

  1. 执行PHP代码

    获取服务器内容或相关信息

  2. 向服务器写WebShell

    利用代码PHP代码功能,往服务器中写入shell脚本

  3. 控制服务器

    利用shell脚本,上传大马,甚至控制服务器

Rce和Getshell

在最开始的时候发现对这个有点懵,现在统一的解释一下

RCE:

攻击者利用漏洞成功的在目标的系统上执行任意代码的能力。攻击者往往使用RCE获取目标系统的控制

Getshell:

简单明了的可以知道,就是攻击者得到了一个受攻击系统的shell

总结的说:

Rce是攻击的技术,getshell是攻击成功的结果。攻击者可以通过各种方式实现RCE,而获得getshell是RCE的一种可能结果之一。

漏洞发现

  1. 通过代码审计

    借助代码审计工具,非常方便的审计出此类的漏洞

  2. 一直的CMS漏洞

    已知CMS有很多每年都会爆出来很多此类的漏洞

  3. 页面传参的检查

    针对页面有传入参数的地方,可以重点关注传入恶意代码尝试,概率相对较小

常用的代码执行函数

PHP: eval、assert、preg_replace()、+/e模式(PHP版本<5.5.0)

Javascript: eval

Vbscript:Execute、Eval

Python: exec

Java: Java中没有php中eval函数这种直接可以将字符串转化为代码执行的函数,但是有反射机制,并

且有各种基于反射机制的表达式引擎,如:OGNL、SpEL、MVEL等,这些都能造成代码执行漏洞。

1
2
3
4
5
6
7
8
system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()

漏洞修复

1.尽量不要使用危险函数

2.对数据进行黑白名单处理

3.对传入的特殊字符转义

4.谨慎使用preg-replace的e修饰符

剩下的参考

渗透基础 - chg (tsy244.github.io)

Tags - 靶场刷题记录 - chg (tsy244.github.io)


远程代码执行
https://tsy244.github.io/2023/11/25/web/远程代码执行/
Author
August Rosenberg
Posted on
November 25, 2023
Licensed under