练[FBCTF2019]RCEService

[FBCTF2019]RCEService

文章目录

      • [FBCTF2019]RCEService
      • 掌握知识
      • 解题思路
      • 关键paylaod

在这里插入图片描述

掌握知识

json字符串格式,命令失效(修改环境变量)–绝对路径使用linux命令,%0a绕过preg_match函数,代码审计

解题思路

  1. 打开题目链接,发现可以通过json格式传递命令进行命令执行,但是不知道json的键名,输入ls显示无法识别,查看源代码后发现该输入框的name信息为cmd,确定这就是键,构建paylaod{"cmd":"ls"},抓包查看成功回显信息

image-20231002181922327

image-20231002181925042

image-20231002181944684

  1. 发现命令正常执行,准备查看根目录的文件,由于是get传参,所以空格先编码为%20,但是发现回显hacking,经过测试发现是对/进行了过滤

image-20231002182126152

image-20231002182206417

  1. 既然不能使用/,那就直接使用cat命令查看一下index.php文件,发现还是不行,尝试更改cat的格式进行绕过,发现还是不行。

image-20231002182313927

  1. 仔细想想,既然存在过滤,多半碰到的函数都是preg_match,该函数可以通过换行符%0a和数组进行绕过,因为该函数只会匹配第一行数据,除非设置了参数。所以默认为preg_match函数过滤,构建paylaod{%0a"cmd":"cat%20index.php"%0a}。发现还是不行,但是可以执行ls /命令了,证明前面猜测没问题,还绕过来了过滤

image-20231002182603939

image-20231002182846896

  1. 那为什么cat命令还不行执行呢,都已经绕过了过滤。其实在没有限制的情况下命令还不能执行,只能是该命令被屏蔽了,但是使用其他查看文件的命令也都不可以。
  2. 那可能就是环境变量被更改了,需要使用命令的绝对路径来执行,也就是/bin/cat。再次构建paylaod{%0a"cmd":"/bin/cat%20index.php"%0a}。成功回显了文件内容,还得到了一个病毒提示…

image-20231002183305754

  1. 发现过滤函数确实是preg_match,代码的一开始就将环境变量修改了,既然flag不在根目录下,那很可能就在这个环境变量中,查看环境变量目录结构,发现了flag目录,cat命令直接拿下flag

image-20231002183519851

image-20231002183510815

关键paylaod

{"cmd":"ls"}{"cmd":"ls%20/"}{"cmd":"cat%20index.php"}{%0a"cmd":"ls%20/"%0a}{%0a"cmd":"cat%20index.php"%0a}{%0a"cmd":"/bin/cat%20index.php"%0a}{%0a"cmd":"ls%20/home/rceserive"%0a}{%0a"cmd":"/bin/cat%20/home/rceserive/flag"%0a}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/150996.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年中国互联网本地生活服务行业发展历程及趋势分析:国内市场仍有增长潜力[图]

我国本地生活进入4.0时代,“附近消费”场景迭代、渠道多元;更多玩家涌入本地生活赛道,本地消费场景分散到多平台、多模式,线下门店短视频直播运营组合蔚然成风。 本地生活行业发展历程 资料来源:共研产业咨询&#xf…

光伏并网逆变器低电压穿越技术研究(Simulink仿真)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

R实现数据分布特征的视觉化——多笔数据之间的比较

大家好,我是带我去滑雪! 如果要对两笔数据或者多笔数据的分布情况进行比较,Q-Q图、柱状图、星形图都是非常好的选择,下面开始实战。 (1)绘制Q-Q图 首先导入数据bankwage.csv文件,该数据集…

解决:docker安装nginx,在腾讯云服务器可以打开但在本地的电脑浏览器不能打开

第一步运行nginx&#xff1a; [rootVM-24-4-centos ~]# docker run -d --name nginx01 -p 8080:80 nginx [rootVM-24-4-centos ~]# curl localhost:8080 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> html …

JMeter压测如何分配业务比例?

在进行综合场景压测时&#xff0c;由于不同的请求&#xff0c;要求所占比例不同&#xff0c;那如何实现呢&#xff1f; 有人说将这些请求分别放到单独的线程组下&#xff0c;然后将线程组的线程数按照比例进行配置&#xff0c;这种方法不是很好&#xff0c;想想&#xff0c;不…

关于 Vue-iClient-MapboxGL 的使用注意事项

官网&#xff1a;https://iclient.supermap.io/web/apis/vue/zh/api/guide/installation.html 关于图的使用&#xff0c;其余的引入步骤不再赘述&#xff0c;仅说注意事项。 推荐使用的是全局引入&#xff0c;也就是完整引入 因为单独引入我踩了不少坑&#xff0c;比如说 cs…

