web安全---RCE(远程命令/代码执行)原理及DVWA漏洞演示

9 篇文章 0 订阅
1 篇文章 0 订阅

简介

RCE为两种漏洞的缩写,分别是"远程命令/代码执行",攻击者可以远程命令注入系统命令或者代码,从而拿下目标服务器

目录

RCE

漏洞形成

​编辑 漏洞检测

命令分隔符

漏洞模拟


 

RCE

漏洞形成

远程系统命令执行(简称命令注入)是一种注入漏洞。攻击者构造payloads让受害者操作系统执行该命令。当Web应用程序代码包含操作系统调用并且调用中使用了用户输入时,才可能进行OS命令注入攻击。这时候,用户提交的系统命令会直接在服务器中执行,并返回。命令注入漏洞可能会出现在所有让你调用系统外壳命令的语言,如c,python,php等。

 :命令注入并不会使目标服务器受损,但是,可以通过已有权限和其他权限进行提权。

 远程代码执行,代码注入和命令注入攻击方式不同。在后台有需要时,会将用户输入的内容作为代码来进行执行。攻击者可以通过构造恶意代码,编写webshell,反弹shell,等等获得服务器的权限等等。在特定情况下,代码注入可以上升到命令注入。这里的代码可以是php,jsp,python等。因此对前端用户提供的API接口,要实行严格的判断

这里演示一下简单的代码执行

后台php代码为:

url(在本地环境上搭建),给ba传值为phpinfo();

漏洞检测

RCE漏洞是由没过滤一些危险函数导致的,常见思路就是对web输入框进行一个测试。

常见注入方式

在没有限制的时候,通常直接查看操作系统后,ls或者dir查看当前目录,如果没被过滤就直接免去麻烦操作。

命令目的linuxwindows
当前用户名whoamiwhoami
操作系统uname -aver
网络配置ifconfigipconfig /all
网络连接netstat -annetstat -an
运行进程ps -eftasklist

 可以通过查看不同系统来对其使用相对的命令。

系统命令执行函数

system() //执行一个外部程序或者系统命令

exec()//执行一个外部程序

shell_exec() //通过shell环境执行命令,并输出完整的字符串

passthru() //执行外部程序并且完整的输出

popen() //打开进程文件指针

proc_open()//执行一个命令,并且打开输入输出的指针

pcntl_exec() //在当前进程空间执行指定程序

如:使用php中的系统函数来进行查看当前系统,如

<?php
ststem(phpinfo())
?>

就可以直接查看当前系统的phpinfo()


命令分隔符

LINUX

;        前面执行完接着执行后面
|       管道符,显示后面执行的结果
||当前面执行错误时执行后面的

注:可用**%0A和\n**进行换行执行

Windows

|管道符,前面的命令标准输出,后面的命令标准输入。如help |more
&先运行“&“前面的,在运行”&“后面的
&&

先运行”&&“前面的,如果成功则运行”&&“后面的

||先运行”||“前面的,如果失败就会运行”||“后面的

注:windows中没;操作

通过使用不同的命令分隔符对构造字符传入。并对服务器进行操作。

漏洞模拟

这里我们直接只用DVWA上的命令注入。(dvwa是一个开源性靶场,可以让我们更直观的看到漏洞的产生,原理及应用)

 让我们进行ping的时候,这里就是一个API的调用及输入。

我们在输入框中输入127.0.0.1(前端发生的)

在后端服务器中,程序对用户输入引用到ping上并执行 (后端发生的)

 这时候就产生了一个RCE,我们可以通过命令分隔符在一次输入多个系统命令并执行

在输入框中输入

127.0.0.1&ls    //查看当前目录下的文件

 我们也可以通过查看passwd等之类的文件,或者写入一个反弹shell,从而达到控制服务器的目的


END

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

s0ngd0ck

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值