————————————————md5加密—————————————— s878926199a s155964671a s214587387a s214587387a s878926199a s1091221200a s1885207154a s1502113478a s1885207154a s1836677006a s155964671a s1184209335a s1665632922a s1502113478a s1836677006a s1091221200a s155964671a…
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0. 关于PHP hash比较缺陷详细介绍:http://www.freebuf.com/news/67007.html 0x01 md5(str) QNKCDZO 0e830400451993494058024219903391 s878926199a 0e54599327451770…
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0. 关于PHP hash比较缺陷详细介绍:http://www.freebuf.com/news/67007.html 0x01 md5(str) QNKCDZO 0e830400451993494058024219903391 s878926199a 0e54599327451770…
PHP在处理哈希字符串时,会利用"!="或"=="来对哈希值进行比较,它把每一个以"0E"开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以"0E"开头的,那么PHP将会认为他们相同,都是0. 关于PHP hash比较缺陷详细介绍:http://www.freebuf.com/news/67007.html  0x01 md5(str) 1 2 3 4 5 6 7 8 9 10 11 12 13 14…
以下脚本的功能是生成以指定字符为开头的md5值 #-*- coding:utf-8 -*- #脚本功能:生成以指定字符为开头的md5值(6位数字) import hashlib import random def encryption(chars): return hashlib.md5(chars).hexdigest() def generate(): return str(random.randint(99999,1000000)) def main(): start = "5e"…
s878926199a 0e545993274517709034328855841020 s155964671a 0e342768416822451524974117254469 s214587387a 0e848240448830537924465865611904 s214587387a 0e848240448830537924465865611904 s878926199a 0e545993274517709034328855841020 s1091221200a 0e9406242178…
MD5如何生成的 百度百科 生成MD5 1.通过摘要生成MD5 MessageDigest md = MessageDigest.getInstance("MD5"); md.update(input.getBytes(StandardCharsets.UTF_8)); byte[] hashBytes = md.digest(); StringBuilder sb = new StringBuilder(); for (byte b : hashBytes) { sb.append(…
md5 collision(50)      ------南京邮电大学ctf: http://chinalover.sinaapp.com/web19/ 发现了一串代码 <?php $md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCDZO' && $md51 == $md52) { echo "nctf{*****************}&qu…
原作者:KTWO 出处:https://www.k2zone.cn/?p=2019 0X00 摘要 CTF中md5判等可使用0e绕过,但是如果是双md5该如何绕过呢?本文将教你如何绕过md5(md5(\(_GET['a'])) == md5(\)_GET[b']). 0X01 引言 在php中,所有变量都是若类型的,在使用if判等的时候要格外小心,使用特殊的参数可能会使本来不相等的if判断位相等,比如下面的例子. <?php if (isset($_GET['a']) && isse…
md5的碰撞 0e开头的md5和原值: s878926199a 0e545993274517709034328855841020 s155964671a 0e342768416822451524974117254469 s214587387a 0e848240448830537924465865611904 s214587387a 0e848240448830537924465865611904 s878926199a 0e545993274517709034328855841020 s1091…
这个web题目是来自队里面牛逼哥的题目,审计源码, 看到这两个参数,前面的a和b就是直接输出数字,再看下面的,需要弱比较的输出一个c,要求应该是需要一个加密之前是一个0e开头的字符串,加密之后还是0e开头的MD5的值 这里说一下MD5碰撞,通常遇到这种的时候使用的常规的0eMD5的值,但是没有加密之前的字符开头几乎是没有是0e的,所以才说这是一个比较阴间的题目,(详情可以去百度一下) 像这种加密之前和加密之后都是0e开头的字符串还是真的挺少见的,这里可以使用脚本跑出来想要的没有加密的0e的字符串…
web1 提示:ip不在范围内 直接抓包加client-ip: 127.0.0.1 即可得到flag web2 <?php include 'here.php';    $key = 'kelaibei'; if(isset($_GET['id'])){        $id = $_GET['id'];        @parse_str($id);        if ($key[99] != 'aabg7XSs' && md5($key[99]) == md5('aabg7XS…
天网你敢来挑战嘛 格式:ctf{ } 解题链接: http://ctf5.shiyanbar.com/10/web1/ 打开链接后,嗯,光明正大的放出账号密码,肯定是登不进的,查看源代码 看来是和md5碰撞有关的了, PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0. 攻击者可以利用这一漏洞,通过输入一个经过哈希后以”0E”开头的字…
平台地址:http://ctf.nuptsast.com/ 签到题: 右键查看源代码,得到flag md5 collision: 传入的a的md5值要为0e开头的,但不能是QNKCDZO,百度一个0e开头的md5 得到flag 签到2: 右键查看源代码 输入框允许的最大长度为10,口令的长度为11 使用hackbar post一下 得到flag 这题不是WEB: 下载图片,用记事本打开 拉到最后,得到flag 层层递进: 是一个网站页面,先扫一下 有个404.html 查看一下源代码,得到fla…
WEB Web1-比较数字大小 直接修改input 标签里的maxlength 为999突破长度限制,使得能输入大于999 的数,然后随便输一个数字就行了 或者post修改值 Web2-Web01 strcmp 漏洞,传入为数组时会出错,导致返回为0,所以传入password[]=1,得到flag Web3-为什么这么简单啊 简单?不存在,坑你没商量.看看它说了啥吧 第二关需要从 http://edu.xss.tv 进入,并且只有我公司的IP地址才可以进入第二关,公司IP为:110.110.11…
2019.2.10 过年休息归来,继续做题. bugku的web题,地址:https://ctf.bugku.com/challenges 1. http://123.206.87.240:8002/web16/ 提示是备份,不由自主想到bak.这里可以扫路径或者自己多试试: http://123.206.87.240:8002/web16/index.php.bak 就是备份,直接保存下来. 打开后是一段源代码: 大概意思就是,获取key1和key2,但是会过滤掉你输入的key. 然后如果两个…
南邮CTF攻防平台Writeup By:Mirror王宇阳 个人QQ欢迎交流:2821319009 技术水平有限~大佬勿喷 ^_^ Web题 签到题: 直接一梭哈-- md5 collision: 题目源码提示: $md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCDZO' && $md51 == $md52) { echo "nctf{********…
0x01  前言 这一次的比赛web题只做出来3个,也是菜的抠脚.. 0x02 web-签到题   php弱类型 查看源码,发现是代码审计,要求用户名必须为字母,密码必须为数字,登陆页面可以用开头为0e的md5值绕过,下面列出一串0e开头的md5值 <?php var_dump(md5('240610708') == md5('QNKCDZO')); //bool(true) var_dump(md5('aabg7XSs') == md5('aabC9RqS')); //bool(true) v…
0x01.extract变量覆盖 代码: <?php$flag='xxx';extract($_GET);if(isset($shiyan)){$content=trim(file_get_contents($flag));if($shiyan==$content){echo'flag{xxx}';}else{echo'Oh.no';}}?> GET型传入参数,如果变量shiyan=content,则输出答案 extract()函数用法: extract() 函数从数组中将变量导入到当前的符号…
1.web2 打开网页: 哈哈,其实按下F12你就会发现flag. 2.计算器 打开网页,只是让你输入计算结果,但是发现只能输入一个数字,这时按下F12,修改一下参数,使之可以输入多个数字,修改后输入结果就拿到flag了. 3.web基础$_GET 30 打开网页,审计一下大概是要让其得到一个what=flag,于是在URL后面加上?what=flag,就得到flag了. 4.web基础$_POST 30 打开网页,审计一下大概是要让你上传一个what=flag,用hackbar来post一下就…
周末放假忙里偷闲打了两场比赛,其中一场就是武汉科技大学的WUST-CTF新生赛,虽说是新生赛,题目质量还是相当不错的.最后有幸拿了总排第5,记录一下Web的题解. checkin 进入题目询问题目作者昵称,在题面里可以看到是52HeRtz,但是发现题目输入框只能输入3个字符,并且按钮是灰色的 直接F12审查元素去掉maxlength以及disable两个属性,输入作者昵称即可 弹出作者的博客地址,跟进去 在作者博客首页可以看到一部分Flag: 根据提示“远古的博客”,找到一篇1970年的文章,文…
title: BugkuCTF--wp(旧版) date: 2020-4-25 tags: CTF,比赛 categories: CTF 比赛 Web篇 0x001-web2 解题思路: 1.直接按F12即可找到 0x002-计算器 解题思路: 1.按下F12发现它对输入框的长度进行了限制,先将长度调大 2.在计算给出的题点击验证即可. 0x003-web基础 $_GET 解题思路: 1.提交数据方式为GET传参,所以直接what=flag即可 参考playload:http://123.206…
题目描述 一个网页,不妨设URL为http://haha.com,打开之后是这样的 if (isset($_GET['a']) and isset($_GET['b'])) { if ($_GET['a'] != $_GET['b']) { if (md5($_GET['a']) === md5($_GET['b'])) { echo ('Flag: '.$flag); }else { echo 'Wrong.'; } } } 根据这段代码,可以看出: 使用GET方式提交参数,可以直接在URL里…
md5 collision之记录一些MD5值   “Magic Hash”的PHP漏洞可以使得攻击者非法获取用户的账号信息.   漏洞原因: PHP以一种特定的方式处理被哈希的字符串,攻击者可以利用其从中尝试并可能获取密码,绕过登录认证系统和其它运行在PHP哈希比较之上的函数.     漏洞描述: PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他…
通过get得到三个值,v1,v2,v3. if第一层判断,v1和v2得到的值不一样,但是对它们进行md5加密后的值得相等. if第二层判断,v3得到的值得和$flag的值相等,满足这两个条件输出flag. 一 先解决第一层,php的MD5函数漏洞: ①通过== 或者 !=比较两个哈希字符串的时候,如果哈希字符串都以0E开头,则会判断相等. ②MD5不能比较数组,比如v1[]=1,v2[]=2,MD5也判断相等,实质上都判断为 null. 所以绕过方法/?v1[]=1&v2[]=2或者找些md5加…
源码: <?php $md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCDZO' && $md51 == $md52) { echo "nctf{*****************}"; } else { echo "false!!!"; }} else{echo "please input a";…
相信大家都知道,sha1函数和md5都是哈希编码的一种,在PHP中,这两种编码是存在绕过漏洞的. PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0. 因此我们只需要传入开头都是0E的两个值,便可成功绕过. 例如这个代码(sha1($_GET['uname']) === sha1($_POST['passwd']) 只需构造uname…
抓住两点提示: 1.md5碰撞 2.please input a 利用0 == 字符串是成立的,从而可以绕过MD5检查. 所以找一个md5是0e开头的值,因为 php 在处理 == 的时候当碰到的字符串有一边为 0e 开头的就把这串字符串认为是科学计数法, 所以就是 0 所以 payload:  ?a=s878926199a s155964671a                              s214587387a                              s214…
<?php $md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCDZO' && $md51 == $md52) { echo "flag{*}"; } else { echo "false!!!"; }} else{echo "please input a";} ?> 要是md51等于md52…
0x01 <?php $md51 = md5('QNKCDZO'); $a = @$_GET['a']; $md52 = @md5($a); if(isset($a)){ if ($a != 'QNKCDZO' && $md51 == $md52) { echo "flag{*}"; } else { echo "false!!!"; }} else{ echo "please input a";} ?> 0x02代码…