web21-28(爆破详解)

web21

首先burp抓包

随便在浏览器输入个密码,然后burp抓包

在题目中下载字典,在提交密码那发现密码进行了base64加密,记得在暴力破解的时候对字典也进行base64加密

然后进行暴力破解,具体看BeginCTF web (sql教学局)-CSDN博客

最后成功获得flag

web22靶机失效了

web23

打开题目先分析代码

isset判断数据是不是空

substr(0,1),截取字符,从第1个开始,截取一个

intval 当里面的字符不是数字时返回0,


首先,判断GET传入的token不为空,进入if,将token的值进行md5加密并赋值给token。 if判断token的第2个和第15个相等,并且第14个和第17个相等进入下一层判断,intval这里我想的是只要md5加密刚好这些位置都是英文就刚好绕过,也就是全部参与判断的都是英文并且相等,flag就出来了

到这就没思路去看了下wp,大神写了个python脚本,用for循环1-1000,将这些条件带入,输出符合条件的数字,好像我们的暴力破解也能做到。

接着burp抓包

选择numbers,从1到10000,间隔是1,进行攻击

跑出来422和1202

输入url拿到flag

burp用法可以参考我的另一篇BeginCTF web (sql教学局)-CSDN博客

web24

首先还是一样,拿到题目进行分析

mt_srand和mt_rand

我在本地测试的是,当srand为空时rand的值为随机数,当srand的值为题目上的值时rand的值就固定了。

进行尝试将r=1155388967

也成功拿到了flag,但很明显这不是这道题的解法,于是我又又又去看了眼wp,好吧,就是这样,成功拿下,下一题

web25

老样子,瞅一眼代码先

我的思路是...有个锤子的思路啊,我们不知道flag的第9位经过MD5加密后在经过hexdec的转换后的值,看wp,看完wp不是很理解,等开学问问教练,但是还是做出来了,过程如下

首先输入r=0获取我们的随机数(这样获取的就是mt_rand的负值)

然后要在Linux下安装一个程序(php_mt_seed),在kali的火狐里面搜索GitHub - Al1ex/php_mt_seed: php_mt_seed is a PHP mt_rand() seed cracker,下载完成后解压如何命令行打开,打开完成输入make,就可以正常使用程序

运行 ./php_mt_seed 474482295,在这里php的版本是7.3,我们用7.1的就可以,拿到3589991221

代码审计

$rand = intval($r)-intval(md_rand());
if(!$rand){
  代码块
}

也就是说我们传进去的值要和随机的值一样,$rand才会等于0,在取反后才会等于1 也就是True,所以我们直接传r=0的值,474482295,这样就进入了第一个判断

接下来下一个判断

if($_COOKIE=['token']==(md_rand()+md_rand())){
  echo $flag;
}

我们要将cookie中token的值等于md_rand相加,先简单写一个php如下

拿到值后将值传入cookie中的token

成功拿到flag

web26

这道题在一开始抓包flag就出来了,这题有点bug

打开题后,提示可以爆破,那就先发个包到burp,显而易见我们只用爆破密码,接着到Intruder模块

但是,又出意外了,前面他给的字典没爆出来,也就是密码不在字典里面,我尝试了纯数字字典,也是成功拿下了

但是这个爆破还是很久的,所以一本好用的字典就必不可少了,需要的可以加我

web27

发现有个录取名单,先进行观察

那么这些身份证号码应该就是破题关键,首先去了解下身份证号码组成,发现身份证第7到14位是出生日期,直接暴力破解

进入校园录取查询

发送到攻击模块,用集束炸弹进行攻击,此时定义了三个变量,年,月,日

用numbers,分别是1-9,01-12,01-31,结果发现爆破失败,应该是年份不是2000往后,从1990开始试试,我想这个人应该不会太老哈哈

结果还没找到,我看了其中一个包发现,01会的0会给吞掉,去网上看了看,发现还是有办法解决,https://www.cnblogs.com/tysec/p/15781784.html,只需要固定长度就好了,继续爆破

爆破成功,Unicode的解码

进行登录,成功拿到flag

web27总结

总结,拿到题先每个界面试试,然后看到了身份证号,就去进行判断,这题好像也不算难,学到了爆破模块的进行攻击时可以固定数字的长度,也就是像我们攻击时,身份证的长度是固定的,这时候需要0占位,但是burp默认是去掉的,但是我们可以设置他的固定长度,图例如下。

在这里固定长度,发包界面对比如下

web28

拿到题看了源代码,啥也没有,然后发现后缀好像有点问题,尝试修改为1.txt,然后我就裂开

应该是做了一种过滤,我也没遇到过,直接去burp尝试,试了半天也不知道啥情况,去kali扫了下目录,发现了不得了的东西

到这我差不多明白了,应该是对目录进行爆破,删除到后面的2.txt,然后将/0/1/设置为两个变量,使用集束炸弹进行爆破,成功拿到flag

爆破总结

学到了mt_srand和mt_rand的用法。爆破时的小技巧,可以固定变量的长度。

好像越来越上套了,发现学习也没那么拿,现在也可以不用看wp就能写出来,接下来我会接着更新下面的web,早日当大佬,同时也欢迎志同道合的朋友也一起交流学习,如果有不懂的问题,欢迎加入qq群

最后最后,今年是24年的大年初一,祝大家新年快乐,刷题全部ak,最重要的的身体健康

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值