实验吧web-FALSE

作者: 追求科技的足球 | 来源:发表于2019-03-27 20:40 被阅读5次

又是菜鸡的一天,一道简单题。
1、题目提示:



2、打开网站,发现下面直接可以看源码,那就看吧,直接view:



读一下代码的意思,基本是这样的
if 非空:
    if  用户名=密码:
        错误
    else if (sha1(用户名) = sha1(密码)):
        输出flag
    else:
         错误
else:
    错误

也就是说有三个要求:
(1)用户名、密码非空
(2)用户名不与密码相同
(3)经过sha1函数后的用户名和密码相同。

3、这是个什么概念呢,我们来看一下sha1函数:
定义如下:
(1)sha1() 函数计算字符串的 SHA-1 散列。
(2)sha1() 函数使用美国 Secure Hash 算法 1。
(3)来自 RFC 3174 的解释 - 美国 Secure Hash 算法 1:SHA-1 产生一个名为报文摘要的 160 位的输出。报文摘要可以被输入到一个可生成或验证报文签名的签名算法。对报文摘要进行签名,而不是对报文进行签名,这样可以提高进程效率,因为报文摘要的大小通常比报文要小很多。数字签名的验证者必须像数字签名的创建者一样,使用相同的散列算法。
也就是说经过散列加密后的用户名和密码要一致,但是原始值不一致,这几乎是不存在的。

4、看一下W3school上的说明,重点在这个地方:



如果将函数返回值都做成false,则可以通过。

5、如果对于sha1进行数组运算,则会返回一个false,因为其是字符串运算的。

6、看一下它的请求头:



将这个sha1的处理改成数组的即可,于是为:

http://ctf5.shiyanbar.com/web/false.php?name[]=1&password[]=2

7、有一个地方用到了三个等号,于是搜了一下用法:
===:等同符,当等号两边的值为相同类型的时候,直接比较等号两边的值,值相同则返回true,若等号两边的值类型不同时直接返回false。
但是在这里都是两侧都是用的字符串,所以无法从这个地方下手。

小结:学到了sha1()函数数组返回false绕过,和===的用法。

相关文章

  • 实验吧web-false

    题目地址:http://ctf5.shiyanbar.com/web/false.php 点击View the s...

  • 实验吧 Web-False

    没想到又有时间写wp了。。那就再写一篇吧。 False 跟前两次写的题一样,还是php代码审计,而且这一次的题跟c...

  • 实验吧web-FALSE

    又是菜鸡的一天,一道简单题。1、题目提示: 2、打开网站,发现下面直接可以看源码,那就看吧,直接view: 也就是...

  • 实验吧-web-FALSE

    本系列文集:实验吧-Write up --将持续更新 ...

  • 实验吧-FALSE

    FALSE 原题链接 http://ctf5.shiyanbar.com/web/false.php 分析 注意到...

  • 实验吧-Forms

    Forms 原题链接 http://ctf5.shiyanbar.com/10/main.php 分析 很简单。。...

  • [实验吧]Web

    简单的登录题 解题链接: [http://ctf5.shiyanbar.com/web/jiandan/index...

  • 实验吧 trivial

    自己是真的菜。 网上的解题代码很多了,这里就不说了,主要是解析一下。 PS:trivial在数学里是一眼就可以看出...

  • 神圣的事

    学习 踢球 做实验 是吧~

  • 实验吧-逆向-证明自己吧

    题目:http://www.shiyanbar.com/ctf/28 1.附件 2.PEID打开,Microsof...

网友评论

    本文标题:实验吧web-FALSE

    本文链接:https://www.haomeiwen.com/subject/qjitbqtx.html