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,最重要的的身体健康