ctfshow web入门 web11-web24

打印 上一主题 下一主题

主题 862|帖子 862|积分 2586

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写一个即可
  1. import hashlib
  2. def md5_hash(text):
  3.     """计算字符串的 MD5 值并返回十六进制表示"""
  4.     return hashlib.md5(text.encode('utf-8')).hexdigest()
  5. def check_conditions(token):
  6.     """检查给定 token 是否满足条件"""
  7.     # 确保 substr(1,1) == substr(14,1) == substr(17,1)
  8.     if token[1] == token[14] and token[14] == token[17]:
  9.         # 确保条件 (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))
  10.         num1 = int(token[1], 16)
  11.         num14 = int(token[14], 16)
  12.         num17 = int(token[17], 16)
  13.         num31 = int(token[31], 16)
  14.         if (num1 + num14 + num17) / num1 == num31:
  15.             return True
  16.     return False
  17. def find_valid_string():
  18.     """寻找满足条件的字符串"""
  19.     for i in range(1000000):
  20.         test_str = str(i)
  21.         token = md5_hash(test_str)
  22.         if check_conditions(token):
  23.             print(f"Found valid string: {test_str}")
  24.             print(f"MD5 hash: {token}")
  25.             break
  26. # 调用函数寻找有效字符串
  27. find_valid_string()
复制代码
爆出token是422,但是接下来就一直卡住了,我以为有一个flag.php的路径,于是实行向其中传入token,后来看wp才发现直接在首页传入?token=422即可,乃至连字符的引号都不用加
记录一下看到的另一种解法,应该是web选手用的更多的一种方法,就是随意传一个token=1,再用bp抓包后爆破数字即可
web24

伪随机数的爆破(越来越感觉像crypto了),同样让deepseek写一个脚本
  1. <?php
  2. mt_srand(372619038);  // 设置相同种子
  3. $target = mt_rand();  // 生成随机数
  4. echo "Payload: ?r=" . $target;  // 输出可直接提交的 r 值
  5. ?>
复制代码
之后用phpstudy打开网站即可看到效果,这一步折腾了半个小时,总算搞清楚php代码怎么运行了


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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户国营

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表