ctfshow web15-web25详细思路

web15

提示:公开的信息比如邮箱,可能造成信息泄露,产生严重后果

进入题目后看到有个QQ邮箱,我们搜一下它的QQ。没啥信息,返回到刚才的网站加后缀看能不能进去后台:
15
不知道用户名密码哎,那忘记密码吧!发现一个信息:
15
刚才搜的QQ用户在西安,我们 试试,15
果然不出我所料,然后返回输入密码,得到flag。

web16

提示:对于测试用的探针,使用完毕后要及时删除,可能会造成信息泄露
啥是探针呢?搜索一下,最后看到有关于PHP探针的解释

php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。

具体解释请点击php探针
16我们试试**/tz.php**1616

有个PHP信息,打开看看:16
打开之后直接找关键字符“ctfshow”,得到flag。

web17

提示:备份的sql文件会泄露敏感信息
没思路啊17我在网上搜了一下查看自己备份的SQL文件也不知道怎么办。但备份的英语好像是backup,看一下**/backup.sql文件**,找到flag。

知识点

sql文件的备份一般为backup.sql

web18

提示:不要着急,休息,休息一会儿,玩101分给你flag
我第一反应就是抓包改数据,那就试试吧!
抓了好几次,没用。像往常一样,看看源代码18点开看看:
18
直接找“ctfshow”找不到,那看看有什么间接的信息。18好像有线索,是某种类型的编码,尝试解一下。
18
去110.php看看,出现flag。

web19

提示:密钥什么的,就不要放在前端了
19是用post传入的,
19
得到flag。

注意

第一反应看到有账号密码时我就直接输入了,那肯定是错误的,因为我没有仔细看题意。错了之后才知道是post传参。
反省:一定要仔细审代码,这关乎着成败。

web20

提示:mdb文件是早期asp+access构架的数据库文件,文件泄露相当于数据库被脱裤了。

20

asp+access最大的安全隐患在于access数据库可以被别人下载。
mdb文件是早期asp+access构架的数据库文件 直接查看url路径添加/db/db.mdb 下载文件通过txt打开或者通过EasyAccess.exe打开搜索flag

ACCESS数据库的隐患
Access数据库的存储隐患

在ASP+Access应用系统中,如果获得或者猜到Access数据库的存储路径和数据库名,则该数据库就可以被下载到本地。

Access数据库的解密隐患

由于Access数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行异或来形成一个加密串,并将其存储在*.mdb文件中从地址“&H42”开始的区域内。由于异或操作的特点是“经过两次异或就恢复原值”,因此,用这一密钥与*.mdb文件中的加密串进行第二次异或操作,就可以轻松地得到Access数据库的密码。基于这种原理,可以很容易地编制出解密程序。

程序设计中的安全隐患

ASP代码利用表单(form)实现与用户交互的功能,而相应的内容会反映在浏览器的地址栏中,如果不采用适当的安全措施,只要记下这些内容,就可以绕过验证直接进入某一页面。例如在浏览器中敲入“…… page.asp?x=1”,即可不经过表单页面直接进入满足“x=1”条件的页面。因此,在设计验证或注册页面时,必须采取特殊措施来避免此类问题的发生。

解决方案

自己在网上搜索

爆破

web21

爆破什么的,都是基操
21
给了一个字典文件,保存一下要用到。
打开链接后让我们输入账号密码,明显需要用bp抓包。21
被加密了,base64解密后得到用户:密码21OK,我们sent to intruder21设置好要爆破的内容,切换到payloads页面21
添加第一部分:用户名21
添加第二部分::(英文状态下)21添加第三部分:密码,用刚才下载的文件字典。

21别忘了再编码,因为抓包时用户密码被加密了。
21
取消勾选21
开始爆破,21得到密码,然后再base64解码,得到用户密码,输入之后便可得到flag。21

思路:

抓包后是得到加密后的用户密码,然后解密后看到用户密码被加工了。将数据发送到爆破模块,选中base64编码后的用户名和密码。选择payloads,设置为custom iterator(自定义迭代器)自定义迭代器可以自定义拼接方式 position的位置即为我们的拼接方式,根据上述base64解码的tomcat密码的格式:用户名:密码 ----->则position的位数为3。3个拼接完成后,需要进行base64编码;payload processing 进行编码设置。取消Palyload Encoding编码。然后爆破成功!

web22

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

查询一下他的子域名,最后在vip.ctf.show的源代码中看到了flag。22![在这里插入图片描述](https://img-blog.csdnimg.cn/2a451f2b521e412385ed8cc04660d26c.jpeg#pic_center

web23

提示:还爆破?这么多代码,告辞!
好像没什么卵用。往下看:

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 11:43:51
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 11:56:11
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/
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__);

}
?> 

分析一下代码:
如果存在一个token值,且token值是被md5加密过的,如果if中的条件满足,则打印出flag。需要传递一个 token值,写脚本爆破,在这里我用PHP语言,脚本如下:

<?php

error_reporting(0);
for ($i=0;$i<=10000:$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 $i."\n";}
}
?>

思路是因为token存在一个整数值,但现在不知道是多少,我假设是在10000之内,运行一下,得到422和1202然后在url后加上**?token=1202?token=422**回车后得到flag。
我认为以后会有很多题要用脚本。

web24

 <?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 13:26:39
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 13:53:31
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/

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

mt_srand通过seed给mt_rand播种,然后mt_rand通过梅森旋转算法生成伪随机数。如果指定seed,那么mt_srand播出来的种子是固定的,mt_rand生成的伪随机数也是固定的:

<?php
mt_srand(372619038);
print(mt_rand());
?>

24
get传参传入?r=1122388967,得到flag.

web25

打开后有以下代码

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 13:56:57
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 15:47:33
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/


