如何构造 v1 和 v2 才能读取到 1.txt

2020-08-20 22:21:29 +08:00
 Esc410

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/700081

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX