ctfshow 爆破(web入门)
目录
web21
web22
web23
web24
web25
web26
web27
web28
web21
打开题目显示要登陆密码
随便输入123,123抓个包试试,发现Authorization:有一串字母,拿去base64解码试试
发现是我们刚输入的账号密码
所以爆破点有了,发送到测试器
清除 §,然后在爆破点加上§
接着在payload这里直接载入从题目下载的字典
接着在有效负载处理那里添加前缀
再添加一个base64编码,同时取消勾选下面的url编码字符
接着到选项这里,调一下请求引擎,线程数建议别调太大,我前面调了200试了几次都没爆出来
爆破结束后查看就可以了
web22
em..............这题的话作者只是想让我们明白一个思路,看到一个站群,它有时候会隐藏的一些子域名,我们可以去通过在线子域名查询这个网站的工具去爆破的。flag的话直接查看hint
web23
点进题目发现是一串代码......这里要满足条件才可以输出flag。
对于这种,我们可以把需要满足的条件复制在本地中调试,得出适合的值。
可以看到得到两个满足的值422和1202,我们随便传一个就可以了。
web24
查看一下题目,令$r的整数值等于随机数mt_rand()产生的整数值,所以这题的话考点是伪随机数。
mt_srand(seed) //播种Mersenne Twister 随机数生成器。
mt_rand() //生成随机数
简单地说就是mt_srand()分发seed种子,然后种子有了后,靠mt_rand()生成随机数。
我们来代码测试一下
这是第一次的运行结果
我们删掉一个mt_rand()试试,让它生成两个随机数。
这时候可以看到了,当种子不变时,产生的随机数是一样的,这就是伪随机数漏洞。所以这道题我们可以传一个r=1155388967,即传第一个种子产生的值,二者相等输出flag。
更深入的可查看这篇博客Web中的随机数安全总结 - 简书 (jianshu.com)
web25
第二十五好玩了,这是一个伤心的故事。题目的逻辑是用get方法传一个r,mt_srand(seed),seed的值为md5加密$flag的前八位字符,并将加密后的值十六进制转换为十进制。
然后判断是否有rand,如果有rand的值则输出$rand;没有则进行$_COOKIE['token']==(mt_rand()+mt_rand())的比较,等于则输出flag。
解法:
我们可以传r=0让其输出第一个mt_rand()的值为625400613,通过php_mt_seed来爆破出种子
php_mt_seed - PHP mt_rand() seed cracker (openwall.com)
下载后在kali解压,如果寻求便利的话可以直接解压到桌面,右键直接打开终端
第一次运行需要先输入make命令,然后输入命令./php_mt_seed +随机数就可以查种子了
然后这题的话抓包重新发送查看响应可以发现这是php7.3版本
那么上面爆破出来的种子只有一个7.1+的
我们到本地(php版本5.4)调试一下输出,得到我们要传的第二个第三个mt_rand()相加的值。
关于为什么第一个mt_rand()的值为什么与题目不一样这个问题,可能是由于版本差异造成的,不同版本下同一个mt_srand(seed)种子产生的mt_rand()的值可能不同。
在bp传r=625400613,传这个值的原因是得到第一个mt_rand()的值为625400613,然后r-mt_rand()=0满足!$rand,才可以进行下一步$_COOKIE['token']的比较
web26
这题的话题目提示可以爆破,em......我爆破了一段时间没有爆破出来,然后就去看看源代码有什么东西
我们尝试在checkdb.php中post几个值试试,发现flag在这里
web27
这题是一个登录系统,先看一下有什么信息,发现有一个录取名单和学生学籍信息查询系统
我们点击录取名单发现弹出一个下载文件,下载后打开发现名字还有缺失的身份证号,暂时还不知道有什么用
接着继续点学生学籍信息查询系统看看,看到这个界面,联系上面得到的文档,好像可以爆破出学生的的身份证号从而完成查询。
我们输入一下web专业同学的名字(高先伊)加身份证号,中间未知的部分随便打,我们在bp抓包试试,这里有个细节,当你点击第一次查询的时候bp抓到了包,但是我们查看bp没有我们输入的部分
这时候我们返回学籍信息查询界面再点一次查询 ,同时返回bp点击放包就可以看到我们输入的东西,爆破点就找到了。
发送到intruder爆破,到这里就是我们的常规操作了,重要的是字典怎么找,首先说一下别人的简便方法吧。在位置这个地方,先清除§,然后在身份证号年月日那里添加§。
然后再payload(有效载荷)这里,类型选择日付(dates),改成这个样子确定范围
调好之后开始攻击后面查看结果得到的东西猜测是学号
然后教务系统的初始密码一般是身份证号,我们登录试试
对于字典的话,我们可以在kali用crunch这个工具制作字典,打开终端后输入命令
crunch 18 18 -t 621022199%%%%%5237 -o 1.txt
讲一下上面的命令:
crunch的命令格式:
crunch <min-len> <max-len> [<charset string>] [options]
我们用-t命令中的%表示数字未知数 ,-o 1.txt,指定输出文件的名称。
我们得到输出的文件后从虚拟机复制到主机,然后载入就可以爆破了
查看长度,发现有一个长一点的
点进去查看响应,猜测这是学号
想深入了解一下crunch的使用可以看看这篇博客(56条消息) crunch命令详解 以及使用方法(综合我的经验)_AbonRommel的博客-CSDN博客_crunch
web28
这题题目提示大海捞针,点进去一看,确实想不到爆破点在哪,然后想啊想可能上面url那里存在问题,但我想到了爆破2.txt那里.............实际上是爆破/0/1/这个地方,爆破的时候要删去2.txt
用bp抓包之后发送的intruder,使用集束炸弹(clusterbomb)模式,不懂这几个模式区别的可以去搜一下博客看看burpsuite中intruder模块爆破的四种模式_liweibin812的博客-CSDN博客_burp intruder 模式
然后清除cookie中的§,删去2.txt,同时在/0/1/那里加上§
下一步调有效载荷(payload),有效载荷类型选择数值(numbers),同时在下面调成从0开始到100,增量为1。
切换到有效负载集(payload set)2,也是同样的调法
接下来开始爆破等结果就好了,结果的话具有一点迷惑性,无论是升序还是降序,前面很多个的长都是一样的,但细心一点,调成升序后一直划下来看看,发现有一个的长特别点,和其它的不一样(下面最后一张图)。
确实很符合大海捞针这个提示
ctfshow 爆破(web入门)相关推荐
- ctfshow ,web入门,sql注入题
芜湖,刚刚考完科目三,又是开始学习的一天 web184 之前的懒得重新写了, 这里用"right join"右连接来把两个表连接起来进行查询pass字段,后面的单引号可以用16进制 ...
- 【CTFSHOW】web入门 NodeJS
文章目录 写在前面 web334 web335 web336 web337 web338 web339 web340 web341 web342 web343 web344 参考资料 写在前面 web ...
- ctfshow web入门-sql注入
ctfshow web入门-sql注入 web171 web172 web173 web174 web175 web176 web177 web178 web179 web180 web181 web ...
- Ctfshow web入门 PHP特性篇 web89-web151 全
web入门 PHP特性篇的wp都一把梭哈在这里啦~ 有点多,师傅们可以收藏下来慢慢看,写的应该挺全面的叭- 有错误敬请斧正! CTFshow PHP web89 看题目,有个flag.php文件.题目 ...
- CTFshow——web入门——sql注入
web入门--sql注入 基础知识点 判断是否注入 order by 判断列数 使用union select 判断回显 查询数据库 web171 web172 web173 web174 web175 ...
- [ctfshow]web入门——文件上传(web156-web163)
[ctfshow]web入门--文件上传(web156-web163) [ctfshow]web入门--文件上传 [ctfshow]web入门--文件上传(web156-web163) web156 ...
- CTFShow web入门题刷题记录
CTFShow web入门题刷题记录(信息搜集) web1 提示:开发注释未及时删除 打开网页查看源代码发现 flag:flag{2b2cf8e3-f880-41e1-a8ff-02601b3d998 ...
- 无字母数字rce(ctfshow web入门56)
无字母数字rce(ctfshow web入门56) 我们根据这一题直接进入主题 //web56 <?php // 你们在炫技吗? if(isset($_GET['c'])){$c=$_GET[' ...
- [ctfshow web入门]常用姿势801-806
1NDEX 0x00 前言 801 flask pin码计算 谨记!!python 3.8和3.6 pin码生成方式不同 werkzeug版本不同machine-id获取不同 python3.8 pi ...
最新文章
- Directive全面分析
- 【脚下生根】之深度探索安卓OpenGL投影矩阵
- AndroidStudio3.4.2 gradle5.1.1 apt注解解释器不执行
- tgp饥荒服务器mod文件在哪,饥荒联机版中客户端mod文件夹在哪?注意不是服务器mod!...
- [剑指offer]面试题17:合并两个排序的链表
- 第一次失效_特斯拉螺栓腐蚀失效分析_搜狐汽车
- 问题:Cannot assign a device for operation Variable
- 建立RHELAS4下面的Yum本地源
- Apache Parquet 与Apache ORC简介
- 从vmware下载到Linux环境下jdk和maven的安装
- 成功解决:[‘‘, ‘‘, __ob__: Observer]
- 数学分析(3): 函数极限
- 微信小程序canvas2D全新API介绍
- java BBS论坛
- 动手打造N合1操作系统安装光盘
- 安卓虚拟摄像头_谷歌AR新推强大功能:虚拟对象无缝嵌入,可与现实环境交互...
- 郑捷《机器学习算法原理与编程实践》学习笔记(第七章 预测技术与哲学)7.2 径向基网络...
- win10 任务栏打开直接显示【此电脑】的设置方法
- Unity3D 游戏引擎之FBX模型的载入与人物行走动画的播放(十二)
- 计算机真题模拟运算表怎么做,教大家Excel工作表中使用模拟运算表的方法
热门文章
- 排序 - 希尔排序
- 天龙八部为什么得到角色信息失败 服务器繁忙《302》,每日最大化获取活跃值的方法分享:卡到499点是关键...
- Host文件是什么?host文件有什么作用?
- EC200 EC600 EC20接入工业互联网云平台
- Spring工作原理。原理就是这么简单
- Code for VeLO 2: Training Versatile Learned Optimizers by Scaling Up
- 【量化投资】高频交易(HFT),下一个风口?
- (转)看穿机器学习(W-GAN模型)的黑箱
- 【论文阅读】Domain Adaptation for Deep Entity Resolution
- 裁剪TIF图像,代码简单,易懂(Arcpy)