Thinking for Doing:让LLMs能推断他人心理状态来做出适当的行动。

LLMs通常能回答有关心理状态的问题&#xff0c;但往往不能将这些推断用于实际行动。例如&#xff0c;如果一个故事中的角色正在寻找他的背包&#xff0c;而模型知道背包在厨房里&#xff0c;那么模型应该能推断出最好的行动是建议角色去厨房查看。T4D 的目的就是要求模型不仅要…

Java学习day08:面向对象三大特性之一:继承

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) Java学习day08&#xff1a;面向对象三大特…

辅助寄存器是干什么用的

目录 请问CPU 的 MREQ 引脚和 IORQ 引脚分别是干什么用的 那这里的引脚是什么含义呢&#xff1f; 程序是指令和数据的集合 辅助寄存器是干什么用的 寄存器的用途取决于它的类型 PC 寄存器也叫作“程序指针”&#xff0c;存储着指向 CPU 接下来 要执行的指令的地址。PC 寄存…

Suricata – 入侵检测、预防和安全工具

一、Suricata介绍 Suricata是一个功能强大、用途广泛的开源威胁检测引擎&#xff0c;提供入侵检测 (IDS)、入侵防御 (IPS) 和网络安全监控功能。它执行深度数据包&#xff08;网络流量&#xff09;检查以及模式匹配&#xff0c;在威胁检测中非常强大。 工作流程&#xff1a; 主…

关于对XSS原理分析与绕过总结

一、原理 该文章仅用于信息防御技术教学&#xff0c;请勿用于其他用途。 1、XSS原理 XSS&#xff08;跨站脚本攻击&#xff09;是一种常见的网络安全漏洞&#xff0c;攻击者通常会在网页中插入恶意的 JavaScript 代码。由于服务器对输入数据的过滤和验证不严格&#xff0c;这…

leetcode做题笔记160. 相交链表

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&…

【力扣每日一题】2023.10.7 股票价格跨度

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一个数组表示不同时间的股票的价格&#xff0c;要我们按照顺序返回每天的股票价格跨度&#xff0c;价格跨度就是股票价格小于或等于…

Java源码分析(三)ArrayList

ArrayList是我们经常用到的一个集合类&#xff0c;那么本篇我们一起学习下ArrayList的源码。 一、创建ArrayList 首先&#xff0c;我们从创建ArrayList开始。如下代码&#xff0c;创建一个空的ArrayList&#xff1a; List<String> list new ArrayList<>(); 看下…

从零开始开发企培源码:搭建企业内训小程序的全面指南

在当今竞争激烈的企业世界中&#xff0c;不断提升员工的技能和知识已经成为了保持竞争力的必要条件之一。因此&#xff0c;越来越多的企业开始重视内部培训&#xff0c;以确保员工具备所需的技能和知识。为了更有效地进行内部培训&#xff0c;许多企业都在考虑开发自己的企业内…

【网络通信三要素】TCP与UDP快速入门

网络通信三要素 1.什么是网络编程&#xff1f; 可以让设备中的程序&#xff0c;与网络上其他设备中的程序进行数据交互&#xff0c;从而实现网络通信的手段&#xff0c;java.net.*包下提供了网络编程的解决方案 2.基本的通信架构 基本的通信架构有2种形式&#xff1a;CS架构…

力扣-404.左叶子之和

Idea attention&#xff1a;先看清楚题目&#xff0c;题目说的是左叶子结点&#xff0c;不是左结点【泣不成声】 遇到像这种二叉树类型的题目呢&#xff0c;我们一般还是选择dfs&#xff0c;然后类似于前序遍历的方式加上判断条件即可 AC Code class Solution { public:void d…

利用GPIO中断实现的温度显示器

硬件设计&#xff1a; 软件设计&#xff1a; /****************************************************************************** * * Copyright (C) 2009 - 2014 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obta…

nginx高可用配置(五)

keepalived keepalived安装 1.#进入根目录下的 usr目录 cd /usr 2.#安装keepalived yum install keepalived -y 3.安装完成后在根目录etc下会有个keepalived目录 4.进入keepalived目录 cd keepalived/ 5.ll命令查看&#xff0c;会有个配置文件 keepalived.conf 6.ke…

【juc】countdownlatch实现游戏进度

目录 一、截图示例二、代码示例 一、截图示例 二、代码示例 package com.learning.countdownlatch;import java.util.Arrays; import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurr…