【发布时间】:2019-10-22 12:53:57
【问题描述】:
所以我正在做一些 CTF,其中一个挑战是关于 php 类型的杂耍。代码看起来像这样
if($_GET['var1'] == hash('md4', $_GET['var1']))
{
//print flag
}
所以我 80% 确定我需要传入一个整数,所以这是真的,但我能操纵的只是 url。我尝试使用 python 请求来执行此操作,但仍然失败。
import requests
url = 'http://example.com'
params = dict(var1=0)
r = requests.get(url=url, params=params)
是否有任何特殊情况,php 会将传入 GET 数组的变量视为 int?或者还有其他方法吗?
【问题讨论】:
-
也许只有我一个人,但什么是 CTF?
-
另外,除非发生冲突,否则
$_GET['var1']不能等于hash('md4', $_GET['var1'])。 -
@Ibu CTF 正在夺旗。此外,也有可能的情况。假设 0 的 md4 哈希是 ea5698173fc6fdbe30a9af462b9fc847。在 php 中,如果你比较 0 和一个字符串,如果字符串不以 int 开头,它将总是返回 true
-
你有没有试过什么都不通过?这应该让你两边都为 null。
标签: php type-conversion ctf