目录
web21:
本题进题后就是一个前端登录,一般都是admin然后密码爆破的,我们输入admin和1,burp抓包后查看。
然后我找不到刚刚输入的东西,看了wp,发现就是那个Authorization。Basic应该是base64编码的意思,我们拿着后面的代码去base64解密。发现了就是我们输入的,而且格式是"admin:1"。所以我们进行爆破就可以了。但是密码要进行base64编码,并且需要一个"admin:"的前缀。直接在instruder里面是可以调的。
记得要把这里对字符的url编码给取消了,不然会爆破不出来的。
然后就开始爆破就可以了。
找到了相应编码:YWRtaW46c2hhcms2Mw==,解码发现是"admin:shark63"然后输入就可以了。
然后就得到了flag。
web22:
本题环境坏了。
web23:
进题给了源码,我们可以审计:
发现是哈希值爆破,我改了一下哈希的脚本,但是爆破不出来。因为他中间字符和字符和整形的运算好像有点乱了。我就去看了wp,这里是wp用的哈希脚本:
import hashlib for i in range(1,10000): md5 = hashlib.md5(str(i).encode('utf-8')).hexdigest() if md5[1] != md5[14] or md5[14]!= md5[17]: continue if(ord(md5[1]))>=48 and ord(md5[1])<=57 and (ord(md5[31]))>=48 and ord(md5[31])<=57: if((int(md5[1])+int(md5[14])+int(md5[17]))/int(md5[1])==int(md5[31])): print(i)
这里可以爆破出一个值是422。我们进去给get传参:
然后就得到了flag。
web24:
本题也是进题给了源码:
代码审计后发现,他需要一个随机数,并且该随机数播种之后,只会随机出不同的几个值。我们必须先找到其中任意一个值并进行爆破才可以。所以我们把这段播种mt_srand()代码拿到phpstorm中进行1000次循环。发现其中有几次会产生一个1155388967的数字,如图:
所以我们可以拿着这个值一次一次的尝试直到输出flag。但是我觉得太慢了。所以我就拿着这个去建了一个只有该数字的5000次的字典。拿去sniper爆破(可能有别的能重复爆破的方法,但是我还不知道)然后发现有几次输出长度不同,如图:
在长度237里面发现了flag。
web25(未解决):
进题给了源码,代码审计:
跟上题思路差不多,但是复杂了许多。
第一个if:我们需要get给r传参,并且rand的值是r减去mt_rand()的播种后的随机数,还要是rand=0。就是r=mt_rand()
第二个if:我们要用cookie给token传参,并且token=mt_rand()+mt_rand()。
我们需要找到mt_rand()的一个纯数字值,然后爆破多次才行:
232662073,这应该就是一个值,所以我们拿去爆破就行:
爆破了多次,发现并不能出答案。所以我去看了一下wp。发现由于此源码函数的原因,每个计算机都会有不同的种子。而种子会回显,我们输入?r=0
发现回显如下。说明我们播种后产生的随机数mt_rand()=1561434878。我们要用到php_mt_rand.c这个工具来反向找到播种的代码。但是我的工具用不了,所以这题先跳过。
web26:
PS:不知道本题和爆破有什么关系
进题看到一个页面,点进去有一个新的提交页面:
我输入东西的时候,他会显示错误。然后不小心没输入点了一下,发现成功了。。。
然后我就抓包再看了一下,发现成功的时候就有flag回显了:
然后就得到了flag。
web27:
进题是一个登录界面,可以下载一个文件:
然后点击学生学籍查询系统:
由于是web题,我先尝试了“高先伊”。然后身份证爆破,因为中间8位是生日,所以我们日期爆破:
然后爆破成功了,找到了用户名,用unicode解码之后,用户名和密码是:
然后登录得到flag。
web28:
由于题目又是没给提示,但是当我每次在后面修改后缀的时候,他都会自动跳回/0/1/2.txt。所以我们尝试一下在2.txt进行后缀爆破。但是一无所获。我去看了wp,发现需要在0和1的位置爆破。用Cluster bomb进行两个位置的爆破,从1-99尝试。发现在72、20可以找到:
然后就找到了flag。