爆破
21:直接bp抓包跑字典,需base64加密
22:可用工具跑也可用浏览器找还可以用网上做好的域名查找去找
23:此题需跑脚本已经附上自写脚本
最后跑出来六个答案一个一个尝试得到答案为3j
import hashlibm = "0123456789qwertyuiopasdfghjklzxcvbnm"
# 这串英文就是24个英文字母
for i in m:for a in m:md5 = hashlib.md5()# 构造一个hashlib对象str_1 = str(i) + str(a)# 构造payloadmd5.update(str_1.encode('utf-8'))# 指定位utf-8加密方式b = md5.hexdigest()# MD5加密if b[1:2] == b[14:15] and b[14:15] == b[17:18]:print(str_1)# 输出答案
24:所以直接把它设置的复制一下拿到php在线运行网站跑一下就能得到
这一题很像是版本漏洞,通过看提示从php4.2.0开始就不用mt_scrand(seed)来播种,会自动播种,如果设置了mt_scrand(seed)并且seed有值,那就会生成伪随机数(俗称假的随机数),生成的数字就会固定。
25:这一题和上一题不一样,需要用工具跑(工具:php_mt_seed)
这里有和24题一样的漏洞,使用了mt_srand()播种就会生成特定的随机值,这里我们需要传入同样的随机值让rand的变量为零才能进入if
虽然说使用mt_rand()会生成特定的数,但是每次的使用会不一样
例如:第一次使用mt_rand()会生成123456但第二次使用mt_rand()会生成456789,但是无论刷新多少次他们都不会变
这里还需要我们传入cookie里的token值需要弱等于两个随机值相加(每一次使用,mt_rand()生成的都会不一样,本来我还想直接bp抓包爆破来着,但是显然不可行)
####这里使用工具怎么跑出来的不清楚原理,有些许复杂
这里跑出来的是mt_srand('种子')的种子,把他拿到php在线执行中去跑,直到第一次使用mt_rand()等于784681645(每个人都不一样)
例如这样:
26:直接暴力破解密码即可
27:这一题我直接用万能的bp做的
首先呢,他会验证这中间部分是否日期,如果长度或者大小都不正确的话,会直接弹窗且不发包,这里我直接用bp爆破模式添加了三个放payload的位置
这里是三个payload