- 本人自己的学习记录,会有错误的地方,尽情谅解,欢迎指出错误和不解的地方,让我们共同进步!
web21
首先进行弱口令尝试,没有登录成功
抓包进行爆破,发现Authorization字段是base64加密
进行base64解码发现是账号:密码的格式
进行对此处进行爆破
设置payload,在payload type中选择此模块
设置payload中第一部分
第二部分
第三部分,将题目中的压缩包进行解压,把txt进行导入
接下来将payload进行加密处理
将此处取消勾选不对这些符号进行url编码
开始爆破,看到有一个payload爆破成功
web22
目前域名失效
web23
根据代码提示
- GET型传入一个token参数
- 对token进行md5加密
- token的第二位等于第十五位等于第十八位
- token的第二位加上第十五位加上第十八位除第二位等于第三十二位
注意:编程里是从0开始计算的
随意题意写一个脚本
import requests
a="0123456789abcdefghijklmnopqrstuvwxyz"
for i in a:
for j in a:
url="http://5df04327-7549-4d99-8205-94d6271bf994.challenge.ctf.show/?token="+str(i)+str(j)
req=requests.get(url=url).text
# requests.get(url=url).text使用requests库中的get方法来获取指定url的内容,并返回该内容的文本形式。
if "ctfshow" in req:
print(req)
exit()
else:
pass
web24
一段php代码,需要传入参数r,在做判断
看这个随机数等于多少
web25
题目要求我们向服务器传输一个参数’r‘,程序将flag用md5加密后,取前8位作为种子,用mt_srand()函数生成一个随机数,然后将两者相减,将结果赋值给$ rand,如果$ rand等于0,那么检查cookie中的token是否等于两个mt_srand() 的和,如果是,则输出flag。如果$ rand不等于0,则输出$rand。因为mt_srand()的种子是用flag生成的,我们无法直接预测mt_srand()的输出。通过查阅资料得知,可使用php_mt_seed工具进行种子爆破。
先令r=0,得到第一个mt_srand()的值
在kali中使用php_mt_seed工具,首先输入make后就可正常使用
再通过抓包工具找到php版本
用这个种子写一个php测试脚本
得到另一个值后在bp中改包添加Cookie值
web26
输入后,进行抓包
对密码进行爆破
web27
下载录取名单
发现只是缺少年月日
进行爆破年月日
19900201爆破成功
成功登录
web28
对目录进行爆破
去掉2.txt,对目录进行爆破
得到flag