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脚本爆破
通过遍历二字符的字符串,寻找符合条件的字符串,得到两个可用字符串3j
和ZE
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版本,然后在本地起一下以下代码就可以得到随机数了,各位师傅也可以尝试刷新,会发现每次给出来的值都是同一个。
web 25——伪随机数&种子爆破
要获得flag,必须输入token
为第二、三个随机数的和,因此必须知道seed
是什么
传入?r=0
就可以获得第一个随机数的负值,为-449307572
接下来就要爆破seed
,这里我们使用php_mt_seed工具,下载与使用方法请自行百度。可以看到爆出来很多seed
,由于php版本不同产生的随机数会略有区别,因此需要选择与服务器php版本对应的seed
看一眼php版本,选择1103714832,这里可能得几个都试试,博主试了后两个都没出来
写个php脚本输出需要的随机数
提交r
和token
,得到flag
web 26——数据库密码爆破
本题还是弱口令爆破,就是换到了系统安装的场景,直接对密码进行数字的爆破即可,答案是7758521,爆破的量还挺大的
另外这题的代码逻辑有点问题,什么都不填点安装然后抓包就会发现flag直接在返回包里了,不过这样就没有爆破的味道了,还是建议按上面的方法爆一下
web 27——门户网站爆破
看到一个登陆界面,但是现在啥信息都没有,肯定不能直接爆破,看到下面有录取名单和学籍信息查询系统
看到这里,猜测是爆破身份证号(这里是生日被隐藏了),然后通过录取查询获得密码
抓包,这题很奇怪,火狐好像很难抓到包,要么用谷歌抓,或者用火狐一直点,总归能抓到。给对生日进行爆破,payload类型选日期,选择开始与结束的年月日,选择日期格式,y代表年,M代表月,d代表日
找到长度不同的数据包
返回信息需要Unicode解码一下,结果给出学号和密码,登陆得到flag
# 原始字符串
encoded_str = r"u606du559cu60a8uff0cu60a8u5df2u88abu6211u6821u5f55u53d6uff0cu4f60u7684u5b66u53f7u4e3a02015237 u521du59cbu5bc6u7801u4e3au8eabu4efdu8bc1u53f7u7801"
# 使用 unicode_escape 解码
decoded_str = encoded_str.encode('utf-8').decode('unicode_escape')
print(decoded_str)
web 28——目录爆破
看到url是/0/1/2.txt
,猜测是对目录中的数字进行爆破,删掉2.txt,对0
和1
爆破,用cluster bomb
模式
设置payload set 1和2都为数字0-99
爆破,找到能访问的目录,看一眼返回包就是flag
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容