》信息搜集

robots.txt信息泄露

robots.txt 一个非常重要得到文件,通常情况下,主要用于指定搜索引擎蜘蛛spider在网站里的抓取范围,用于声明蜘蛛不可以抓取哪些网站资源及可以抓取哪些网站资源。

可以使用rul/robots.txt查找一个有没有flag文件

phps源码泄露

phps文件就是php的源代码文件,通常用于提供给用户(访问者)直接通过Web浏览器查看php代码的内容。
因为用户无法直接通过Web浏览器“看到”php文件的内容,所以需要用phps文件代替。

利用目录扫描工具,例如御剑,扫描出靶场目录下有个index.php(一般可以猜出来),将index.php改为index.phps访问,自动下载了index.php的源码,打开获取flag

同样,zip泄露就是目录扫描发现有www.zip,直接下载即可获取。

生产环境

试试.git.svn

vim缓存信息泄露

直接访问index.php.swp

》爆破

账号密码问题

【ctf·show】web入门之信息搜集&爆破插图

通过了base64编码,所以使用bp解码后,用intruder进行爆破,添加密码本,设置两个规则。

【ctf·show】web入门之信息搜集&爆破插图1

推测默认用户名为admin,因此前缀添加admin:编码为base64,进行爆破。

随机数问题

<?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');
}
Linux version 5.4.0-163-generic (buildd@lcy02-amd64-067) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)) #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 Linux version 5.4.0-163-generic (buildd@lcy02-amd64-067) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)) #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023

分解来看

$r = $_GET['r'];
    mt_srand(hexdec(substr(md5($flag), 0,8)));
    $rand = intval($r)-intval(mt_rand());
......
    echo $rand;

在传入r的参数后,rand的数值为r和mt_rand()的随机数进行相减,所以传入?r=0

获得到mt_srand(hexdec(substr(md5($flag), 0,8)))的数值

【ctf·show】web入门之信息搜集&爆破插图2

因此r传入2057801990后,不会回显任何内容,因为此时没有传入token的值

后面:

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

mt_rand()的值由mt_srand(hexdec(substr(md5($flag), 0,8)))中的hexdec(substr(md5($flag), 0,8))决定的

得到cookie必须设置token为第2和第3次伪随机数的和

使用https://www.openwall.com/php_mt_seed/php_mt_seed-4.0.tar.gz

下载好后,在虚拟机输入在此目录输入make即可安装。

【ctf·show】web入门之信息搜集&爆破插图3

使用php_mt_seed 2057801990

获取到第二和第三次的随机数值,注意php版本要大于7.0。

思路

通过传入r=0获取到第一次的随机数,通过使用php_mt_seed工具,通过第一次的随机数,获取到php版本在7.0以上的seed值。通过自己编写脚本,判断第一次的随机数是否正确,然后第二次和第三次的随机数相加即可。

管理系统

【ctf·show】web入门之信息搜集&爆破插图4

看到有两个地址,录取名单和学籍信息查询

进入学籍信息查询发现身份证加密,所以需要爆破。爆破内容为出生年月日

【ctf·show】web入门之信息搜集&爆破插图5
【ctf·show】web入门之信息搜集&爆破插图6

开始爆破,一开始怀疑是传入的内容有问题,结果往前推了十年,89-99年期间才入学…

【ctf·show】web入门之信息搜集&爆破插图7

路径爆破

【ctf·show】web入门之信息搜集&爆破插图8

地址0/1/2.txt

对该地址进行修改,会发现重定向或者是死循环。

所以尝试对目录爆破,分别对0和1设置变量

【ctf·show】web入门之信息搜集&爆破插图9

数值设置为0-100,步进为1

尝试爆破,发现可能是因为后面没删2.txt导致的。

搜了一下302状态码:重定向 当你更改url时,会不断的在前面加0/1/ 一直重定向 页面崩溃

爆破的话 就爆破目录 去除2.txt即可

【ctf·show】web入门之信息搜集&爆破插图10
【ctf·show】web入门之信息搜集&爆破插图11