IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> ctfshow入门 爆破 -> 正文阅读

[PHP知识库]ctfshow入门 爆破

暴力破解


信息搜集补充
网页源码,burpsuite,robots.txt,phps源码泄露,扫源码,版本控制( git代码泄露(url/.git/index.php),url/.svn/),vim缓存(index.php.swp),cookie,使用nslookup命令查看DNS记录(nslookup -qt=txt) ,通过dns检查https://zijian.aliyun.com/,网上公开信息可能为管理员登陆密码,技术文档敏感信息,源码透漏重要信息,得到重要(editor)信息通过此功能遍历目录,邮箱查询地址,测试用的探针(/tz.php雅黑php探针),ping找真实ip地址,js脚本


web 21

进去显示需要登陆才可以,这时我们需要用户名密码爆破,我们先输入万能用户名密码登陆抓包。
在这里插入图片描述
这里的用户名密码进行了base64编码。将它发到爆破模块。添加需要攻击的区域。然后将payloadspayload type设置为Custom iterator然后添加字典。

position 1
在这里插入图片描述
position 2
在这里插入图片描述
position 3 我用的是给的密码字典
在这里插入图片描述
然后还要进行base64编码

除此之外还要排除Payload Encoding
在这里插入图片描述
最后可以设置下线程,进行爆破,之后找到200状态码即可。


web 23

使用了MD5加密,试试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__);
}
?>

写个php脚本跑起来。

<?php
$token='123';
while(true){
    $t=$token;
    $token=md5($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 "over!"."<br>";
            echo $t;
            break;
        }
    }
}
highlight_file(__FILE__);
?>

这样就可以跑出来成立的token并输出,然后使用输出的token值就可以得到flag。


web 24

 <?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)函数设定了一个seed种子,有了种子之后,靠mt_rand()生成随机数。但是从php 4.2.0版本开始,随机数生成器自动播种,因此没有必要使用该函数播种,并且如果设置了seed参数,那么生成的随机数就是伪随机数,意思就是每次生成的随机数是一样的。在本题中

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

生成的是1155388967,因此给r赋此值就得到了flag。这里要注意生成伪随机数的php版本。


web 25

<?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()); //这里并不能判断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');
} 
?>

他是先将flag进行MD5编码,再取前八位进行十进制转换。下面有$rand我们可以利用它得到伪随机数。
在这里插入图片描述
这里*2结果并没有拿到flag,看了提示之后发现,使用函数mt_srand(seed)确实得到的是伪随机数,但是再同一环境下同时拿多个随机数他们每一个是不一样的,虽然是固定的,所以我们在这里是不能相加的。所以我们拿不到seed值的话很难拿到他的第二个伪随机数。

这里找大佬博客有一个php_mt_seed-PHP mt_rand()种子破解程序https://www.openwall.com/php_mt_seed/ 建议放在linux跑 这里会跑出多个seed我们要一个个去试。。。。最后拿到相加结果并添加到cookie的token里面。

这样就可以拿到为随机数。


web 26
在这里插入图片描述
这里是一个登陆页面,上面也有一些默认提供的信息。先试试抓包。返回错误
在这里插入图片描述
这时先试试密码破解。然后爆破成功,得到flag。

除此之外,还有一种解法!!!

function check(){
			$.ajax({
			url:'checkdb.php',
			type: 'POST',
			dataType:'json',
			data:{
				'a':$('#a').val(),
				'p':$('#p').val(),
				'd':$('#d').val(),
				'u':$('#u').val(),
				'pass':$('#pass').val()
			},
			success:function(data){
				alert(data['msg']);
			},
			error:function(data){
				alert(data['msg']);
			}
		});
		}

查看网页源代码可以看到这样一段代码,可以看到一个url。搜索然后burp抓包。

这里说要进行post传参,并且要设置数据。
在这里插入图片描述
之后就会返回flag。


web 27
在这里插入图片描述
页面除有学号密码之外,还有登陆名单和学生学籍查询系统。

在录取名单上面有身份证的出生年月日进行了打码。
在这里插入图片描述
再看下面的信息查询系统可以判断是在这里爆破。
在这里插入图片描述
但是这里使用burpsuite抓包抓不到。。。尴尬。在火狐里面同样也找不到,但是网页源码有一个post请求页面。
在这里插入图片描述
在这里插入图片描述
这里可以像web 26一样构造post传参,也可以使用google浏览器,google浏览器可以抓到checkdb.php页面
在这里插入图片描述
用burpsuite抓包,进行身份证号爆破。
在这里插入图片描述
设置时间爆破方式,设置线程,再进行爆破。
在这里插入图片描述
得到学号和默认密码,登陆得到flag。


web 28

访问之后直接跳到了别的目录,然后只有一个flag在哪。。。看了请求头和返回头只有个跳转信息,没有什么有用的信息。说的是大海捞针,因该是遍历一遍吧
在这里插入图片描述
那就爆破目录。
在这里插入图片描述
然后设置payload,payload1payload2,两个一样
在这里插入图片描述
然后设置线程进行爆破。
在这里插入图片描述得到falg。
更多文章

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:09:09  更:2021-08-17 15:10:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/13 11:53:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码