代码执行1

代码执行定义
代码执行-相关函数
代码执行的防御
命令执行和代码执行的区别

代码执行定义:Remote Code Execution
应用程序在调用一些能够将字符串转换为代码的函数(如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']);
?>

代码执行方式
${}执行代码(中间的php代码将会被解析)

	${phpinfo()};

eval(将字符串当做函数进行执行(需要传入一个完整的语句))

eval('echo "hello";');

assert(判断是否为字符串,是则当成代码执行)

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

代码执行的防御
1.代码执行的防御分为三个方面 参数 , 函数 和 权限
2.禁用或减少使用执行代码的函数
3.对于必须使用eval的地方,一定严格处理用户数据
4.使用addslashes()函数将参数转译,或使用黑白名单校验
5.限制Web用户的权限
6.升级插件、框架新版本

命令执行和代码执行的区别
1、涉及到的函数不同
2、执行的方式不同
命令执行: 一般指操作系统命令
远程代码执行: 一般指的是脚本代码

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值