代码执行php代码审计1

(1)原理

当应用在调用一些能将字符串转换成代码的函数时,没有考虑到用户是否能够控制这个字符串传入一些恶意代码,将造成代码注入漏洞。应用有时候会考虑代码的简洁性,灵活性,会在代码中调用 eval之类的函数。

(2)函数

1)php

eval()    //把字符串作为PHP代码执行
assert()    //检查一个断言是否为 FALSE,可用来执行代码
preg_replace()    //执行一个正则表达式的搜索和替换
call_user_func()//把第一个参数作为回调函数调用
call_user_func_array()//调用回调函数,并把一个数组参数作为回调函数的参数
array_map()        //为数组的每个元素应用回调函数

2)python

exec(string) # Python代码的动态执行
eval(string) # 返回表达式或代码对象的值
execfile(string) # 从一个文件中读取和执行Python脚本
input(string) #Python2.x 中 input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入
compile(string) # 将源字符串编译为可执行对象

(3)代码执行的分类

1)执行代码的函数

eval、assert

2)callback函数

preg_replace+/e模式

3)反序列化

unserialize()–反序列化函数

(4)代码执行的危害

1)执行PHP代码

获取服务器内容或相关信息

2)让网站写shell

利用代码PHP代码功能,往服务器中写入shell脚本

3)控制服务器

利用shell脚本,上传大马,甚至控制服务器

(5)代码

(6)代码执行的防御方法

1.尽量不要使用危险函数

使用json保存属组,当读取时就不要使用eval了

2.对数据进行黑白名单处理

对于必须使用eval的地方,一定要严格处理用户的数据

3.对传入的特殊字符转义

字符串使用单引号包括可控代码,插入前使用addslashes转义(addslashes、魔术引号、htmlspecialchars、htmlentities、msql_real_escape_string)

目录

(1)原理

(2)函数

1)php

2)python

(3)代码执行的分类

1)执行代码的函数

2)callback函数

3)反序列化

(4)代码执行的危害

1)执行PHP代码

2)让网站写shell

3)控制服务器

利用shell脚本,上传大马,甚至控制服务器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值