ctfshow-web入门-(web21-28)

本文涉及的产品
文本翻译,文本翻译 100万字符
文档翻译,文档翻译 1千页
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: ctfshow web入门-题目(web21-28)的题解

Web入门-(web21-28)

一、web21----custom iterator(自定义迭代器)(base64解码)

题目

看题可猜测可能是要爆破账户名密码,抓包试试。

好像是base64加密,将其解密。

解密后可得到账户密码传输的格式

账户:密码

那么爆破就有一定思路了。打开bp,使用bp构造payload爆破,对需要爆破的地方进行标记。

按之前的格式进行设置

position 1,2,3,第三部分记得导入常见的弱口令字典

加入base64加密,关闭URL编码,开始爆破。

结束后查看length最小的回包,即可得到flag,(由于时间过长就不做演示了)

二、web22----子域名

题目

由题可知,这是子域名爆破。

在线找一个查找子域名的工具子域名查询网站

然后可在vip.ctf.show源码可见flag。

三、web23----substr()函数(md5加密)

题目如下

<?php
error_reporting(0);
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__);}
                      ?>

通过简单的阅读代码可知,我们以get传参方式传入token值需要满足两个条件。

一,MD5加密后的要使第二位,第十五位和第十八位相同。(下标从0开始)

二,第二位+第十五位+第十八位/第二位=第三十二位;

在这里直接用脚本

cv其他大佬的python脚本

import hashlib
dic = "0123456789qazwsxedcrfvtgbyhnujmikolp"
for a in dic:
    for b in dic:
        t = str(a)+str(b)
        md5 = hashlib.md5(t.encode(encoding='utf-8')).hexdigest()
        if md5[1:2] == md5[14:15] and md5[14:15] == md5[17:18]:
            if int(md5[1:2])+int(md5[14:15])+int(md5[17:18])/int(md5[1:2])==int(md5[31:32]):
                print(t)

python脚本跑出来如图

看其他大佬还有人使用PHP脚本

PHP脚本如下,可以去试试。

<?php
for($v1=0;$v1<10;$v1++)
    for($v2=0;$v2<10;$v2++)
        for($v3=0;$v3<10;$v3++){
            $v=$v1.$v2.$v3;
            $token = md5($v);
            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 $v;
                }
            }
        }
?>

这个题个人认为需要掌握其他的小知识点

1.PHP函数substr()

测试一下以上函数(最好自己手敲加深印象)

四、web24----mt_srand(seed)

这个题主要涉及的就是PHP生成随机数

1.mt_srand()和mt_rand()函数(下题详细讲)

2.intval函数

五、web25----mt_rand(),cookies

题目

阅读代码可知,如果我们使r=0;可以得到mt_rand()第一次产生的数字,以此来反推种子。再使r=mt_rand()第一次产生的数字,可进入下面的语句。

即已进入下面语句。

使用反推种子的脚本

即这一页面

然后把脚本放入Kali中跑。在执行以下命令时先执行make命令,不报错后在执行以下命令。

然后进行这一代码,算出值。get传参传入原来rand()的值,然后抓包修改cookie,改成token的值为计算后的值,提交即可得到flag。

1.php中rand()函数和mt_rand()函数

看菜鸟教程中的解释。

六、web26----弱口令

题目

抓个包试试

直接bp,即可得到flag

七、web27----出生日期

信息收集一下其它相关信息可发现有名单

发现这表单中缺少年月日,那用bp继续爆破生日

爆破得到完整的身份信息,登录后可得flag

八、web28----目录

题目

这个目录有点怪怪的,去掉2.txt,直接试试爆破这一目录

爆破payload设置

目录
相关文章
|
27天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
48 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
2月前
|
前端开发 JavaScript 开发者
探索现代Web前端技术:React框架入门
【10月更文挑战第9天】 探索现代Web前端技术:React框架入门
|
3月前
|
前端开发 开发者 Python
从零到一:Python Web框架中的模板引擎入门与进阶
在Web开发的广阔世界里,模板引擎是连接后端逻辑与前端展示的重要桥梁。对于Python Web开发者而言,掌握模板引擎的使用是从零到一构建动态网站或应用不可或缺的一步。本文将带你从基础入门到进阶应用,深入了解Python Web框架中的模板引擎。
51 3
|
2月前
|
网络协议 安全 JavaScript
Web实时通信的学习之旅:WebSocket入门指南及示例演示
Web实时通信的学习之旅:WebSocket入门指南及示例演示
251 0
|
2月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
57 0
|
3月前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
80 11
|
3月前
|
前端开发
|
3月前
|
弹性计算 前端开发 容器
【前端web入门第六天】02 flex布局
Flex布局是一种现代CSS布局模式,通过给父元素设置`display: flex`,其子元素可自动挤压或拉伸。它包含弹性容器和弹性盒子,主轴默认为水平方向,侧轴为垂直方向。主轴对齐方式由`justify-content`属性控制,侧轴对齐方式包括`align-items`(针对所有子元素)和`align-self`(针对单个子元素)。修改主轴方向使用`flex-direction`属性,`flex`属性用于控制子元素在主轴上的伸缩比例。此外,`flex-wrap`属性允许子元素换行,而`align-content`属性则定义多行对齐方式。
|
3月前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
98 6
|
3月前
|
前端开发
【前端web入门第六天】01 CSS浮动
这是关于CSS布局第六天学习目标的介绍,主要解决多个`&lt;div&gt;`标签在同一行显示的问题,即一个在左边,另一个在右边。文中介绍了标准流、浮动及flex布局的概念,重点推荐使用flex布局。文章详细讲解了浮动的基本使用、布局技巧及清除浮动的方法,包括额外标签法、单伪元素法、双伪元素法和`overflow`隐藏法,并提供了示例代码帮助理解。