网络安全深入学习第一课——热门框架漏洞(RCE-代码执行)


一、代码执行概述

代码执行定义:
------ 应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。远程代码执行实际上就是调用服务器网站代码进行执行。

------ 代码执行漏洞是指应用程序本身过滤不严,用户可以通过请求将代码注入到应用中执行。


二、代码执行相关函数

  • PHP:eval、assert
  • Javascript:eval
  • Vbscript: Execute、Eval
  • Python:exec
  • Java:Java中没有类似php中eval 函数这种直接可以将字符串转化为代码执行的函数,但是有反射机制,并且有各种基于反射机制的表达式引擎,如:OGNL、SpEL、MVEL等,这些都能造成代码执行漏洞。

1、eval

将字符串当做函数进行执行,需要传入一个完整的语句,必须以分号 ; 结尾,最常用的函数:

<?php eval('echo "hello";'); ?>

2、assert

判断是否为字符串,是则当成代码执行。
在php7.0.29之后的版本不支持动态调用

低版本
<?php  assert($_POST['a']); ?>

7.0.29之后
<?php
	$a = 'assert';
	$a(phpinfo());
?>

3、${ }执行代码

中间的php代码将会被解析。

${phpinfo()};

三、命令执行和代码执行的区别

  1. 涉及到的函数不同

  2. 执行的方式不同
    命令执行: 一般指操作系统命令
    远程代码执行: 一般指的是脚本代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值