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…
s878926199a 0e545993274517709034328855841020 s155964671a 0e342768416822451524974117254469 s214587387a 0e848240448830537924465865611904 s214587387a 0e848240448830537924465865611904 s878926199a 0e545993274517709034328855841020 s1091221200a 0e9406242178…
上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符串(消息摘要). 简单了解 MD5(Message Digest Algorithm 5),翻译过来是消息摘要算法第五版,按照惯例,我们推理可能也有MD2,MD3这样名字的历史版本.. 即使完全不了解这个算法的原理,我们也可以从命名中看出一些眉道,所谓摘要,就是一个简短的概括,像我写过的毕业论文,上…
MD5哈希值计算:(仅仅是记录一下) /// <summary> /// 获取字符串的MD5值 /// </summary> /// <param name="str">字符串</param> /// <param name="salt">加盐值</param> /// <returns></returns> public static string MD5(this s…
MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性.用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm).另外还有一种常用的消息摘要算法SHA1.如果想了解这些的话,可以去百度百科:MD5.SHA1.消息摘要算法. Java已经实现了MD5.SHA1算法.利用java.security.MessageDigest类就可以获取字符串和文件的MD5以及SHA1结果. 1.字符串的MD5(下面的代码有详细注释) public static String s…
Java实现MD5加密,具体代码如下: package com.bstek.tools; import java.io.FileInputStream; import java.io.IOException; import java.security.DigestInputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * Md5 * 提供对字符串的md5…
————————————————md5加密—————————————— s878926199a s155964671a s214587387a s214587387a s878926199a s1091221200a s1885207154a s1502113478a s1885207154a s1836677006a s155964671a s1184209335a s1665632922a s1502113478a s1836677006a s1091221200a s155964671a…
- MD5功能 MD5算法对任意长度的消息输入,产生一个128位(16字节)的哈希结构输出.在处理过程中,以512位输入数据块为单位. - MD5用途及特征 MD5通常应用在以下场景: 1.防篡改,保障文件传输可靠性 如SVN中对文件的控制:文件下载过程中,网站提供MD5值供下载后判断文件是否被篡改:BT中对文件块进行校验的功能. 2.增强密码保存的安全性. 例如 - MD5算法过程 网络中很容易找到MD5算法的相关实现代码,这里就不列出了.我们只需要关心它的实现框架即可. 第一步:消息填充 补…
这是昨天做一个接口对接时遇到的一个问题.下面是md5加密的算法 public static String md555(String plainText) throws UnsupportedEncodingException { byte[] secretBytes = null; try { secretBytes = MessageDigest.getInstance("md5").digest( plainText.getBytes()); } catch (NoSuchAlgo…
一.DES加密.解密 #region DES加密解密 /// <summary> /// 进行DES加密 /// </summary> /// <param name="pToEncrypt">要加密的字符串</param> /// <param name="sKey">密钥,必须为8位</param> /// <returns>以Base64格式返回的加密字符串</retur…
//此处只是获得了字符串的hash值,但是该如何散列到hash表中呢?哪个算法会好些?! 1 //在处理以字符串为键值的哈希时,times33哈希算法有着极快的计算效率和很好的哈希分布 //小写英文单词 #if 1 unsigned int str_hash(const char* key) { unsigned ; while(*key) { hash = ((hash << 5) + hash) + (unsigned int)*key++; } return hash; } #else…
一如下代码 public static string GenerateCode(Guid id, DateTime endTime, string Type) { string str = id + endTime.ToString("yyyyMMddHHmmss") + Type; string strMd5 = Encryption32(str); strMd5 = strMd5.Substring(, ); char[] list = strMd5.ToCharArray();…
方法1: using System.Text; using System.Security.Cryptography; public string Hash(string toHash) { MD5CryptoServiceProvider crypto = new MD5CryptoServiceProvider(); byte[] bytes = Encoding.UTF7.GetBytes(toHash); bytes = crypto.ComputeHash(bytes); String…
本文介绍了strip()方法,split()方法, 字典的按键值访问的方法, 1.Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列. 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符. strip()方法语法: str.strip([chars]);参数   chars -- 移除字符串头尾指定的字符序列.返回值 返回移除字符串头尾指定的字符序列生成的新字符串.实例 以下实例展示了 strip() 函数的使用方法: 例1: str = "***…
/// <summary> /// 加密 /// </summary> /// <param name="Text">要加密的文本</param> /// <param name="sKey">秘钥</param> /// <returns></returns> public static string Encrypt(string Text, string sKey=&…
string[] unit = Getunit(result40, "(?<=(开始字符串))[.\\s\\S]*?(?=(结束字符串))"); private string[] Getunit(string value, string regx)        {            if (string.IsNullOrWhiteSpace(value))                return null;            bool isMatch = Regex…
使用属性+__isnull就可以判断此字段为空 a = DatasClass.objects.filter(name__isnull=True) 使用属性+__startswith可以判断属性由某字符串开始的行 a = DatasClass.objects.filter(name__startswith='aaa') 使用属性+__endswith可以判断属性由某字符串结束的行 a = DatasClass.objects.filter(name__endswith='aaa') 使用属性+__…
VS2015支持 字符串拼接 如下: string user="test"; int password=123; string sql=$" user={user};password={password.ToString()} ;" 使用字符串拼接只需要在原字符串前加$即可,是不是很简单 另外字符串拼接也可以和@并且,@是可以让字符串换行 如 string sql=@" user={user}; password={password.ToString()}…
\r\n拼接Bug 环境: python3.4.pycharm2017 偶然的学习中遇到了一个问题,百思不得姐,什么问题呢,大家输入太快了,难免有失误就如下面的代码 #构造响应数据 response_start_line = "HTTP/1.1 200 OK0\r\n" response_headers = "Server: My server \r\n" # response_headers = "Server: My server\r \n"…
0×00 背景 近期在研究学习变量覆盖漏洞的问题,于是就把之前学习的和近期看到的CTF题目中有关变量覆盖的题目结合下进一步研究. 通常将可以用自定义的参数值替换原有变量值的情况称为变量覆盖漏洞.经常导致变量覆盖漏洞场景有:$$使用不当,extract()函数使用不当,parse_str()函数使用不当,import_request_variables()使用不当,开启了全局变量注册等. 本篇收集了几个CTF中的题目作为例子,对$$,extract(),parse_str()的问题进行总结. 0×…
通常将可以用自定义的参数值替换原有变量值的情况称为变量覆盖漏洞.经常导致变量覆盖漏洞场景有:$$使用不当,extract()函数使用不当,parse_str()函数使用不当,import_request_variables()使用不当,开启了全局变量注册等. 0×01 $$导致的变量覆盖问题 $$ 导致的变量覆盖问题在CTF代码审计题目中经常在foreach中出现,如以下的示例代码,使用foreach来遍历数组中的值,然后再将获取到的数组键名作为变量,数组中的键值作为变量的值.因此就产生了变量覆…
0x00 前言 最近在干代码审计,于是就把之前学习的CTF题目中有关变量覆盖的题目结合下进一步研究. 通常将可以用自定义的参数值替换原有变量值的情况称为变量覆盖漏洞.经常导致变量覆盖漏洞场景有:$$使用不当,extract()函数使用不当,parse_str()函数使用不当,import_request_variables()使用不当,开启了全局变量注册等. 本篇收集了几个CTF中的题目作为例子,对$$,extract(),parse_str()的问题进行总结. 0x01 $$导致的变量覆盖问题…
MD5部分 第一题 一看就有些眼熟 emmmm 查看一下源代码: 重点是这里 这里面要求POST上去的参数 param1 != param2 && md5('param1') == md5('param2') 这道题运用了php的一个哈希比较缺陷,就是php在处理0e开头md5哈希字符串时,会将他看成 0 (具体下面那篇文章)PHP在处理哈希字符串时,会利用"!="或"=="来对哈希值进行比较,它把每一个以"0E"开头的哈希值都解…
Day35    前女友(SKCTF) http://123.206.31.85:49162/ flag格式:SKCTF{xxxxxxxxxxxxxxxxxx}  …
题目描述 一个网页,不妨设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将会认为他…
相信大家都知道,sha1函数和md5都是哈希编码的一种,在PHP中,这两种编码是存在绕过漏洞的. PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0. 因此我们只需要传入开头都是0E的两个值,便可成功绕过. 例如这个代码(sha1($_GET['uname']) === sha1($_POST['passwd']) 只需构造uname…