代码执行漏洞

漏洞简述

应用程序在调用一些能够将字符串转换为代码的函数时,如PHP中的eval(),没有考虑用户是否控制这个字符串,造成的代码执行漏洞。

  • 命令执行与代码执行漏洞区别

命令执行漏洞是可以直接调用操作系统命令,代码执行漏洞是靠执行脚本代码调用操作系统命令

  • 命令执行&代码执行漏洞危害

可以执行代码、系统命令进行读写文件、反弹shell等操作,拿下服务器,进一步内网渗透等等。

  • 代码执行,文件读取,命令执行的函数都有哪些

代码执行:eval,pregreplace+/e,assert,calluserfunc,calluserfuncarray,create_function

命令执行:

system(), exec(), shellexec(), passthru() ,pcntlexec(), popen(),proc_open()

文件读取:

filegetcontents(),highlightfile(),fopen(),read file(),fread(),fgetss(), fgets(),parseinifile(),showsource(),file()等

漏洞实例

Discuz 7.x/6.x 全局变量防御绕过导致代码执行

由于php5.3.x版本里php.ini的设置里request_order默认值为GP,导致$_REQUEST中不再包含$_COOKIE,我们通过在Cookie中传入$GLOBALS来覆盖全局变量,造成代码执行漏洞。

cd discuz/wooyun-2010-080723/    进到靶机环境目录
service docker start    启动docker
docker-compose up -d    构建环境

启动好后,访问http://your-ip:8080/install/ 来安装discuz 数据库地址填写db,数据库名为discuz,数据库账号密码均为root 安装好后随便访问个帖子,并抓包。 把cookie进行替换

漏洞修复

Last updated

Was this helpful?