首页 > 其他分享 >弱口令、子域名、md5、伪随机数、目录爆破与CTF实战

弱口令、子域名、md5、伪随机数、目录爆破与CTF实战

时间:2024-11-08 11:43:27浏览次数:1  
标签:web 爆破 flag CTF 随机数 php md5

web 21——弱口令爆破&custom iterator

进去要求输入账号密码,账号输入admin,一般来说管理员用户名都会是这个,密码随便输,然后burpsuite抓包
可以看到账号密码在Authorization传输,形式是账号:密码的base64加密,把他发到Intruder模块

模式选sniper,因为要对整个账号密码字符进行加密,不能分开爆破,选中要爆破的地方

选择custom iterator模式,在位置1写入admin,分隔符写:

位置2导入提供的字典

添加base64加密,取消选中Palyload Encoding编码,因为在进行base64加密的时候在最后可能存在==这样就会影响base64加密的结果

开始攻击,点击状态码进行筛选,找到爆破出的密码,将密码解密后为shark63,输入即可得到flag

web 22——子域名爆破&oneforall

OneForAll,是 shmilylty 在 Github 上开源的子域收集工具,可以实现对子域名的爆破

python oneforall.py --target ctf.show run

可以看到爆破出了很多结果,不过这题的域名失效了,不然应该会有一个flag.ctf.show

web 23——md5爆破&burp&python

看一下代码,通过get方式提交一个token参数,要求MD5 加密结果的第 2 位、第 15 位、第 18 位字符是否相等,且这三位字符的数字之和除以第 2 位字符的值是否等于第 32 位字符的数字值

方法1——burpsuite爆破

不管他到底什么条件,直接burpsuite爆破数字0-500,发现422的时候返回长度不同,422就是满足条件的

方法2——python脚本爆破

通过遍历二字符的字符串,寻找符合条件的字符串,得到两个可用字符串3jZE

import hashlib  
  
dic = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"  
for a in dic:  
    for b in dic:  
        t = str(a) + str(b)  
        md5 = hashlib.md5(t.encode('utf-8')).hexdigest()  
  
        if md5[1] == md5[14] == md5[17]:  # 确保这些位置的字符相同  
            # 确保这些字符是数字  
            if 48 <= ord(md5[1]) <= 57 and 48 <= ord(md5[14]) <= 57 and 48 <= ord(md5[17]) <= 57:  
                # 确保md5[31]也是数字,并符合数学关系  
                if 48 <= ord(md5[31]) <= 57:  
                    num1 = int(md5[1])  
                    num14 = int(md5[14])  
                    num17 = int(md5[17])  
                    num31 = int(md5[31])  
  
                    # 判断除数是否为零  
                    if num1 == 0:  
                        continue  # 跳过当前循环  
  
                    if (num1 + num14 + num17) / num1 == num31:  
                        print(t)

web 24——初探伪随机数

本题考察的是php伪随机数,通过mt_srand(1);播种后,再通过同一随机数算法计算出来的随机数值是固定的,因此只要看一下服务器php版本,然后在本地起一下以下代码就可以得到随机数了,各位师傅也可以尝试刷新,会发现每次给出来的值都是同一个。

<?php
mt_srand(372619038);
echo "随机数:".mt_rand();
?>

web 25——伪随机数&种子爆破

要获得flag,必须输入token为第二、三个随机数的和,因此必须知道seed是什么

传入?r=0就可以获得第一个随机数的负值,为-449307572

接下来就要爆破seed,这里我们使用php_mt_seed工具,下载与使用方法请自行百度。可以看到爆出来很多seed,由于php版本不同产生的随机数会略有区别,因此需要选择与服务器php版本对应的seed

看一眼php版本,选择1103714832,这里可能得几个都试试,博主试了后两个都没出来

写个php脚本输出需要的随机数

<?php
    mt_srand(1103714832);
    echo mt_rand()."\n";
    $result = mt_rand()+mt_rand();
    echo $result;
?>

提交rtoken,得到flag

web 26——数据库密码爆破

本题还是弱口令爆破,就是换到了系统安装的场景,直接对密码进行数字的爆破即可,答案是7758521,爆破的量还挺大的
另外这题的代码逻辑有点问题,什么都不填点安装然后抓包就会发现flag直接在返回包里了,不过这样就没有爆破的味道了,还是建议按上面的方法爆一下

web 27——门户网站爆破

看到一个登陆界面,但是现在啥信息都没有,肯定不能直接爆破,看到下面有录取名单和学籍信息查询系统

看到这里,猜测是爆破身份证号(这里是生日被隐藏了),然后通过录取查询获得密码

抓包,这题很奇怪,火狐好像很难抓到包,要么用谷歌抓,或者用火狐一直点,总归能抓到。给对生日进行爆破,payload类型选日期,选择开始与结束的年月日,选择日期格式,y代表年,M代表月,d代表日

