2022-10-11(一、远程命令执行和系统命令执行)

这篇具有很好参考价值的文章主要介绍了2022-10-11(一、远程命令执行和系统命令执行)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

命令执行

命令执行漏洞是指攻击者可以随意执行系统命令
分为

  • RCE (远程命令执行(远程代码执行))
  • 系统命令执行两类。

原理

程序应用有时候需要调用一些系统命令的函数,如PHP中的systemexecshell_execpassthrupopenproc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。

现在很多的甲方企业都开始实施自动化运维,大量的系统操作会通过"自动化运维平台"进行操作。 在这种平台上往往会出现远程系统命令执行的漏洞。

危害

1.继承Web服务程序的权限去执行系统命令(任意代码)或读写文件
2.反弹shell
3.控制整个网站甚至控制服务器
4.进一步内网渗透

RCE

RCE(remote command/code execute)
远程命令执行(远程代码执行)

RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

管道符号

Linux常用管道符

; 前面的执行完执行后面的,排队
| 前面命令的打印结果作为后面命令的输入
|| 当前面的执行出错时,执行后面的
&相当于or,前面无论真假都会执行后面的
&& 相当于and,前假后不执行,前真后执行

Windows常用管道符

“|”、“||”、“&”、“&&”和Linux同理

远程执行常用函数

执行系统命令:

assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,``(反单引号)

1.exec()
命令执行结果的最后一行内容,如果你需要获取未经处理的全部输出数据,使用passthru()函数
2.system()
输出执行结果,返回最后一行。
如果PHP运行在服务器模块中,system()函数还会尝试在每行输出完毕之后,自动刷新web服务器的输出缓存。
3.passthru()
执行外部程序并且显示原始输出。同exec()函数类似,passthru()函数也是用来执行外部命令的。当所执行的Unix命令输出二进制数据,并且需要直接传送到浏览器的时候,需要用此函数来替代exec()或system()函数。常用来执行诸如pbmplus之类的可以直接输出图像流的命令。
4.shell_exec()
通过shell环境执行命令,并且将完整的输出以字符串的方式返回。该函数会在错误出现或者程序执行没有输出两种情况下返回NULL,也就是说,没有办法通过该函数检测程序执行失败(可以改用exec)。
5.popen()
打开一个指向进程的管道,该进程由派生指定的 command 命令执行而产生。返回一个和 fopen() 所返回的相同的文件指针,只不过它是单向的(只能用于读或写),此指针可以用于 fgets(),fgetss() 和 fwrite()。并且必须用 pclose() 来关闭。若出错,则返回 false。
6.proc_open()
执行一个命令,并且打开用来输入/输出的文件指针。

代码执行与加密:

eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13

eval()和assert()都是把字符串当PHP代码,但用法不同,eval是语言构造器,不是函数,不能被可变函数使用。

直接查看源码,发现后台使用了evel()函数来处理用户输入的内容,如果不是evel要处理的格式就输出“你喜欢的字符还挺奇怪的!”。因此我们可以构造一个特殊内容触发evel函数执行,我们尝试输入:phpinfo(),页面直接将phpinfo()的内容显示了出来。

文件包含与生成:

require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite

PHP代码执行函数

1.evel():传入的参数必须为PHP代码,既需要以分号结尾。
2.assert():直接将传入的参数当成PHP代码执行,不需要以分号结尾,当然加上也可以。
3.preg_replace():#preg_replace(‘正则规则’,‘替换字符’,‘目标字符’)
#执行命令和上传文件参考assert函数(不需要加分号)。
#将目标字符中符合正则规则的字符替换为替换字符,此时如果正则规则中使用/e修饰符,则存在代码执行漏洞。
4.create_function():创建匿名函数执行代码。
5.array_map(): 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
6.call_user_func():传入的参数作为assert函数的参数。
7.call_user_func_array():将传入的参数作为数组的第一个值传递给assert函数。
8.array_filter():用回调函数过滤数组中的元素:array_filter(数组,函数)
9、uasort():

敏感文件

利用远程命令执行漏洞可以读取一些操作系统的敏感文件,从而获取重要信息。
Windows系统敏感信息:
C:\boot.ini //查看系统版本
C:\windows\system32\inetsrv\MetaBase.xml //IIS配置文件
C:\windows\repair\sam //windows初次安装的密码
C:\program Files\mysql\my.ini //Mysql配置信息
C:\program Files\mysql\data\mysql\user.MYD //Mysql root C:\windows\php.ini //php配置信息

Linux系统敏感信息:
/etc/passwd //linux用户信息
/usr/local/app/apache2/conf/httpd.conf //apache2配置文件
/usr/local/app/php5/lib/php.ini //php配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/etc/my.cnf //Mysql配置文件

例子

在URL后面拼接:"?a=var_dump(file_get_contents(‘C:\Windows\System32\drivers\etc\hosts’))",执行代码,获取hosts文件信息

