[WeChall] Training: Register Globals (Exploit, PHP, Training)

http://www.wechall.net/challenge/training/php/globals/index.php

首先题目提示了这个漏洞来自旧版本的PHP中register globals被默认开启。当然我们首先就要去了解这是个什么东西。于是有了上一篇文章 PHP使用 Register Globals可能引发的问题

分析一下,第一个if用来验证用户名和密码,如果匹配了就set login。第二个if用来判断login有没有被set,有的话就是登陆成功了。其实看完整个代码会觉得非常奇怪(教育网站为我们小白留下漏洞的痕迹很重),为什么验证通过不能再第一个if里面完成呢?

反正了解了 PHP使用 Register Globals可能引发的问题 之后,加上这个奇怪的判断登陆的方法,我们应该能够想到只要通过GET方式传一个值给$login就能使得第二个if条件通过,直接绕过第一个if的登陆验证。

但是呢事情还没有完。由于我们还是要以admin进行登陆,所以再看看代码的条件的话,就是要$login[0]===’admin’才行。

于是我们只需要访问以下URL即可完成本题。

http://www.wechall.net/challenge/training/php/globals/globals.php?login[0]=admin

Leave a Comment