当前位置: 首页 > article >正文

ctfshow web入门 web11-web24

web11

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

web12

进来浏览网站,底部有一串数字,根据提示可能有用,访问robots.txt,发现禁止访问/admin/,进去看看发现需要输入用户名和密码,刚想爆破就猜对了,用户名是admin,密码是页面下的那串数字

web13

这道题有点懵,看了wp才误打误撞做出来,页面下方有一个document单词,点一下就会跳转到一个pdf,里面放着后台的登录地址和密码
在这里插入图片描述

web14

这道题耐心不够也没做出来,看了下wp,先根据提示加入editor(果然提示没有一个词是没用的),此时出现一个编辑器的页面,在上传文件选项里一直找找找,最后找到flag在这里插入图片描述

web15

这道题蛮有意思,输入admin进入后台,让输入账号密码,还有一个忘记密码的选项,充值条件是输入作者所在的城市,联想到邮箱有一个qq号,顺藤摸瓜,找到西安,成功重置密码在这里插入图片描述

web16

学到个新东西->php探针

  • PHP探针(PHP Probe)是一种利用 PHP 编写的脚本工具,通常用于对服务器进行安全检测、信息收集和性能监控。PHP探针能够帮助系统管理员或黑客获取关于目标服务器的各种信息。它们可以通过浏览器访问并执行,展示服务器的环境、配置、文件系统等关键信息在这里插入图片描述
    进来后在phpinfo里找到flag

web17

进来用dirsearch扫一扫,发现backup.sql,下载打开得到flag

web18

也是见到了心心念念的游戏题,在控制台可以给变量赋值,使score=120,game_over=false,然后最关键的一步来了,执行run()函数,即可拿到提示
在这里插入图片描述

web19

其实已经可以看到判断逻辑了,输入的密码在经过AES加密后要等于p,那么将p反向解密即可得到密码
在这里插入图片描述在这里插入图片描述

web20

不如说是dirsearch的教学,扫到db后加入db继续扫描,下载文件后开010编辑器找到flag在这里插入图片描述

爆破

web21

刚开始接触爆破也是踩了不少坑,第一:一定要用题目给的字典,在网上找了一个10w+的字典都没爆出来,最后一看密码shark66·······
在构造需要编码的payload时有两种构造方法,我用的其实是运气好地一种,就是只构造一个,然后添加前缀admin:再添加base64
实际上正解应该是构造3个payload,为:单独构造一个,分别进行base64(分开还是合起来加密base64最后解的结果都是一样的),最后按照状态码升序排序即可拿到flag在这里插入图片描述

web22

在这里插入图片描述

web23

在这里插入图片描述
分析代码,需要传入token并且token的MD5值满足两个条件才能打印flag,脚本让gpt写一个即可

import hashlib

def md5_hash(text):
    """计算字符串的 MD5 值并返回十六进制表示"""
    return hashlib.md5(text.encode('utf-8')).hexdigest()

def check_conditions(token):
    """检查给定 token 是否满足条件"""
    # 确保 substr(1,1) == substr(14,1) == substr(17,1)
    if token[1] == token[14] and token[14] == token[17]:
        # 确保条件 (intval(substr($token, 1, 1)) + intval(substr($token, 14, 1)) + intval(substr($token, 17, 1))) / intval(substr($token, 1, 1)) === intval(substr($token, 31, 1))
        num1 = int(token[1], 16)
        num14 = int(token[14], 16)
        num17 = int(token[17], 16)
        num31 = int(token[31], 16)

        if (num1 + num14 + num17) / num1 == num31:
            return True
    return False

def find_valid_string():
    """寻找满足条件的字符串"""
    for i in range(1000000):
        test_str = str(i)
        token = md5_hash(test_str)
        if check_conditions(token):
            print(f"Found valid string: {test_str}")
            print(f"MD5 hash: {token}")
            break

# 调用函数寻找有效字符串
find_valid_string()

爆出token是422,但是接下来就一直卡住了,我以为有一个flag.php的路径,于是尝试向其中传入token,后来看wp才发现直接在首页传入?token=422即可,甚至连字符的引号都不用加
记录一下看到的另一种解法,应该是web选手用的更多的一种方法,就是随意传一个token=1,再用bp抓包后爆破数字即可

web24

伪随机数的爆破(越来越感觉像crypto了),同样让deepseek写一个脚本

<?php
mt_srand(372619038);  // 设置相同种子
$target = mt_rand();  // 生成随机数
echo "Payload: ?r=" . $target;  // 输出可直接提交的 r 值
?>

之后用phpstudy打开网站即可看到结果,这一步折腾了半个小时,总算搞清楚php代码怎么运行了

  • 后面的题目懒得做了,猜测无非bp抓包,无非进行一些crypto的爆破,后面有时间再回来做

http://www.kler.cn/a/554441.html

相关文章:

  • 基于 Stanford CoreNLP 的中文自然语言处理
  • 推理优化技术
  • Python爬虫requests(详细)
  • rman 备份恢复1
  • 探索飞鹤奶粉奥秘,领会科技魅力
  • 11.编写前端内容|vscode链接Linux|html|css|js(C++)
  • 如何在 macOS 上配置 MySQL 环境变量
  • Linux sftp 使用详解
  • Qt的QToolButton的使用
  • 【Canvas】基础
  • golang panic信息捕获
  • jmeter接口测试(一)
  • 微服务入门-笔记
  • 汽车长期不保养的危害
  • NVIDIA和AMD显卡型号解读
  • 读书笔记:要点提炼《基于大模型的RAG应用开发与优化——构建企业级LLM应用》(严灿平)
  • 芯谷D668:便携式录音机与耳机式盒式录音机的理想音频解决方案
  • <2.20>Leetcode哈希、双指针
  • Kafka Connect 数据格式转换器
  • 微信小程序:多菜单栏设计效果