Bugku-CTF之前女友(SKCTF)
2024-09-03 23:46:20
Day35
前女友(SKCTF)
flag格式:SKCTF{xxxxxxxxxxxxxxxxxx}
本题要点:strcmp()、md5 collision
满满的套路啊~
链接打开后,发现一段代码
读一下代码,我们看到strcmp()这个函数
这个函数是用于比较字符串的函数
int strcmp ( string $str1 , string $str2 )
参数 str1第一个字符串。str2第二个字符串。
如果 str1 小于 str2 返回 < 0;
如果 str1 大于 str2 返回 > 0;
如果两者相等,返回 0。
回看这段代码
我们可以看到 是以GET形式传递3个值,其中v1变量值 != v2变量值,if中的第二个判断条件用的是 ==,我们可以利用 “0x” == "0a"的判断结果为1,找出经过加密后的两个md5值以0开头,接下去以都相同的值,直到遇到的字母的两个字符串相等 v3 == flag
那么
方法一:
我们可以通过
PHP处理0e开头md5时hash字符串漏洞 详细请看
https://www.cnblogs.com/0yst3r-2046/p/10748412.html (md5 collision之记录一些MD5值)
构造 index.php?v1[]=QLTHNDT&v2[]=UTIPEZQ&v3[]=EEIZDOI
得到答案:
SKCTF{Php_1s_tH3_B3St_L4NgUag3}
方法二:
在PHP中
MD5是不能处理数组的,md5(数组)会返回null
所以即
md5(a[])==null,md5(b[])==null,md5(a[])=md5(b[])=null也可以满足代码中的条件
构造: index.php?v1[]=1&v2[]=2&v3[]=3
完成!
参考资料:
最新文章
- java编译错误 程序包javax.servlet不存在javax.servlet.*
- phpstorm的调试工具xdebug
- Python笔记本
- [shiro] Wildcard string cannot be null or empty. Make sure permission strings are properly formatted.
- android 安装应用程序apk安装不了
- .hpp文件
- NData BUG 记录
- 《Python核心编程》 第六章 序列 - 课后习题
- MySQL之最基本命令
- 将childNodes返回的数据转化维数组的方法
- backupMysql.sh
- JVM内部原理
- 谈谈spring的缓存
- [转]关于python中带下划线的变量和函数的意义
- nginx日志格式定义和nginx.conf配置模板说明
- (Zero XOR Subset)-less-线性基
- Msf的一些常用操作
- [archlinux][daily] 自建DNS服务器 / 建立本地DNS cache / 使用dnsmasq加速上网
- C#中的String类2
- Perl语言入门