实验吧web之FALSE
flag值:CTF{t3st_th3_Sha1}
解题步骤:
1.点开题目链接,观察题意
![](https://img2018.cnblogs.com/blog/1785869/201909/1785869-20190905112623354-2145893188.png)
![](file:///D:/æéäºç¬è®°è®°å½èµæ/qq47DA65658B77EF870612B0AF231434DC/7db3ce5f2d61426e8e88a566c1469fa1/clipboard.png)
2.题目提示可以用sha1函数,也可以用MD5碰撞,通过题意判断可以使用sha1函数获取flag值,也可以用MD5获取flag值,进入解题链接
![](https://img2018.cnblogs.com/blog/1785869/201909/1785869-20190905112631359-2062474243.png)
![](file:///D:/æéäºç¬è®°è®°å½èµæ/qq47DA65658B77EF870612B0AF231434DC/0c045642bfb34dd0b1857b7a5db2e16a/clipboard.png)
3.进入解题链接后,发现是个登录界面,我们查看源代码后并没有发现什么问题,于是点击View the source code查看php代码,确定其中包含的信息
![](https://img2018.cnblogs.com/blog/1785869/201909/1785869-20190905112639369-1980811290.png)
![](file:///D:/æéäºç¬è®°è®°å½èµæ/qq47DA65658B77EF870612B0AF231434DC/6743ddcf65d34a398b3ec564aaa5219a/clipboard.png)
4.在这段源码中可以看出点,再下面列出
1----如果名字等于密码就输出:你的名字不能和密码一样
2----如果名字的哈希值等于密码的哈希值:输出flag值
![](https://img2018.cnblogs.com/blog/1785869/201909/1785869-20190905112656427-1211431945.png)
![](file:///D:/æéäºç¬è®°è®°å½èµæ/qq47DA65658B77EF870612B0AF231434DC/22deccc630ed4acf9c14f003d96bd0c6/clipboard.png)
5.从而判断,如果想要获取flag值,那么就必须上传两个值,但是值不能相等,却要让哈希值相等,但实际上是不存在两个不相等的值通过计算使哈希值变成相等的。于是我们可以使用SHA函数的一个漏洞,该函数默认传输数据类型是字符串型,那么我们就可以传输其他类型的数据,比如数组等。这样就可以通过更改URL来获取flag值了。在地址栏输入,如下图
![](https://img2018.cnblogs.com/blog/1785869/201909/1785869-20190905112708370-1242078034.png)
![](file:///D:/æéäºç¬è®°è®°å½èµæ/qq47DA65658B77EF870612B0AF231434DC/d001014792fb464ea4a9309dc70add66/clipboard.png)
6.按回车进行下一步发现flag值已经出现在界面上,提交就可以了
![](https://img2018.cnblogs.com/blog/1785869/201909/1785869-20190905112716379-893806783.png)
![](file:///D:/æéäºç¬è®°è®°å½èµæ/qq47DA65658B77EF870612B0AF231434DC/5367a4f46c3448b0b333933ab19b4d7d/clipboard.png)
7.提交成功
![](https://img2018.cnblogs.com/blog/1785869/201909/1785869-20190905112725367-1122279487.png)
![](file:///D:/æéäºç¬è®°è®°å½èµæ/qq47DA65658B77EF870612B0AF231434DC/989b358438c24fca80f70aa0a0ecfef8/clipboard.png)
附加知识点:
1---- == : 比较运算符号 不会检查条件式的表达式的类型
2---- ===: 恒等计算符 , 同时检查表达式的值与类型。(会检查表达式类型,如bool)
![](file:///D:/æéäºç¬è®°è®°å½èµæ/qq47DA65658B77EF870612B0AF231434DC/342950495aab4c369f528c5f15af40a7/clipboard.png)
![](https://img2018.cnblogs.com/blog/1785869/201909/1785869-20190905112736419-1167001421.png)