网页设计特效网站,5118和百度指数,诸葛建站官网,简易的在线数据库网站模板web21 抓包
进行了base64加密#xff0c;解码后发现账号和密码格式是
账号:密码 爆破
位置一开始选错了#xff0c;应该是不含Basic的
模式选择custom iterator(自定义迭代器) 自定义迭代器可以自定义拼接方式
分别设置三个位置#xff0c;第一个位置为admin 第二个位置…web21 抓包
进行了base64加密解码后发现账号和密码格式是
账号:密码 爆破
位置一开始选错了应该是不含Basic的
模式选择custom iterator(自定义迭代器) 自定义迭代器可以自定义拼接方式
分别设置三个位置第一个位置为admin 第二个位置为:
第三个位置
导入他下载的字典
选择base64解密 去掉url编码 web22
域名也可以爆破的试试爆破这个ctf.show的子域名
环境没了 web23
还爆破这么多代码告辞 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 被 md5 加密且它的第一位 第十四位 第十七位化为整数后第一位 第十四位 第十七位/ 第一位 第三十一位则可获得 flag。
?php
for($i0;$i10000;$i)
{$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 token.$i..md5.$token;}}
}
?得到token为422 传参 web24
爆个
环境 e第一次看到这个函数还以为是他打错了哈哈哈哈
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);
}
主要参考CTF_Webphp伪随机数mt_rand()函数php_mt_seed工具使用_星辰照耀你我的博客-CSDN博客 简单来说就是说如果有mt_srand函数的话就是有了种子生成的随机数是固定的。但是如果没有这个函数随机数每运行一次都会发生改变
题目就是要让r等于生成的随机数
ok了 web25
爆个不爆了 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);
} 没有给出seed所以我们需要通过工具推出seed
php_mt_seed
拖进kali解压
make
随便传个参r0
输入 ./php_mt_seed 随机数 开始爆破。 发现有很多个seed查看网络看一下php的版本
看到php的版本是7.3所以可能的种子就是2166812886和2550700805 写个脚本试了第一个种子不行。
第一个得到的是r第四个是cookie的token
因为只有在$rand不存在时$_COOKIE[token](mt_rand()mt_rand() 才能执行而1722723182是我们在传?r0时页面输出的随机数
此时的$rand mt_rand()即第一个生成的随机数因此只要我们使$rmt_rand()1722723182就能让$rand0不存在从而执行接下来的代码 web26
这个可以爆
打开 开始安装跳转到了install.php
查看页面源代码
function check(){$.ajax({url:checkdb.php,type: POST,dataType:json,data:{a:$(#a).val(),p:$(#p).val(),d:$(#d).val(),u:$(#u).val(),pass:$(#pass).val()},success:function(data){alert(data[msg]);},error:function(data){alert(data[msg]);}});}
没懂
a:$(#a).val()是一个 JavaScript 代码片段其中使用了 jQuery 库的语法。
$ 符号是 jQuery 库的别名用于选择 HTML 元素。$(#a) 表示选择具有 id 属性为 a 的 HTML 元素。.val() 是 jQuery 提供的一个方法用于获取元素的值。jQuery 是一个 JavaScript 库。
所以a: $(#a).val() 这段代码的意思是获取具有 id 为 a 的 HTML 元素的值并将其作为键 a 的值。通常这是在处理表单数据时使用的可以获取用户在输入框中输入的值。
https://www.cnblogs.com/peterzhangsnail/p/10054533.html
这里就是第一种 审计一下代码因为正确和错误都是返回一样的msg所以这几个参数可以随便给但是如果要过pass的值u的值就一定要为admin web27
CTFshow菜鸡学院招生啦
ok 打开是个登录平台 下面有录取名单意思就是要爆破随便一个人的身份证中间出生年月日 点击学籍查询系统
用火狐抓不到post的包用了谷歌
抓到包a和p参数
要爆破p中间几位选择位置以及爆破方式 uncode解码
ok登陆成功 web28
大海捞针
打开确实有点奇怪/0/2 一样抓包一下
选择爆破的位置以及爆破的方式要换成cluster bomb 两个位置都选numbers步长为1