无数字字母Remote Command Execution

admin 2024年11月24日14:58:59评论7 views字数 1434阅读4分46秒阅读模式
无数字字母Remote Command Execution
前言

Remote Code Execution和Remote Command Execution在无数字字母的条件下解法完全不同。代码执行还可以通过各种方法取字母数字构建函数;但是在系统命令下基本无法构建数字字母,需要我们使用强制上传的方法上传要执行的命令,再去读取上传的临时文件。

无数字字母Remote Command Execution
前置知识点

PHP强制文件上传

需要在php.ini中设置file_uploads

在PHP中,上传的信息一般会放在$_GET$_POST$_SERVR$_COOKIE$_SESSION$_FILES 这6个超全局变量中,因为不知道在设计时是否需要上传文件,为了防止上传的文件丢失,PHP会默认初始化$_FILE 变量,用于临时文件的存储。基于以上的原因,在file_uploads打开的情况下,所有的PHP文件都可以进行强制文件上传,只需要构建相应的上传页面即可。

无数字字母Remote Command Execution

PHP临时文件上传

PHP临时文件的理解及应用中我详细介绍了PHP文件上传以及可以利用的方式。

我们都知道php文件上传时,一般是将文件上传到临时目录,然后再将临时目录移到其它地方这儿主要介绍php.ini中的两个参数

file_uploads 是否允许上传upload_tmp_dir 是默认的临时文件的保存目录(linux默认为/tmp)

命名规则

而且需要说明一下,临时文件的命名规则,默认为 php+4或者6位随机数字和大小写字母

/tmp/php[0-9A-Za-z]{3,4,5,6}

比如 :phpXXXXXX.tmp 在windows下有tmp后缀,linux没有。

生命周期

临时文件是有生命周期的,一般情况下,生命周期为被上传的PHP文件的代码运行周期。

无数字字母Remote Command Execution

另外,如果在php运行过程中,php非正常结束,比如崩溃,那么这个临时文件就会被永久保留。注:如果不能RCE,这里可以利用文件包含进行危害扩大化。

linux 点命令

在linux下,.(点)+(空格)+可执行文件等同于source+(空格)+可执行文件,表示在当前shell环境执行后面的命令或脚本例如 . /home/test.sh 等同于 source /home/test.sh。

无数字字母Remote Command Execution
实现

源码

<?php  error_reporting(0);  highlight_file(__FILE__);  $cmd=$_GET['cmd'];  if(!preg_match("/[a-z]|[0-9]/i",$cmd)){system($cmd);  }  ?>

分析

上述代码时考察的是无字母数字系统命令执行,需要我们将待执行的系统命令用其他方法传入。

过程

先用HTML构建当前php文件的上传页面(或者也可以直接用hackbar上传表单的形式上传文件)

无数字字母Remote Command Execution

将需要执行的命令写入txt文件上传。

无数字字母Remote Command Execution

linux中命令可以以文件的形式存在,直接传入命令文件也可以。

#! /bin/bashcat /etc/passwd

用burp抓取上传的请求包,修改传入的cmd参数,并发送到重放器。这里的cmd=.+/???/????????[@-[]是用点命令执行临时文件的意思,最后的[@-[]是为了缩小查找临时文件的范围。

无数字字母Remote Command Execution

无数字字母Remote Command Execution

需要无字母数字执行系统命令,都可以采用上传文件+执行文件的方式来绕过正则。

原文始发于微信公众号(7coinSec):无数字字母Remote Command Execution

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月24日14:58:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   无数字字母Remote Command Executionhttps://cn-sec.com/archives/1863854.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息