当前位置: 首页 > news >正文

CTFshow--爆破靶场全攻略

前言

欢迎来到我的博客

个人主页:北岭敲键盘的荒漠猫-CSDN博客

本文主手把手详细整理ctfshow中爆破的攻略

 web21

打开页面发现要输入密码

观察数据包

401未授权

我们随便输入密码试试

再观察数据包

乍一看好像这个get没有任何参数

但是仔细看的话会发现多了一个明显为base64的东西

authorization

解密一下看看

咱们输入的东西

那么payload就是:分割账号密码,在这个位置进行爆破即可

下载下他的爆破字典

转化为规定形式

利用字典生成器来生成字典

把生成好的密码都存进去

制作爆破数据包

完成开始爆破

获得flag

web22

现在已经不能够使用了,直接给你了flag。

可以理解为:子域名爆破,我们疯狂试试域名,看返回码判断是否有域名。

web23

打开页面是一大串代码

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 11:43:51
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 11:56:11
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/
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__);}
?> 

意思分析

看看有没有传入token值,然后给token进行md5加密。

之后判断第二个,第15个,第18个字符是否相等。

然后再判断他们加起来除以第二个字符是否等于第32个字符

如果满足条件就会给出flag

解题思路

fuzz大法,管他这么多干嘛,从一直接往后梭哈梭哈梭哈。。。

自己写脚本梭哈一个大数字典

然后梭哈梭哈梭哈

梭哈完成收工睡觉

web24

打开页面

这啥jb玩意

 <?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 13:26:39
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 13:53:31
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/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');
}?> Linux version 5.4.0-163-generic (buildd@lcy02-amd64-067) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)) #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 Linux version 5.4.0-163-generic (buildd@lcy02-amd64-067) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)) #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023

意思表达

接收参数r,然后设置了一个随机数种子,当我们输入的数字跟随机数相同的话就会输出flag

知识拓展

mt_srand是设置随机数种子,直观理解就是我的世界地图种子,我们生成地图是随机的,但是我们使用随机数种子那么就是固定的。这个是个伪随机数。

解题思路

我们抓个数据包看看他是php什么版本

然后使用对应的版本,写一个相同的随机数种子,看看是啥就行。直接过

抓包看版本(我有插件直接爆版本了)

web25

 <?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 13:56:57
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 15:47:33
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/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');
}
Linux version 5.4.0-163-generic (buildd@lcy02-amd64-067) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)) #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 Linux version 5.4.0-163-generic (buildd@lcy02-amd64-067) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)) #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023

意思解析

本题也是随机数的题目。

一开始检测r参数,随机数的种子是固定的。

当我们传入了r之后它就会输出r-随机数生成的数并且给我们返回回来。

输出flag的条件是

我们输入的r参数与生成的第一个随机数相减为零,并且cookie为第二,3个数的和,那么就可以给我们输出flag。

解题思路

这场的种子是固定的,重点是我们猜出种子,然后利用种子跑出第2,3个数字,再进行传参。

本场的突破点就是这个r,它会返回r参数与第一个数的差值,也就是说我们输入0,那么就是负的第一个数。

传入参数r=0看看生成的第一个随机数是什么(每次的数字都不一样)

然后利用php随机数破解工具破解

kali中下载使用

git clone https://github.com/openwall/php_mt_seed

cd php_mt_seed

make

time ./php_mt_seed 第一个随机数

之后选出其中相应版本的php种子到php中全部算出来

之后依次尝试即可

r传递第一个随机数

cookie里传入token=第二三个随机数的和

然后就会出现flag了。

web26

打开页面,甚是懵逼

抓包看看,有啥东西

这题有点蒙,密码是7758521

输入后就会出现密码了,但是我爆破爆了大半年。有点离谱

看了看资料也是硬着头爆破的。

web27

菜鸡学院招生

录取名单会下载表格

根据表格中在学籍查询系统里爆破

这题是好题,但是也真的坑。

火狐玩家会被拦截post请求。所以莫得玩。

去别的浏览器玩吧

别的浏览器抓包需要开启本地计算机代理,说实话真不方便

这儿用的微软的,谷歌的都是需要这么开代理

 然后放进去爆破

硬着头爆破的话说实话还得爆破挺久的。

所以我们要动脑子思考咯

身份证中间位数是生日日期,而文中的相应位置刚好为生日日期。

也就是说,我们把现在还活在世界上的人的生日都给试一遍即可

我从1900年到2024年之间进行爆破,payload如上。

最终爆破身份号为

621022199002015237

 把他的编码进行中文解码

 其实yakit比较只能自动帮你解了

学号有了,密码为身份证号直接进

web28

最后的老表,大海捞针。

初始页面挺奇怪

之后爆破01即可

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python 课程14-TensorFlow
  • 张养浩,文坛政坛的双重巨匠
  • string类(C++)
  • 轴对齐包围盒(AABB)和有向包围盒(OBB)介绍
  • oracle停止当前运行的JOB或kill会话
  • synchronized和ReentrantLock区别?
  • 图论篇--代码随想录算法训练营第六十一天打卡| Floyd 算法,A*算法
  • css实现居中的方法
  • 悲观锁与乐观锁
  • 一个WebSocket的前端封装类
  • RocketMQ 消费方式
  • vue组件之间的数据共享
  • vite 使用飞行器仪表示例
  • IDEA 2024.3 EAP新特征早览!
  • C#基础(16)实践:学生成绩管理系统
  • Elasticsearch 参考指南(升级前重新索引)
  • js递归,无限分级树形折叠菜单
  • js作用域和this的理解
  • nodejs实现webservice问题总结
  • Otto开发初探——微服务依赖管理新利器
  • PAT A1120
  • React Transition Group -- Transition 组件
  • React-Native - 收藏集 - 掘金
  • React的组件模式
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 记一次和乔布斯合作最难忘的经历
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 1.Ext JS 建立web开发工程
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 阿里云API、SDK和CLI应用实践方案
  • 阿里云重庆大学大数据训练营落地分享
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​比特币大跌的 2 个原因
  • # 飞书APP集成平台-数字化落地
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $nextTick的使用场景介绍
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (八)Spring源码解析:Spring MVC
  • (二)fiber的基本认识
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (六)软件测试分工
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十三)Maven插件解析运行机制
  • (实战篇)如何缓存数据
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .gitignore文件---让git自动忽略指定文件
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net dataexcel 脚本公式 函数源码
  • .NET gRPC 和RESTful简单对比