题目考查点

1.php类型比较
2.如何做到变量原值不同但利用md5或sha1编码后结果相同

涉及知识点

1.php变量比较包含松散比较和严格比较。其中,松散比较指使用两个等号比较,只比较值,不比较类型。严格比较指用三个等号比较,除了比较值,也比较类型。详情可见php入门之类型比较
2.php中sha1()函数计算字符串的SHA-1散列,md5()函数则计算字符串的MD5散列。
3.经过MD5运算后结果为0的字符串,编码后需保证0e**的形式,换成数字意思为0乘10的n次方,故结果为0。例如240610708 和 QNKCDZO均符合,实际上符合的字符串很多,就不一一赘述了。
4.保证变量不同但SHA-1编码后相同,利用数组绕过的方法。因为md5和sha1对一个数组进行加密都将返回NULL,而NULL===NULL返回true。还有一些php黑魔法可见以下链接:
ctf中php总结
php常见考点
php黑魔法总结

做题步骤

1.观察所给代码,使用get请求。并且只要同时满足md5($test)==‘0’
sha1($_GET[[‘name’])===sha1($_GET[‘password’])
以上两个条件即可。
2.在url后部添加test=240610708&name[]=1&password[]=2,可得到flag信息。


二进制安全      pwn

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!