背景介绍

当应用在调用一些能将字符串转化成代码的函数(如php中的eval)时,没有考虑到用户是否能控制这个字符串,将造成代码注入漏洞。狭义的代码注入通常指将可执行代码注入到当前页面中,如php的eval函数,可以将字符串代表的代码作为php代码执行,当前用户能够控制这段字符串时,将产生代码注入漏洞(也称命令执行)。广义上的代码注入,可以覆盖大半安全漏洞的分类

漏洞成因

几种常用语言,都有将字符串转化成代码去执行的相关函数

php       :   eval,assert

python  :   exec

java      :   java中没有类似php中的eval函数这种直接可以将字符串转化为代码执行的函数,但是有反射机制,并期望有各种基于反射机制的表达式引擎,如:OGNL、SpEL等

为什么使用执行代码函数

应用有时候会考虑灵活性、简洁性,在代码中调用eval之类的函数去处理

phpcms中的string2array函数

这个函数可以将phpcms的数据库settings的字符串形式的数组内容转换为真实的数组

漏洞危害

执行代码  ;  上网站写shell   ;   甚至控制服务器

漏洞挖掘

具体操作

漏洞防御

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

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

字符串使用单引号包括可控代码,插入前使用addslashes转义

放弃使用preg_replace的e修饰符,使用preg_replace_callback()替换

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

python如何执行代码漏洞_任意代码执行漏洞相关推荐

  1. 【漏洞复现】XMind2020及2021beta版本存在xss漏洞导致任意代码执行

    简介 XMind是一种功能齐全的思维导图和头脑风暴工具,旨在产生想法,激发创造力,并在工作和生活中带来效率.数以百万计的用户们喜欢它 漏洞(xss) XMind2020及2021beta版本存在xss ...

  2. python 的emulate函数封装_用模拟执行实现Objective-C代码自动化分析

    火眼高级逆向工程实验室脚本系列:用模拟执行实现Objective-C代码自动化分析 写在前面的话 京东安全开源的 qiling 是一个很不错的想法,但是唯一的问题在于它实现的东西太多,比较笨重.有的时 ...

  3. c++数据结构代码整理_抄代码对自己编程提高有用嘛

    仅作学术分享,不代表本公众号立场,侵权联系删除 知乎链接:https://www.zhihu.com/question/387940895编辑:深度学习与计算机视觉 自己刚接触数据结构,完成大作业感觉 ...

  4. nginx 上传文件漏洞_文件上传漏洞小结

    1 概念 上传文件时,服务器端脚本语言,未对上传的文件进行严格的验证和过滤,就有可能上传恶意的脚本文件,从而控制整个网站,甚至是服务器. 2 危害 • 网站被控制,对文件增删改查,执行命令,链接数据库 ...

  5. java 文件包含漏洞_远程文件包含漏洞(pikachu)

    漏洞介绍 File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 ...

  6. 逻辑漏洞之任意用户登陆漏洞

    环境 环境: Web: phpstudy 5.4.45 System: Windows 10x64 源码版本为:vlcms_1.2.0 什么是任意用户登录漏洞 几乎每个网站都有自己的会员系统,有会员, ...

  7. thinkphp日志泄漏漏洞_【Windows高危漏洞预警】CVE20200601,影响关键加密功能

    一.事件报告 2020年伊始,NSA发现了一个影响Microsoft Windows加密功能的严重漏洞(CVE-2020-0601).证书验证漏洞允许攻击者破坏Windows验证加密信任的方式,并且可 ...

  8. msf win10漏洞_【CVE20200796】漏洞复现

    一.漏洞简介 该漏洞是服务器消息块3.1.1(SMBv3)协议中处理压缩消息时,对数据没有经过安全检查,直接使用会引发内存破坏,成功利用针对此漏洞的攻击者可以获得在目标服务器或客户端上执行代码的能力. ...

  9. nginx 上传文件漏洞_文件上传漏洞,解析漏洞总结

    文件上传漏洞.解析漏洞总结 1.文件上传漏洞是什么 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力.常见场景是web服务器允许用户上传图片或者普通文本文件 ...

最新文章

  1. 企业网络推广方法浅析如何提高网站的点击率和访问量呢?
  2. LeetCode Arithmetic Slices(动态规划)
  3. 艺龙十万级服务器监控系统开发的架构和心得
  4. 一个简单的Makefile模板
  5. 2-1:配置与环境之环境
  6. view中显示部分区域
  7. javamail 超时_为什么JavaMail连接超时太长
  8. (转)微信扫码登录网页实现原理
  9. Linux 系统如何更改主机名
  10. 贺利坚老师汇编课程18笔记:栈的操作SS:SP
  11. primefaces_Primefaces工具栏,工具栏组和工具提示
  12. SQL Express数据库的连接问题
  13. java128分解质因数_java分解质因数
  14. Redis:哈希表HSET、HSETNX、HGET、HEXISTS、HMSET、HMGET、HKEYS、HVALS、HGETALL、HDEL命令介绍
  15. SUMO交通仿真-核心概念和基础知识速览
  16. SQL面试题整理_数据库知识点
  17. vue之原生上传图片并压缩图片大小(1)
  18. java实现html页面转pdf解决方案_[Java教程]纯js实现html转pdf
  19. 某电子计算机有400个终端,(概率四习题.doc
  20. win7 codecs 32/64位 v11.3.4

热门文章

  1. 【Java】java 实现 线程交替输出
  2. 【Kafka】kafka Java api 获取 kafka topic 或者 partition 占用的磁盘大小
  3. Current HIVE_LIB is not valid, please export HIVE_LIB='YOUR_LOCAL_HIVE_LIB'
  4. hive The specified datastore driver (“com.mysql.jdbc.Driver“) was not found
  5. php mysql 查询数据出现连接重置_php使用mysql和mysqli连接查询数据
  6. Nginx+Redis 搭建高性能缓存利器
  7. 【intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理 】
  8. Vue 高德地图使用总结
  9. Java设计模式-设计模式概述
  10. Java并发编程-BlockingQueue阻塞队列