找到长度不同的数据包

返回信息需要Unicode解码一下,结果给出学号和密码,登陆得到flag

# 原始字符串
encoded_str = r"\u606d\u559c\u60a8\uff0c\u60a8\u5df2\u88ab\u6211\u6821\u5f55\u53d6\uff0c\u4f60\u7684\u5b66\u53f7\u4e3a02015237 \u521d\u59cb\u5bc6\u7801\u4e3a\u8eab\u4efd\u8bc1\u53f7\u7801"
# 使用 unicode_escape 解码
decoded_str = encoded_str.encode('utf-8').decode('unicode_escape')
print(decoded_str)

web 28——目录爆破

看到url是/0/1/2.txt,猜测是对目录中的数字进行爆破,删掉2.txt,对01爆破,用cluster bomb模式

设置payload set 1和2都为数字0-99

爆破,找到能访问的目录,看一眼返回包就是flag

标签:web,爆破,flag,CTF,随机数,php,md5
From: https://www.cnblogs.com/xinghaihe/p/18534784

相关文章

  • CTF-WEB-需要管理员
    首页打开链接进入发现404使用dirsearch 扫描一下,发现/robots.txt泄露进入到其中进行查看,发现/resusl.php进入到该页面,页面显示:Warning:你不是管理员你的IP已经被记录到日志了,但是下方提示if($_GET[x]==$password),就是需要传入一个参数x,并且x的值要等于password根......
  • CTF-MISC-split_all
    首页下载文件下载后显示一张图片,但是图片无法打开用010editor查看,文件头为png格式(89594E0D0A1A0A)文件尾为GIF格式(003B)猜测该文件为GIF格式,将文件头改为GIF格式(4749383961)保存GifCam无法打开换方法,修改文件头为474946,从474946开始到第三行383961之间字节删......
  • 揭秘Java中的随机数生成:让你的程序更加不可预测!
    在Java中,生成随机数可以使用java.util.Random类或Math.random()方法。以下是详细的代码示例和解释:使用 java.util.Random 类1.生成一个随机整数importjava.util.Random;publicclassRandomIntegerExample{publicstaticvoidmain(String[]args){Ra......
  • CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了
    ![](https://img-blog.csdnimg.cn/direct/40c12407163545e89a5730feb5c1b5ad.png)一、CTF简介CTF(CaptureTheFlag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互......
  • [HCTF 2018]WarmUp 1--详细解析
    打开靶机,进入界面:信息搜集当前界面没有任何有用信息。想到查看页面源代码。右键–查看页面源代码看到hint:<!--source.php-->进入/source.php页面,看到页面源代码:<?phphighlight_file(__FILE__);classemmm{publicstaticfunctioncheckFil......
  • ctfshow(316)--XSS漏洞--反射性XSS
    Web316进入界面:审计显示是关于反射性XSS的题目。思路首先想到利用XSS平台解题,看其他师傅的wp提示flag是在cookie中。当前页面的cookie是flag=you%20are%20not%20admin%20no%20flag。但是这里我使用XSS平台,显示的cookie还是这样,并不能得到flag。该方法先作罢。于是......
  • ctfshow(162)--文件上传漏洞--远程文件包含
    Web162进入界面:思路先传个文件测试一下过滤:过滤了特别多符号,注意过滤了点.我们的思路还是要先上传.user.ini文件://修改前GIF89aauto_prepend_file=shell.png//由于过滤了点,所以修改为GIF89aauto_prepend_file=shell上传.user.ini文件接下来就是上传包含一......
  • ctfshow(94,95)--PHP特性--strpos函数
    建议先学习intval函数相关内容Web94源代码:include("flag.php");highlight_file(__FILE__);if(isset($_GET['num'])){$num=$_GET['num'];if($num==="4476"){die("nonono!");}if(preg_match("......
  • CTF web新手解题——php反序列化 【ez_ez_unserialize】
    感受最大的就是:作为web新手,应速通并逐渐掌握php语言收获:从此题提高了我对代码的理解力【ez_ez_unserialize】NSSCTF{1ba5d701-3b8a-4a83-965d-7e912ef6f43b}分析存在__wakeup()魔术方法unserialize()会检查是否存在一个__wakeup()方法。如果存在,则会先调用__wakeup......
  • 学习java的第三天,循环语句(for-while-do while),数组,随机数
    for循环for循环是我最喜欢使用的循环语句,清晰,简洁。##for循环的格式为:for(初始化值,如inti=0;循环条件,如i<10;重新赋值,如i++){ 代码块}注:1.初始化值必须为表达式,如i=0"for(i=0;i<3;i++)"或for(inti=0;i<3;i++),但不可以是一个单独的变量如for(i;i<3;i++)这样会报错!......