ctfshow web41 无字母数字命令执行

1

首先,捋一捋思路,我们可以先看过滤的字符
比如/[0-9]|[a-z]|\^|\+|\~|\$|\[|\]|\{|\}|\&|\-/i或者/[a-z0-9]/is
这里可以先看P神的一些不包含数字和字母的webshell
,大概意思就是通过一些字符互相运算后构造得到我们的payload,了解基本原理之后,我们再看ctfshow中的这样一道例题

<?php

/*
# -*- coding: utf-8 -*-
# @Author: 羽
# @Date:   2020-09-05 20:31:22
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-05 22:40:07
# @email: 1341963450@qq.com
# @link: https://ctf.show

*/

if(isset($_POST['c'])){
   
    $c = $_POST['c'];
if(!preg_match('/[0-9]|[a-z]|\^|\+|\~|\$|\[|\]|\{|\}|\&|\-/i', $c)){
   
        eval("echo($c);");
    }
}else{
   
    highlight_file(__FILE__);
}
?>

通过代码审计我们可以知道这个题过滤了$、+、-、^、~使得异或自增和取反构造字符都无法使用,但是留了一个|也就是或运算还可以用,这个时候利用Y4师傅和羽师傅的脚本结合一手,即可很方便的做出来这题。先看Y4师傅的脚本

<?php
/*
# -*- coding: utf-8 -*-
# @Author: Y4tacker
# @Date:   2020-11-21 20:31:22
*/
//或
function orRce($par1, $par2){
   
    $result = (urldecode($par1)|urldecode($par2));
    return $result;
}

//异或
function xorRce($par1, $par2){
   
    $result = (urldecode($par1)^urldecode($par2));
    return $result;
}

//取反
function negateRce(){
   
    fwrite(STDOUT
### 关于Spring Cloud Alibaba Nacos Discovery的配置与使用 Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。`spring-cloud-starter-alibaba-nacos-discovery` 提供了基于 Spring Cloud 的集成支持,使得微服务可以轻松实现注册与发现功能。 #### Maven依赖引入 为了在项目中启用 `nacos-discovery` 功能,需在项目的 `pom.xml` 文件中添加如下依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2023.1.0</version> <!-- 版本号应根据实际需求调整 --> </dependency> ``` 上述代码片段展示了如何通过Maven构建工具来引入必要的starter包[^1]。 #### 配置文件设置 在应用的 `application.yml` 或者 `application.properties` 中进行相应的配置以连接到Nacos服务器并完成服务注册和发现操作。下面是一个典型的YAML格式配置实例: ```yaml spring: application: name: example-service # 定义服务名称 cloud: nacos: discovery: server-addr: localhost:8848 # 设置Nacos Server地址 namespace: public # 可选命名空间ID,默认为空字符串"" group: DEFAULT_GROUP # 组名,默认为DEFAULT_GROUP metadata: # 自定义元数据键值对 version: v1 # 示例版本信息 environment: dev # 运行环境标记(dev/test/prod等) ``` 此部分描述了基本的服务端口以及网络位置参数设定方式[^2]。 #### 启动类注解声明 为了让应用程序能够自动向Nacos注册自己作为一个可用的服务节点,在主启动类上加上特定的@Enable...系列注解即可激活该特性: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.alibaba.cloud.nacos.NacosDiscoveryProperties; @SpringBootApplication public class ExampleApplication { public static void main(String[] args) { SpringApplication.run(ExampleApplication.class, args); } } ``` 注意这里并没有显式调用任何额外的方法去手动触发注册过程;这是因为当检测到classpath下存在相关组件时,框架会替开发者处理好这一切逻辑细节[^3]。 另外如果希望进一步定制化行为比如修改默认心跳间隔时间,则可以通过重写某些bean定义或者直接扩展官方提供的接口类来达成目的。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值