代码如下,如何构造 v1 和 v2 才能读取到 1.txt
<?php
$v1 = $_GET['v1'];
$v2 = $_GET['v2'];
$v1 = (string)$v1;
if(strlen($v1) > 5 || strlen($v2) > 5){
die("too long");
}
if($v1 !== $v2 && md5($v1) === md5($v2) && $v1 != $v2){
echo file_get_contents("/1.txt");
}
1
2kCS5c0b0ITXE5k2 2020-08-20 22:47:22 +08:00
md5 — 计算字符串的 MD5 散列值 貌似没办法读到。。
|
2
kernelpanic 2020-08-20 22:54:17 +08:00
|
3
2kCS5c0b0ITXE5k2 2020-08-20 22:54:22 +08:00
不过貌似 php 的 md5 会有 bug 传入数组 会返回 null 所以传入 2 个不同的数组就可以了
|
4
hellos 2020-08-20 22:56:54 +08:00 via Android
没$v1 = (string)$v1;可以 v1[]=1 v2[]=2 。
但 (string)$v1 只能 md5 碰撞了,但又限制长度。 不知道 |
5
0clickjacking0 2020-08-20 23:03:04 +08:00
@kernelpanic 这里限制了长度,你博客里写的方法不能用的
|
6
mx1700 2020-08-21 08:10:07 +08:00 via Android
v1[]=1&v2=Array
|
8
masker 2020-08-21 08:15:47 +08:00 via Android
打 ctf 都找别人帮你白嫖?
|
9
ben1024 2020-08-21 09:15:17 +08:00
长度小于 5 的 MD5 碰撞,有点意思
|
10
goodboy95 2020-08-21 10:53:48 +08:00
现在 ctf 这么有意思了吗,要不就写个程序慢慢跑吧(只考虑字母和数字),如果答案存在的话,花几天时间应该能跑出来
|
11
0clickjacking0 2020-08-25 22:06:26 +08:00
NAN 和 INF 就行了
|