目录

web21

web22

web23

web24

web25

web26

web27

web28


web21

刚开始的第一个题,由于不好好看题,导致没注意下面已经给出了网页后台的爆破密码的字典,导致我使用了10w的字典去跑,很尴尬。这里我使用的是第一种方法,就是brupsuite种的暴力破解模块。

上来就是让我们输入账号密码。输入账号为admin,密码随便输入,经过抓包查看。

由于是小白,我没看到数据在哪里,但是发现这不是一串base64编码的值吗,尝试解码,咦,发现了这就是账号和密码。

然后看了wp,这是tomcat认证爆破。Authorization后面就是账号:密码,经过了base64编码。之后我就拿着它到Intruder模块去爆破了。

这里就先经过标记下,payload type选择custom iterator(自定义迭代器),position为3,因为payload的构成是账号:密码。其中position 1 为admin。position 2 为:

position 3 为:

这里密码的位置就加载我们的字典。加密的方式选择base64-encode。

取消url对特殊字符的编码。

开启爆破,找到状态码为200的数据包,通过base64解码,发现了密码为shark63。登录之后便可以发现flag。

web22

题目描述为:域名也可以爆破的,试试爆破这个ctf.show的子域名

但是找到的域名失效了,题目提示:页面如果失效,提交flag{ctf_show_web}

web23

附上代码:

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

这里我自己分析:通过GET方式传入token参数,然后经过了md5加密,再赋值给token,截取token的第1位,第14位,以及第17位,他们是相等的。然后第1位,第14位,以及第17位相加的和再除以第一位等于第31位的值。就会输出flag。但是一直不理解的就是token为什么就是由两位组成的呢?(如果有大佬知道的话,希望能指点一下,非常感谢。)

这里也是存在两种方法,一种就是使用brup爆破。另一种就是使用脚本。提供的脚本如下:

import requestsstrings='01234567989abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
for i in strings:for j in strings:url = 'http://0b47349f-dd88-4a11-a6aa-ec797c1d3222.challenge.ctf.show/?token='+str(i)+str(j)req = requests.get(url)if 'ctfshow' in req.text:print(req.text)exit()

web24

题目描述为:爆个锤子。

打开链接:得到的源码为

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

开始代码审计。get方式提交参数名r。mt_srand()函数:mt_srand() 播种 Mersenne Twister 随机数生成器。语法为:

mt_srand(seed);其中的seed是必需的。用 seed 来给随机数发生器播种。

百度没明白。这里我拿着他的代码,去运行了一下看了一下结果是什么。

<?phpmt_srand(372619038);echo(intval(mt_rand()));/**/
?>
//输出1155388967

这里我就直接get提交r =1155388967。就得到了flag。

wp中用了脚本,看不懂。

web25

在这里就搞懂了,上面的那两个函数存在的漏洞是怎么回事。

先来看这里的代码。

<?php
mt_srand(372619038);
echo mt_rand()."<br/>";
echo mt_rand()."<br/>";
echo mt_rand()."<br/>";
echo mt_rand()."<br/>";
echo mt_rand()."<br/>";
?>
/*
1155388967
125197722
1461103528
623173601
79064459
*/

上面讲到,就是生成随机数,但是通过第一个数1155388967,就能发现一个很奇怪的地方,这不是和24题生成的结果是一样的嘛!所以这就是漏洞所在的地方,虽然是生成随机数,但是存在一定的可预测性。

经过代码审计。当r=0的时候,rand的值就是第一次生成的随机数的相反数,这里下载种子的链接如下:php_mt_seed - PHP mt_rand() seed cracker

在kali中运行:

tar -zxvf php_mt_seed-4.0.tar.gz
su root  #需要root用户权限
cd php_mt_seed-4.0
make
./php_mt-seed 输入第一次生成的随机值

这里还遇到一个问题,在运行su root的时候,出现了su:鉴定故障。这里的解决方案就是sudo passwd root 修改密码。

得到了不同版本的随机值。查看php的版本为:X-Powered-By:PHP/7.3.11

由于hexdec是讲十六进制转换为十进制。先尝试4053774893

<?php
mt_srand(4053774893);
mt_rand();
$token = mt_rand()+mt_rand();
echo $token;?>
//输出的结果为1006930507    

接下来看关键的代码:

if((!$rand)){if($_COOKIE['token']==(mt_rand()+mt_rand())){echo $flag;}}

if((!rand))只有条件为0的时候才会执行内部的代码,所以r的值要等于第一次的值即1193648967

接下来就是使用brup抓包。token的值为第二次和第三次随机值的和。(注意:我是先尝试的4053774893,其实不对,后来我又尝试了2731346054,得到的第二次随机值加上第三次随机值的结果为1138349886)。

web26

抓包爆破密码。

得到密码为7758521,查看response,得到flag。

web27

打开网站之后,可以获取到网站的录取名单,查看名单,发现了有姓名和身份证号,身份证中缺少了出生年月日。

尝试在学籍管理系统中爆破出生年月。

这里只能使用谷歌进行抓包

这里发现了19900201的数据包的长度有变化。

 这里发现了应答数据包中存在着一串经过unicode编码,尝试解码。

