sha1() md5() 漏洞
来源:互联网 发布:袜子推荐 知乎 编辑:程序博客网 时间:2024/06/07 01:06
1.Prudential
I don‘t think that sha1 is broken. Prove me wrong.
代码如下:
<html> <head> <title>level1</title> <link rel='stylesheet' href='style.css' type='text/css'> </head> <body> <?php require 'flag.php'; if (isset($_GET['name']) and isset($_GET['password'])) { if ($_GET['name'] == $_GET['password']) print 'Your password can not be your name.'; else if (sha1($_GET['name']) === sha1($_GET['password'])) die('Flag: '.$flag); else print '<p class="alert">Invalid password.</p>'; } ?> <section class="login"> <div class="title"> <a href="./index.txt">Level 1</a> </div> <form method="get"> <input type="text" required name="name" placeholder="Name"/><br/> <input type="text" required name="password" placeholder="Password" /><br/> <input type="submit"/> </form> </section> </body> </html>
分析代码逻辑,发现GET了两个字段name和password,获得flag要求的条件是:name != password & sha1(name) == sha1(password),乍看起来这是不可能的,其实可以利用sha1()函数的漏洞来绕过。如果把这两个字段构造为数组,如:?name[]=a&password[]=b,这样在第一处判断时两数组确实是不同的,但在第二处判断时由于sha1()函数无法处理数组类型,将报错并返回false,if 条件成立,获得flag。
经验证md5()函数同样存在此漏洞。
0 0
- sha1() md5() 漏洞
- PHP sha1() md5()函数漏洞
- PHP 中的sha1()和MD5()函数漏洞
- sha1+md5
- SHA1 & MD5
- MD5+SHA1
- md5,sha1
- SHA1、MD5、DES加密
- SHA1、MD5、DES加密
- SHA1和MD5加密
- md5 & sha1 算法
- md5 sha1 deb install
- MD5 和 SHA1 加密
- MD5 Vs SHA1
- SHA1与MD5 加密算法
- 摘要算法 SHA1 MD5
- SHA1与MD5
- MD5和SHA1
- 前端技能练习:this对象的指定
- 通过反汇编定位段错误
- Python 简介
- VS生成的winform项目各个文件意义和解决方案资源管理器作用
- HDU:1027 Ignatius and the Princess II
- sha1() md5() 漏洞
- 湖南纬德大宗平台下架了是为什么?还有其他的平台可以操作吗
- meno
- URAL 2066. Simple Expression
- Real Time Transfer (RTT)
- ccf csp 2015-12-3 画图
- uestc oj 851方老师与素数
- 路由表的建立和形成
- Http请求之post和get提交