bugku----备份是个好习惯
备份是个好习惯
1.php中的strstr()函数
strstr( string $haystack , mixed $needle[, bool $before_needle = FALSE] )
返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。
Note:
该函数区分大小写。如果想要不区分大小写,请使用 stristr()。
2. substr( string $string , int $start [, int $length] )
返回字符串 string 由 start 和 length 参数指定的子字符串。
3.str_replace ( mixed $search, mixed $replace, mixed KaTeX parse error: Expected 'EOF', got '&' at position 15: subject[, int &̲count] ) 该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。
4.parse_str 将字符串解析成多个变量
parse_str( string KaTeX parse error: Expected 'EOF', got '&' at position 24: …string[, array &̲result ] )
如果 encoded_string 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域(如果提供了 result 则会设置到该数组里 )。
尝试打开后,会得到一个文件,打开后如下:
整段代码的意思是将get的两个参数中的key替换为空(这里可以用kekeyy绕过),然后对key1,key2的值进行md5加密,并进行比较,如果md5加密的值一样而未加密的值不同,就输出flag.
有两种方法绕过:
1,md5()函数无法处理数组,如果传入的为数组,会返回NULL,所以两个数组经过加密后得到的都是NULL,也就是相等的。
2,利用==比较漏洞
如果两个字符经MD5加密后的值为 0exxxxx形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,还是零,都是相等的。下列的字符串的MD5值都是0e开头的:QNKCDZO
240610708
s878926199a
s155964671a
s214587387a