入门几个月的萌新CTFer,记录下自己做题的wp
爆破
web21
爆破什么的,都是基操
考点:基础爆破工具的使用
burpsuite抓包
发现base64编码,解码后发现是我们输入进去的用户名和密码,题目也给出了字典,接下来就是爆破
选中发送到Intruder模块,选中变量,选择自定义
这里分别给三段(Position),admin一段,:一段,字典一段
选择base64编码,勾掉url编码,因为会误判base64编码,开始爆破
ctfshow{92f49a08-737e-4358-a25a-348a1463ba63}
web22
域名也可以爆破的,试试爆破这个ctf.show的子域名
考点:域名爆破
工具:Layer挖掘机
大概就是这样,vip.ctf.show访问发现flag
flag{ctf_show_web}
web23
还爆破?这么多代码,告辞!
大致意思是,GET一个参数token,token的MD5加密后的值如果满足下面的判断,就输出flag
<?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
for($i=0;$i<10000;$i++){
$token = md5($i);
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 'token='.$i.'&'.'md5='.$token;
}
}
}
?>
大意是从0循环到10000,若某数的MD5满足条件,则输出此数
将payload运行一下
将结果get形式输入得到flag
ctfshow{63e95184-b8e8-4b9a-b716-f085f122cfc2}
web24
爆个🔨
<?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');
}
?> Linux version 5.4.0-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 Linux version 5.4.0-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022
网上搜索了mt_srand函数使用后得到以下payload
<?php
mt_srand(mktime());
echo(mt_rand());
?>
payload:
<?php
mt_srand(372619038);
echo(mt_rand());
?>
将运行的结果GET形式输出得到flag
ctfshow{5065d66d-72ca-4749-8cde-61c9518cf77a}
web25
爆个🔨,不爆了
<?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-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 Linux version 5.4.0-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022
首先进行代码审计,mt_srand(seed)是发放seed种子然后靠mt_srand生成随机数,这里没有给出seed,所以我们需要通过工具逆向推出seed
mt_srand(hexdec(substr(md5($flag), 0,8)));
rand不为true,则返回true,所以通过GET形式r=0得到第一个随机数的负数,如果$_COOKIE[‘token’]等于两个mt_rand()随机数的和则输出flag
$rand = intval($r)-intval(mt_rand());
if((!$rand)){
if($_COOKIE['token']==(mt_rand()+mt_rand())){
echo $flag;
}
}else{
echo $rand;
}
打开kali,这里我们用php_mt_seed,我们选用php7的seed
payload:
<?php
mt_srand(0x3b63da0d);
mt_rand();
echo mt_rand()+mt_rand();
?>
得到token的随机数,我们burpsuite抓包,在cookie上添加token和第二第三次随机数的和,在GET形式输出第一次获得的随机数得到flag
ctfshow{64cc811c-54b6-4906-acd0-91469d377dd0}
web26
这个可以爆
burpsuite抓包爆破密码
ctfshow{19e3283c-f4d3-4249-9f87-780ae05a38ac}
web27
CTFshow菜鸡学院招生啦!
下载录取名单,看到录取名单和查询系统可知,就是爆破出生日期,这里以第二个为例
首先用burpsuite抓包,这里我用火狐抓不到POST包,所以用了其他浏览器
选择爆破变量
选择日期类型,格式yyyyMMdd后开始爆破
爆破出来后发现msg是url编码,解码后得到线索“恭喜您,您已被我校录取,你的学号刷初始密码为身份证号码”
登陆得到flag
ctfshow{2ccb2be2-6545-441a-8b16-070d6395726a}
web28
大海捞针
题目提示:
通过暴力破解目录/0-100/0-100/看返回数据包
爆破的时候去掉2.txt 仅仅爆破目录即可
根据提示,只需要爆破目录即可,burpsutie抓包选中变量,去掉2.txt,将模式改成Cluster bomb(集束炸弹)
之后设置payload1,payload2同理,设置完后开始爆破
查看状态栏的升序看到个200,得到flag
ctfshow{bb330eeb-0827-42c2-be2e-8a942cbc3b1c}