1、奇妙的MD5
- 查看head,发现有md5绕过
- 这边有一个算是万能绕过的字符:ffifdyop,根据函数md5加密后,再次转换为字符串时,会变成’or’6,此时函数一定为真。(具体内容可以查一查md5($pass,true)函数)
输入后跳转页面
- 查看一下源码,存在一个MD5弱类型绕过,
数组绕过一下:/?x[]=1&y[]=2
- 跳转了页面,访问一下,md5强类型绕过
还是数组绕过就可以:wqh[]=1&dsy[]=2
然后就出flag了
2、whereami
- 这题,应该算是信息搜集吧,给了一张图,说是11位,应该是电话号码,百度识图一下:百度识图搜索结果
查到应该是在成都,锦江区的某个酒店吧,看一下图片的名字,我眼神不好,应该是古*酒店,百度搜索一下,应该是叫古迹酒店
- 查一下成都锦江区古迹酒店
- 尝试一下,电话号码,跳转页面,成功
3、webdog1__start
- 打开页面,查看源码,存在一个弱类型md5绕过,需要一个特殊值:0e215962017来进行绕过。
构造一下:?web=0e215962017
- 传值后跳转到下一个页面:
这地方没找到什么,只有一个能点击,应该是大佬的博客,页面跳转,应该不是题目内容了,所以抓个包看看
- 抓包后,在响应包里找到了一个页面,访问一下试试
- 访问后,又找到一个页面,继续访问
- 找到了一个php页面,应该也是一个绕过吧
18){ die("This is too long."); } else{ eval($get); } }else { die("nonono"); }} ?>
分析一下,两个部分:第一个是strstr()函数,与str_ireplace()函数配合使用吧
Get值正常输入,没有问题,不能带flag,因为带flag会替换成空格,就不能过掉strstr()函数,也不能存在空格。
构造一下:?get=system(ls);
- 能运行命令,但是还有一条长度不能超过18,
构造语句:用%09能代替空格
看看根下,确实有flag
- 尝试构造语句,查看一下flag
语句:?get=system('nl%09/f*');
最后出flag
4、ez_ez_php
首先,访问一下flag.php,
- 尝试一下伪协议,这边还有一句real_flag_is_in_'flag'
所以构造一下:
http://url/?file=php://filter/read=convert.base64-encode/resource=flag
- 这边应该是base64,解密一下,出flag
5、ez_ez_php(revenge)
这边跟上一次,伪协议类似,看看flag.php
这次说是在/flag处,用伪协议
- 咱们直接搞:
http://url/?file=php://filter/read=convert.base64-encode/resource=/flag
- 还是base64解密,出flag
来源地址:https://blog.csdn.net/weixin_46497491/article/details/127478337