根据源码可以看到两处特别需要重视的地方,我已标红,很明显该sql语句存在注入漏洞,但是密码栏不能通过一般的注入来绕过,但是可以发现,只要满足了($row[pw]) && (!strcasecmp($pass, $row[pw])就可以拿到flag,也就是说,我们输入的$pass与从数据库取出来的pw一致就行,我们可以控制$pass的值,但是貌似不知道数据库中pw的值,但是我们可以直接用union select ‘某一个经过md5加密后的字符串’#来自己随意设定密码,注意这里一定是经过md5加密,不然会出错。 构造语句:’ and 0=1 union select ‘529CA8050A0018