奇淫巧计 sha1()函数比较绕过

admin 2024年12月6日17:26:59评论6 views字数 711阅读2分22秒阅读模式

 

0x02 函数说明

1.sha函数

以字符串形式返回 sha1 散列值。

奇淫巧计 sha1()函数比较绕过

0x03 数组绕过sha1函数 CTF题解析

1.当我们传入payload:name[]=1&password[]=2,路由过程如下

代码第1-4行:判断name和password是否相等DEBUG:$_GET: {name => 1, password => 2},这里不相等,所以pass

代码第5-11行:使用sha1函数加密name和password比较是否恒等于,恒等于报错flag,否则输出错误的密码DEBUG:$_GET: {name => , password => }(===会比较类型,比如bool sha1()函数和md5()函数存在漏洞,sha1()函数默认的传入参数类型是字符串型,如果传入数组类型会出现错误,从而使sha1()函数返回false,这样===运算符就可以发挥作用,因此获取flag需要构造username和password既不相等,又同样是数组类型),这里都为false,所以恒等于即pass

if (isset($_GET['name']) and isset($_GET['password'])) {    if ($_GET['name'] == $_GET['password'])        echo '<p>Your password can not be your name!</p>';    else if (sha1($_GET['name']) === sha1($_GET['password']))      die('Flag: '.$flag);    else        echo '<p>Invalid password.</p>';}
奇淫巧计 sha1()函数比较绕过

 

原文始发于微信公众号(鲲哥的Bypass之旅):奇淫巧计 sha1()函数比较绕过

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月6日17:26:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   奇淫巧计 sha1()函数比较绕过http://cn-sec.com/archives/2496212.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息