### 源码分析

```php
<h3>挑战VIP会员的第三天<h3/>
<?php
error_reporting(0);
include('flag.php');
if(isset($_GET['token'])){
    $token = md5($_GET['token']);
    if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
        if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
            echo $flag;
        }
    }
}else{
	echo 'you no VIP !'
    highlight_file(__FILE__);

}
?>
```

爆破，可以知道，第2位，第15位，第18位是一样的，并且为数字，第32位为3，

### 脚本:

```python
import hashlib

for i in range(1, 1000000000000000):
    s = hashlib.md5(str(i).encode()).hexdigest()
    if s[1]==s[14] and s[14]==s[17] and s[31].isdigit() and s[31]=='3':
        print(i,s)
        break
//运行结果 
422 f85454e8279be180185cac7d243c5eb3
```

### payload：

```
?token=422
```