栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

代码执行php代码审计1

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

代码执行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脚本,上传大马,甚至控制服务器

(5)代码

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

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

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

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

4.放弃使用Preg-replace的e修饰符


使用preg_replace_callback()替换(preg_replace_callback()),若必须使用preg_replace的e修饰符,则必须使用单引号包裹正则匹配出的对象

代码执行&命令执行详解_一只小白白灬的博客-CSDN博客_代码执行代码执行什么是代码执行?当应用在调用一些能将字符串转换成代码的函数时,没有考虑到用户是否能够控制这个字符串传入一些恶意代码,将造成代码注入漏洞https://www.anquanke.com/post/id/229611 详细介绍为什么存在代码执行漏洞?应用有时候会考虑代码的简洁性,灵活性,会在代码中调用 eval之类的函数利用方式比如可以利用PHP的文件操作写入一个shell文件PHP代码执行*eval() //把字符串作为PHP代码执行assert() //检查一个断言是https://blog.csdn.net/weixin_56714714/article/details/119066957

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/846630.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号