ctfshow-web入门-爆破wp

前置软件

最好是用火狐浏览器,FoxyProxy插件,burpsuite,ctfshow给的字典附件

如何配置的问题去别的博客搜,都有。

web21(爆破base64加密后的账号密码)

这里访问题目的时候就要开始抓包,然后点forward放包

然后在题目那里输入账号密码,以admin/admin为例,点击登录

又抓到了一个包,可以看到base64加密后的账号密码

 CTRL+I放到Intruder爆破模块。添加变量

 payloadtype选Custom iterrator,position1填admin,position2填:  ,position3导入字典

往下滑paylaod processing选择base64encode

 爆破完成后按长度排序发现一个200的状态码

 查看响应头发现flag

web22(子域名爆破)

推荐用OneForAll爆破,项目地址:GitHub - shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具

 或者用在线子域名爆破网站:在线子域名查询

提示说这题域名已失效,直接提交flag即可

 web23(md5爆破)

<?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__);

}
?> 

代码要求get传入的token经过md5加密后,第1位=第14位=第17位并且(第1位+第14位+第17位)/第1位=第31位,可以写一个php脚本跑一下,应该有很多种可能。

<?php
$string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
for($i=0;$i<strlen($string);$i++) {
    for($j=0;$j<strlen($string);$j++){
        $token = md5($string[$i].$string[$j]);
        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 $string[$i].$string[$j]."\n";
            }
    }
}
}
?>

结果有两个

 随便输入一个提交token即可获得flag。

 web24(php伪随机数)

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

?> Linux version 5.4.0-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 Linux version 5.4.0-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022
x1.00

考察php伪随机数的爆破

原理参考文章:PHP的伪随机数爆破_WHOAMIAnony的博客-CSDN博客

发现给了随机数种子

 查看响应头发现服务器php版本为7.3.11

 直接本地用php跑一下随机数

<?php 
mt_srand(372619038);
echo mt_rand();
echo "\n";


?>

结果为1155388967,get传入即可得到flag

web25(爆破php伪随机数种子)

关键代码如下

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;
    } 

传参r=0,这样就可以得到第一次mt_rand()的负数

将117383695拿去爆破,可能出现的随机数种子如下

 通过查看响应头可知网站用的是php7.3的版本,接下来要绕过以下代码

 if((!$rand)){
        if($_COOKIE['token']==(mt_rand()+mt_rand())){

令r=117383695可以使得!$rand为真,mt_rand()的值本地测试代码如下,经过尝试2590851206为随机数种子.

if($_COOKIE['token']==(mt_rand()+mt_rand()))

通过该行代码我们知道要将两个随机数相加,本地测试代码如下:

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

输出结果如下:

 利用hackbar进行get传参,modheader插件进行cookie传参得到flag

最终payload

?r=117383695

Cookie:token=1886562161

web26(数据库密码爆破)

进入容器直接点击开始安装,出现install.php的界面,直接填信息,开始安装,果然报错了,抓个包看看。

 感觉是密码错了,直接放入爆破模块,将密码设为变量,字典是网上很常见的top1000,直接开始爆破,竟然没爆出来。直接上了个2w的字典,结果如下:

 

 我看有的师傅参数全部设置为空,传上去也能得到flag,目前不知道什么原理

 web27(身份证爆破)

登录网站发现有录取名单,下载下来看一下发现有姓名和身份证号,发现身份证号就缺了生日那部分。

 接着看题发现了一个学籍管理系统可以验证姓名和身份证的地方

 

 这时候我们的思路就是可以借助burpsuite进行爆破。先抓包,可能直接点查询不是这个包,forward一下就行

 Ctrl+i发送到爆破模块进行如下配置

 开始爆破,然后按长度length排序,发现一个成功

将unicode进行在线解码,得到账号密码

 登录成功后获得flag

 web28(爆破目录)

没啥思路,看看提示

 很明确了,去burp爆破目录就行了。模式改成第四个,参数设置俩个

 payloads这样设置

 

然后点击开始攻击,爆破的时候点击设置,只显示2xx的响应包

 爆破完后会出现一个成功的包,响应包里有flag

         

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值