网站编辑培训学校,discuzq主题,北京工作室网站建设,爱漫画-只做精品的韩漫网站1.MD5()漏洞php在处理字符串时会利用#xff01;#xff0c;||#xff0c;进行hash值的比较 他把每一个“0E’开头的哈希值都解释为0#xff0c;因此如果两个不同的密码经过hash处理之后都是以‘0e’开头#xff0c;那么PHP会认为两者是相同的#xff0c;南京邮电大学一次…1.MD5()漏洞php在处理字符串时会利用||进行hash值的比较 他把每一个“0E’开头的哈希值都解释为0因此如果两个不同的密码经过hash处理之后都是以‘0e’开头那么PHP会认为两者是相同的南京邮电大学一次ctf上就出了一道这个题。一些经md5()后以0e开头的例子s878926199a0e545993274517709034328855841020s155964671a0e342768416822451524974117254469s214587387a0e848240448830537924465865611904s214587387a0e848240448830537924465865611904验证一下这个现象。说到md5就还有一个经典案例就是数组的MD5值都相等 都为NULL这里写了一小段代码成立2.strcmp()strcmp(string $str1, string $str2);比较str1和str2 如果长度12 返回1否则返回0但是仅限于两者数据类型相同 如果s1是一个int型 s2是个string型就无法比较 返回的永远是0写段代码刚才的说法是成立的3.变量覆盖(GLOBLS)我见过最常见的变量覆盖 也是最容易判断是否为变量覆盖的技巧就是审计代码时候看有没有出现$$这样的符号这里面args变量在前面会有很多功能但是只要在最后出现$$args 这就是一个全局变量。直接argsGLOBLS即可。一个在阿里安全部的学长告诉我当你审计一个企业级10万行以上代码的程序不费劲的时候基本就算顶尖安全工程师了。剩下的好多还没想好怎么写容易理解有时间慢慢写吧。