REC代码及命令执行代码全解

REC代码及命令执行代码全解

​ 在Web应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞。
image-20210817090508378

代码执行

代码执行的危害

执行脚本代码 脚本能干嘛 它就能干嘛

案例(PHP环境)

image-20210817091040647

假设对方存在这样的一个代码执行漏洞 就可以用代码去攻击它

通过evel去上传一个webshell,然后去控制它

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Bill Gates\n";
fwrite($myfile, $txt);
$txt = "Steve Jobs\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

当evel换成system后,就能够执行系统命令,而操作命令取决于操作系统

image-20210817091844132

执行系统命令(当前系统为windows)

image-20210817092018438

漏洞形成条件
代码层面
  • 可控变量

    通过参数值改变值

  • 漏洞函数

    使用的那一个函数对变量进行操作,例如evel()与system() ,他们产生的漏洞一个是代码执行,一个是系统命令

漏洞检测
白盒测试
  • 代码审计
黑盒测试
  • 扫描工具

  • 公开漏洞

  • 手工看参数值及功能点

    ​ 判断他的数据与功能是否相同

案例(墨者靶场)
墨者靶场黑盒功能点命令执行-应用功能

image-20210817110718303

打开之后 出现界面

image-20210817110813165

当我输入127.0.0.1

出现结果
image-20210817110854569

这个网站的功能 类似于系统的ping命令,这个地方就有可能出现命令执行漏洞

当我们知道存在漏洞的可能性之后,有一下几个步骤

  • 分析是什么操作系统

    • 操作系统不一样,系统命令不一样,通过抓包获取操作系统类型

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-91Ajnb3Z-1629175278798)(D:\Desktop\小迪说安全\image-20210817111349142.png)]

  • 当确定操作系统之后,手工进行测试

    image-20210817111529964

  • 我们开始进行管道服务(一条命令执行多条命令)

    image-20210817111812892

    image-20210817111933796

  • 利用burp进行抓包

    image-20210817112249500

  • 获取到目录

    image-20210817112330060

  • 读取key文件,获取key

    image-20210817112607822
  • 总结

    根据功能去判断它可能存在这样的漏洞

墨者靶场白盒代码及命令执行-代码分析

image-20210817112754372

image-20210817113353777

  • 查看源码

    image-20210817113527207

  • 在网上找一个线上环境,运行一下这个环境即可

    image-20210817113754617

  • 获取key

    image-20210817114054050

墨者靶场黑盒层RCE漏洞检测-公开漏洞

image-20210817115812452

image-20210817115847029

Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器 访问Webmin的各种管理功能并完成相应的管理动作。

  • 网站搜索webmin漏洞

    image-20210817120119872

  • 复现漏洞即可 https://www.cnblogs.com/whoami101/p/11465877.html

javaweb-Struts2框架类RCE漏洞-漏洞层面

通过响应信息查看情况

image-20210817121226706

搜索漏洞复现即可

image-20210817122011623

防御

  • 敏感函数禁用(php为例)
    • system 执行外部程序并显示输出
    • exec 执行一一个外部程序
    • shell_exec 通过hel环境执行命令,并将完整的输出以字符串的方式返回
    • passthru 执行外部命令并显示原始输出
    • pcntl_exec 在当前进程空间执行指定程序
  • 变量过滤或固定

  • WAF产品

例)

  • system 执行外部程序并显示输出

  • exec 执行一一个外部程序

  • shell_exec 通过hel环境执行命令,并将完整的输出以字符串的方式返回

  • passthru 执行外部命令并显示原始输出

  • pcntl_exec 在当前进程空间执行指定程序

  • 变量过滤或固定

  • WAF产品

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值