尝试使用账号和密码进行登录。

登陆成功得到了flag。

web28

进入界面:

刚开始没有头绪,不过注意到了url是http://xxxx/0/1/2.txt ,有点奇怪,没想到是爆破url,查看了hint:通过暴力破解目录/0-100/0-100/看返回数据包。爆破的时候去掉2.txt 仅仅爆破目录即可。

接下来就是抓包,去爆破目录。

发现目录为/72/20/的时候状态码为200。

这里就找到了flag。

CTFshow-web爆破相关推荐

  1. Ctfshow web入门 爆破系列 21~28

    目录 Ctfshow web 21 Ctfshow web 22 Ctfshow web 23 Ctfshow web 24 Ctfshow web 25 Ctfshow web 26 Ctfshow ...

  2. ctfshow web入门-sql注入

    ctfshow web入门-sql注入 web171 web172 web173 web174 web175 web176 web177 web178 web179 web180 web181 web ...

  3. [ctfshow]web入门——文件上传(web156-web163)

    [ctfshow]web入门--文件上传(web156-web163) [ctfshow]web入门--文件上传 [ctfshow]web入门--文件上传(web156-web163) web156 ...

  4. CTFShow web入门题刷题记录

    CTFShow web入门题刷题记录(信息搜集) web1 提示:开发注释未及时删除 打开网页查看源代码发现 flag:flag{2b2cf8e3-f880-41e1-a8ff-02601b3d998 ...

  5. 无字母数字rce(ctfshow web入门56)

    无字母数字rce(ctfshow web入门56) 我们根据这一题直接进入主题 //web56 <?php // 你们在炫技吗? if(isset($_GET['c'])){$c=$_GET[' ...

  6. [ctfshow web入门]常用姿势801-806

    1NDEX 0x00 前言 801 flask pin码计算 谨记!!python 3.8和3.6 pin码生成方式不同 werkzeug版本不同machine-id获取不同 python3.8 pi ...

  7. ctfshow web入门-XXE

    ctfshow web入门-XXE web373 题目描述 解题思路 web374 题目描述 解题思路 web375 题目描述 解题思路 web376 题目描述 解题思路 web377 题目描述 解题 ...

  8. ctfshow web入门 命令执行 web29~web77 web118~web124

    目录 web29 web30 web31 web32 web33 web34 web35 web36 web37 web38 web39 web40 web41 web42 web43 web44 w ...

  9. ctfshow web入门 反序列化 前篇 254-266

    这里266后面主要是框架,以后在讲 反序列化入门可以参考我写的另一篇很详细的哦~php 反序列化总结 web254 <?phperror_reporting(0); highlight_file ...

  10. ctfshow web入门 爆破

    web21 bp爆破 bp抓包,设置爆破点,导入字典啥的设置好就开始爆破,字典很短很容易拿到flag web22 子域名爆破 在线工具 https://phpinfo.me/domain 爆破一下ct ...

最新文章

  1. python界面工具pyqt基础教程
  2. Oracle入门(十四.11)之使用显式游标属性
  3. c++ ptree判断是否存在节点_CTreeCtrl 查找 等于某值 的节点,并设置为高亮
  4. java web 请求跟踪_IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术
  5. 在windows下调试ruby192
  6. nodemcu引脚_一、ESP32开发板NodeMCU-32S简介
  7. Linux:JDK配置
  8. Ubuntu系统下安装MATLAB2014a
  9. 华为c语言笔试题下载,2005年华为招聘--C语言笔试试题
  10. SAP ByDesign Cloud 中的条形码扫描知识
  11. 第一章 python基础
  12. python怎么自动化录入数据_报表自动化怎么做?Excel,Python,还是它?
  13. LTP(Linux Test Project)学习(五)——LTP代码学习
  14. 最佳运动类APP-Keep原型设计与欣赏
  15. python math模块
  16. MVP实现购物车(二级列表),删除结算功能,拦截器+封装okHttp
  17. 美国公开宣布WannaCry真凶——就是朝鲜!
  18. 地平线发布AI on Horizon战略,与首汽约车、禾赛科技分别达成战略合作 | 2019上海车展...
  19. 姚老板讲机器学习之SVM算法
  20. 库乐队历史版本怎么下载_ios库乐队旧版本下载_库乐队苹果最新版app下载

热门文章

  1. 《动手学机器人学》7.3.1齐次坐标变换齐次变换矩阵
  2. echars世界地图,显示指定的国家散点图
  3. Big Data Caching for Networking: Moving from Cloud to Edge 论文分享
  4. 独特画风-rpgmaker复古像素游戏素材
  5. 解决vmware虚拟机安装时提示 Intel VT-x 处于禁用状态
  6. 上百本中文书籍中对《人月神话》的引用(8)
  7. Java 策略模式+工厂方法模式搭配思想
  8. Redis入门(3): 数据新类型(BitmapsHyperLogLog,GeoSpatial),Jredis,springboot与redis的整合
  9. 无法访问网上邻居解决方法
  10. iframe中由一个页面跳转到另一个页面