1-RCE代码及命令执行漏洞

RCE

  • remote code/command execute:远程代码/命令执行漏洞
  • 在 Web 应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用 代码或命令执行函数去处理
  • 比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞
  • 同样调用系统命令处理,将造成命令执行漏洞
  • 即RCE漏洞是两个漏洞:
    • 代码执行漏洞 # 针对后端语言!
    • 命令执行漏洞 # 针对系统!

代码执行

脚本
  • PHP
  • Java
  • Python
产生
  • web源码
    • thinkphp
    • eyoucms
    • wordpress
  • 中间件平台
    • Tomcat
    • apeche struts2
    • redis
  • 其他环境
    • php-cgi
    • jenkins-cl
    • java RMI
监测
  • 白盒:代码审计
  • 黑盒:漏扫工具、公开漏洞、手工看参数及功能点
    • 参数上加脚本代码探测脚本类型,同时可以看能否执行
防御
  • 敏感函数禁用
  • 变量过滤或固定
  • waf产品

命令执行

系统
  • windows、linux
  • 不同操作系统的指令/命令是不一样的
产生
  • web源码
    • nexus
    • webmin
    • elasticsearch
  • 中间件平台
    • weblogic
    • apeche
  • 其他环境
    • postgresql
    • samba
    • supervisord
监测
  • 白盒:代码审计
  • 黑盒:漏扫工具、公开漏洞、手工看应用功能点决定
防御
  • 敏感函数禁用
  • 变量过滤或固定
  • waf产品

漏洞形成条件

  • 可控变量、漏洞函数
  • 看网站功能:如果网站拓展功能多,比如查询接口,其他服务什么的,可能会有RCE

php示例

eval()函数
  • eval是evaluate的简称
  • 这个函数的作用就是把一段字符串当作PHP语句来执行,一般情况下不建议使用,容易被黑客利用
  • 利用:
    • eval(phpinfo()😉
    • eval(echo 123;)
    • 写入后门文件
system()函数
  • 执行外部程序并且输出资料,用来执行指令,并输出结果
  • 利用:
    • system(ipconfig) windows
    • system(ifconfig) linux
    • system(dir) windows
    • system(ls) linux(windows不识别ls命令)

快速判断操作系统

  • 抓数据包(ubuntu是linux系统)
  • ping看ttl

管道符

  • linux:|
    linux:pwd显示当前工作目录

cat<filename ?输出重定向,可以代替空格

eval(echo $_REQUEST[a]),?如果去掉echo和反引号就会编程代码执行,有就是命令执行,反引号就是把echo的输入当作命令执行,反引号内的字符串,会被解析成os命令,回尝试将其中的内容作为shell命令执行,并将其输出信息返回,win和linux都能用,不过代码写的不一样

https://www.cnblogs.com/ermei/p/6689005.html

posted @ 2025-05-14 21:18  micryfotctf  阅读(18)  评论(0)    收藏  举报