命令执行(RCE)与反序列化

本文深入探讨了命令执行(RCE)和反序列化漏洞,包括远程系统命令执行(如`exec()`、`system()`等)和远程代码执行(如`eval()`)。提到了常见漏洞利用方法,如命令注入测试、Struts2框架漏洞,以及PHP和Java的反序列化原理和危害。同时,文章还列举了防御措施,如禁用危险函数、升级补丁和安全配置。
摘要由CSDN通过智能技术生成
  1. 命令执行(RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。):
    • 分类:
      • 远程系统命令执行 exec()、system()、assert():
        • 设计者在编写代码时没有做严格的安全控制,导致攻击者通过接口或相关参数提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器 。
        • 涉及系统命令:assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,``(反单引号)
      • 远程代码执行  eval():
        • 没有对对接口输入的内容进行严格判断,造成攻击者精心构造的代码非法执行。
        • 涉及代码命令:eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13
    • 命令执行测试方法:
      • &
      • &&  (搜索框输入127.0.0.1&&ipconfig 进行测试)
      • |
      • || (搜索框输入127.0.0.1||ipconfig 进行测试)
    • 查找命令执行漏洞:
      • 只要带参数的地方都可能出现命令执行漏洞,留言的地方,搜索框
      • 常见的路由器、防火墙、入侵检测、自动化运维平台
    • 代码执行:

       

    • 总结一句话:
      • 参数给变量的时候,交给了一个不安全的函数(eval、exex、system等)处理。
    • struts2框架漏洞(s2-045、s2-046、s2-048都是命令执行漏洞,没有反序列化漏洞)实战 (手工测试:在user-agent头里边插入攻击代码,攻击代码码包含struts2字眼) | 面试经常问:
      • K8 Struts2 Exp工具测试struts2漏洞 | S2-045漏洞复现
      • 上传至指定目录文件:
      • Struts2  漏洞检查工具2018版 使用 上传木马到 网站根目录,使用菜刀进行连接  S2-046漏洞复现

       

       

       

  2. 反序列化(将字符串转换为对象),序列化(将对象转化为字符串) | 其实就是一串编码后的代码,相当与代码执行:
    • 原理:
      • 就是把一个对象变成可以传输的字符串,目的就是为了方便传输

       

    • 条件:
      • 参数必须是可控的
      • 不正确的使用了魔术函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值