error_reporting(0);
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');
} 

mt_scrand(seed)这个函数的意思,是通过分发seed种子,然后种子有了后,靠mt_rand()生成随机数。
这里没有明确给出seed,因此我们需要用工具逆推出seed。

  $rand = intval($r)-intval(mt_rand());

从这里我们可以判断出,如果我们输入的r为0,那么$rand为第一个随机数的负数,并且因为非零,在if判断中会在else中输出,因此我们先GET输入?r=0,得到第一个随机数的负数。25
虚拟机打开终端输入ls查看,得到文件php_mt_seed,输入* ./php_mt_seed第一个随机数*
bp抓包repeater后send为php7.0以上版本
25
这里有三个(用php7.0版本以上运行代码)

<?php
mt_srand(3095355977);
echo mt_rand()."\n";
echo mt_rand()+mt_rand();

三种可能都试一下,
25
通过代码:

 if((!$rand)){
        if($_COOKIE['token']==(mt_rand()+mt_rand())){
            echo $flag;
        }

令r=1374935140可以使得!$rand为真,然后执行if语句,如果cookie传入值正确,得出flag。
利用hackbar进行get传参,进行cookie传参得到flag。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ctfshow-web-web红包题是一道CTF比赛中的网络安全题目。这道题目的背景是一个在线购物网站,要求我们通过安全漏洞来获得网站的红包。 首先,我们可以检查网站的源代码,寻找可能存在的漏洞。在网站的前端页面中,我们注意到了一个提交订单的功能,并且发现了其中一个参数可以被用户任意修改。这可能导致一个被称为SQL注入的漏洞。 我们试图通过在参数中插入恶意代码来进行SQL注入攻击。我们发现当我们输入`' or 1=1 -- `时,查询结果会返回所有订单记录,而不仅仅是当前用户的订单。这表明成功利用了SQL注入漏洞。 接下来,我们要尝试进一步利用这个漏洞来获取网站的红包。我们可以通过构建特制的SQL语句来绕过登录过程,直接获取红包的信息。 最终,我们成功地利用了网站存在的漏洞,获取到了红包的相关信息。这个过程展示了在网络安全竞赛中,如何通过分析代码和利用漏洞来实现攻击的目标。 在这个过程中,我们需要具备对SQL注入漏洞的理解和掌握,并且需要有一定的编程和网络安全知识。通过解决这样的题目,我们可以提高我们对网络安全攻防的认识和技能,以更好地保护网络安全。 ### 回答2: ctfshow-web-web红包题是一个CTF(Capture the Flag)比赛中的Web题目,目标是通过分析Web应用程序的漏洞来获取红包。CTF比赛是一种网络安全竞赛,在这种比赛中,参赛者需要通过解决各种不同类型的安全挑战来积分。 该题目中的Web应用程序可能存在一些漏洞,我们需要通过分析源代码、网络请求和服务器响应等信息来找到红包的位置和获取红包的方法。 首先,我们可以查看网页源代码,寻找可能的注入点、敏感信息或其他漏洞。同时,我们还可以使用开发者工具中的网络分析功能来查看浏览器和服务器之间的通信内容,找到可能存在的漏洞、密钥或其他敏感信息。 其次,我们可以进行输入测试,尝试不同的输入来检查是否存在注入漏洞、文件包含漏洞、路径遍历漏洞等。通过测试和观察响应结果,我们可以得到一些重要的信息和线索。 最后,我们可以分析服务器响应和错误信息,查找可能存在的网站配置错误、逻辑漏洞或其它任何可以利用的安全问题。此外,我们还可以使用常见的Web漏洞扫描工具,如Burp Suite、OWASP ZAP等,来辅助我们发现潜在的漏洞。 通过以上的分析和测试,我们有可能找到获取红包的方法。然而,具体的解题方法还需要根据题目中的具体情况来确定。在CTF比赛中,每个题目的设置都可能不同,解题的方法和思路也会有所差异。因此,在解题过程中,要保持敏锐的观察力和灵活的思维,尝试不同的方法和技巧,才能成功获取红包并完成任务。 ### 回答3: ctfshow-web-web红包题是一个CTF比赛中的网络题目,其目标是寻找并利用网页内的漏洞,获取红包。 首先,我们需要分析该网页的源代码,寻找可能存在的漏洞。可以通过审查元素、浏览器开发者工具等方式进行源代码分析。 其中,可能存在的漏洞包括但不限于: 1. 文件路径遍历漏洞:通过对URL的参数进行修改,尝试访问其他目录中的文件。 2. XSS漏洞:通过在用户输入的地方注入恶意代码,实现攻击者想要的操作。 3. SQL注入漏洞:通过修改数据库查询参数,获取未授权的数据。 4. 文件上传漏洞:上传恶意文件并执行。 一旦发现漏洞,我们需要进一步利用它们来获取红包。例如,如果存在文件路径遍历漏洞,我们可以尝试通过修改URL参数的方式,访问网站服务器上存放红包的文件目录,获取目录中的文件。 如果存在XSS漏洞,我们可以尝试在用户输入的地方注入一段JavaScript代码,以获取网页中的敏感信息或执行一些恶意操作,如窃取cookies。 如果存在SQL注入漏洞,我们可以尝试通过修改数据库查询参数,获取未授权的数据,如红包的具体位置或密码。 如果存在文件上传漏洞,我们可以尝试上传一个特殊设计的恶意文件,以执行任意命令或获取服务器上的文件。 综上所述,ctfshow-web-web红包题需要我们深入分析网页代码,发现可能存在的漏洞,并利用这些漏洞获取红包。这个过程需要我们对常见的漏洞类型有一定的了解,并具备相关的漏洞利用技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值