• ctfshow web入门(21-28爆破)


    web21

    抓包

    进行了base64加密,解码后发现账号和密码格式是

    账号:密码

    爆破

    位置一开始选错了,应该是不含Basic的

    模式选择custom iterator(自定义迭代器)
    自定义迭代器可以自定义拼接方式

    分别设置三个位置,第一个位置为admin

     

    第二个位置为:

    第三个位置

    导入他下载的字典

    选择base64解密 ,去掉url编码

    web22

    域名也可以爆破的,试试爆破这个ctf.show的子域名

    环境没了

    web23

    还爆破?这么多代码,告辞!

    1. include('flag.php');
    2. if(isset($_GET['token'])){
    3. $token = md5($_GET['token']);
    4. if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
    5. if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
    6. echo $flag;
    7. }
    8. }
    9. }else{
    10. highlight_file(__FILE__);

    变量 token 被 md5 加密,且它的第一位 = 第十四位 = 第十七位,化为整数后(第一位 + 第十四位 + 第十七位)/ 第一位 = 第三十一位,则可获得 flag。

    1. for($i=0;$i<10000;$i++)
    2. {
    3. $token = md5($i);
    4. if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1))
    5. {
    6. if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1)))
    7. {
    8. echo 'token='.$i.'&'.'md5='.$token;
    9. }
    10. }
    11. }
    12. ?>

    得到token为422

    传参

    web24

    爆个🔨

    环境

    e第一次看到这个函数,还以为是他打错了哈哈哈哈

    1. include("flag.php");
    2. if(isset($_GET['r'])){
    3. $r = $_GET['r'];
    4. mt_srand(372619038);
    5. if(intval($r)===intval(mt_rand())){
    6. echo $flag;
    7. }
    8. }else{
    9. highlight_file(__FILE__);
    10. echo system('cat /proc/version');
    11. }

    主要参考CTF_Web:php伪随机数mt_rand()函数+php_mt_seed工具使用_星辰照耀你我的博客-CSDN博客

    简单来说就是说如果有mt_srand函数的话,就是有了种子,生成的随机数是固定的。但是如果没有这个函数,随机数每运行一次都会发生改变

    题目就是要让r等于生成的随机数

    ok了

    web25

    爆个🔨,不爆了

    1. include("flag.php");
    2. if(isset($_GET['r'])){
    3. $r = $_GET['r'];
    4. mt_srand(hexdec(substr(md5($flag), 0,8)));
    5. $rand = intval($r)-intval(mt_rand());
    6. if((!$rand)){
    7. if($_COOKIE['token']==(mt_rand()+mt_rand())){
    8. echo $flag;
    9. }
    10. }else{
    11. echo $rand;
    12. }
    13. }else{
    14. highlight_file(__FILE__);
    15. echo system('cat /proc/version');
    16. }

     没有给出seed,所以我们需要通过工具推出seed

    php_mt_seed

    拖进kali,解压

    make

    随便传个参,r=0

    输入 ./php_mt_seed 随机数 ,开始爆破。

    发现有很多个seed,查看网络看一下php的版本

    看到php的版本是7.3,所以可能的种子就是2166812886和2550700805

     写个脚本,试了第一个种子不行。

    第一个得到的是r,第四个是cookie的token

    因为只有在$rand不存在时,$_COOKIE['token']==(mt_rand()+mt_rand() 才能执行,而1722723182是我们在传?r=0时页面输出的随机数

    此时的$rand = mt_rand()即第一个生成的随机数,因此只要我们使$r=mt_rand()=1722723182,就能让$rand=0,不存在,从而执行接下来的代码

    web26

    这个可以爆

    打开

    开始安装,跳转到了install.php

    查看页面源代码

    1. function check(){
    2. $.ajax({
    3. url:'checkdb.php',
    4. type: 'POST',
    5. dataType:'json',
    6. data:{
    7. 'a':$('#a').val(),
    8. 'p':$('#p').val(),
    9. 'd':$('#d').val(),
    10. 'u':$('#u').val(),
    11. 'pass':$('#pass').val()
    12. },
    13. success:function(data){
    14. alert(data['msg']);
    15. },
    16. error:function(data){
    17. alert(data['msg']);
    18. }
    19. });
    20. }

    没懂

    '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

  • 相关阅读:
    【Java】移除元素
    C语言 cortex-A7核UART总线实验
    ECMAScript 6(es6)
    全网最全的AItium Designer 16下载资源与安装步骤
    Thingsboard源码安装
    机器学习笔记05---SVM支持向量机
    优秀论文以及思路分析02
    SSL证书抵御企业网络攻击的风险
    【MySQL】SQL语句
    LeetCode 每日一题 2022/10/31-2022/11/6
  • 原文地址:https://blog.csdn.net/2202_75317918/article/details/133148074