在URL后拼接:"?a=var_dump(file_get_contents(‘C:\Windows\win.ini’))",执行代码,获取win.ini文件信息

利用远程命令执行漏洞可以执行一句话木马,从而GetShell,借助WebShell工具连接一句话木马。

在URL后拼接?a=@eval($_POST[666]),执行代码,构造一句话木马文章来源地址https://www.toymoban.com/news/detail-536922.html

加固

  • 实施严格的白名单策略
  • 加入Anti-CSRF token
  • 尽量不要使用命令执行函数。
  • 在使用动态函数之前,确保使用的函数是指定的函数之一。
  • 对PHP语言来说,不能完全控制的危险函数最好不要使用。

参考

  • 命令执行漏洞之远程命令执行和系统命令执行
  • 远程命令执行和远程代码执行
  • linux之管道符详解
  • 12.远程代码执行和远程命令执行

到了这里,关于2022-10-11(一、远程命令执行和系统命令执行)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 思福迪Logbase运维安全管理系统test_qrcode_b接口远程命令执行漏洞漏洞复现 [附POC]

    免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章

    2024年01月17日
    浏览(48)
  • [JAVA安全]CVE-2022-33980命令执行漏洞分析

    在 i春秋的漏洞靶标上看见了此漏洞,所以前来分析一下漏洞原理,比较也是去年 7月的漏洞。 漏洞描述:Apache官方发布安全公告,修复了一个存在于Apache Commons Configuration 组件的远程代码执行漏洞,漏洞编号:CVE-2022-33980,漏洞威胁等级:高危。恶意攻击者通过该漏洞,可在

    2024年02月15日
    浏览(43)
  • 多个安全厂商安全设备 远程命令执行漏洞复现

    此文章仅用于技术交流,严禁用于对外发起恶意攻击!!! 该漏洞可执行远程代码 FOFA:body=“/webui/images/default/default/alert_close.jpg”

    2024年02月03日
    浏览(47)
  • 漏洞复现-SeaCMS_v10.1_远程命令执行(CNVD-2020-22721)

    seacms_v10.1有效 cnvd-2020-22721 命令执行漏洞 海洋CMS一套程序自适应电脑、手机、平板、APP多个终端入口。 SeaCMS v10.1存在命令执行漏洞,在w1aqhp/admin_ip.php下第五行使用set参数,对用户输入没有进行任何处理,直接写入文件。攻击者可利用该漏洞执行恶意代码,获取服务器权限。

    2024年02月08日
    浏览(43)
  • CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

    小白一个,记录解题过程,如有错误请指正! 知识点:         eval():把字符串 code 作为PHP代码执行。函数eval()语言结构是非常危险的,因为它允许执行任意 PHP 代码。它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外别无方法, 请多加注意,不要允许传入

    2024年02月01日
    浏览(47)
  • Ubuntu系统升级OpenSSL-3.0.5和OpenSSH-9.0解决远程代码执行漏洞(CVE-2022-2274)

    OpenSSL 是 OpenSSL团队的一个开源的能够实现安全套接层(SSLv2/v3)和安全传输层(TLSv1)协议的通用加密库。该产品支持多种加密算法,包括对称密码、哈希算法、安全散列算法等。近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSL 安全漏洞(CNNVD-202207-242、CVE-2022-2274)情况的

    2024年02月02日
    浏览(53)
  • 蓝海卓越计费管理系统远程命令执行

    活着,就要时刻准备承受磨难! 蓝海卓越计费管理系统存在命令调试页面,导致攻击者可以远程命令执行 访问 debug.php页面 远程调试命令执行 漏洞证明 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播或利用此文所提供的信息、技术或方法而造成

    2024年02月15日
    浏览(42)
  • 禅道项目管理系统远程命令执行漏洞

    禅道项目管理系统远程命令执行漏洞,禅道是第一款国产的开源项目管理软件,它的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发

    2024年02月13日
    浏览(43)
  • MSP432学习笔记10:串口接收字符串命令并执行任务

    今日终于得以继续我的MSP432电赛速通之路: 串口通信是单片机需要学习深入的一个很重要的板块,通过串口,我们可以实现许多数据收发与调试工作,可谓是非常方便快捷。 今日就跟随我的脚步,逐步扎实地学习 如何编程MSP432串口接收字符串命令 ,并使其执行一些任务,

    2024年02月10日
    浏览(78)
  • Java通过OpenSSH(ssh2/ScpClient)远程连接Windows10实现传输文件、解压缩包、执行命令等操作

    远程机器A:Windows 10 专业版 22H2 本地环境:jdk8 设置 -- 应用 -- 应用和功能 -- 可选功能 -- 添加功能 由于我已经安装,在以安装功能里面即可找到。未安装的用户选择添加功能添加即可 启动 OpenSSH SSH Server 服务 输入ssh 出现如下提示即安装成功 编写 bat 脚本,在远程机器上面静

    2024年02月14日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包