知识点

常用的备份文件后缀有 .bak, .swp

bak是备份文件的扩展名,现在很多软件都会创建备份文件,bak文件是各类软件产生的备份文件。打开bak文件的方法有简单,只需要知道它的生成软件,然后将后缀名改成生成格式的默认软件就可以了。一般把.bak文件直接重命名替换成该文件的格式就可以恢复此文件并正常打开了,如当cad 文件被误删或无法打开时你只需要把bak文件的后缀名改为dwg就可以恢复了,Office文件也是一样。但如果不知道bak文件什么程序产生的,可以利 用WINHEX按二进制文件打开,分析文件头格式,判断是什么类型文件。

两变量值不相等,md5计算散列值后相等的绕过

==的绕过

PHP中==是判断值是否相等,若两个变量的类型不相等,则会转化为相同类型后再进行比较。PHP在处理哈希字符串的时候,它把每一个以0e开头并且后面字符均为纯数字的哈希值都解析为0。常见的如下:

在md5加密后以0E开头

QNKCDZO
    240610708
    s878926199a
    s155964671a

以下串在sha1加密后以0E开头,并且后面均为纯数字

aaroZmOk
    aaK1STfY

payload: /?a=QNKCDZO&b=240610708

<?phpif($_GET['a'] !== $_GET['b']){if(md5($_GET['a']) == md5($_GET['b'])){echo "flag";}}
?>

  ===的绕过

===会比较类型,这个时候可以用到PHP中md5()函数无法处理数组(会返回NULL)来实现绕过。

payload: /?a[]=1&b[]=2 (上面==的例子也可以用数组绕过)

<?phpif($_GET['a'] !== $_GET['b']){if(md5($_GET['a']) === md5($_GET['b'])){echo "flag";}}
?>

MD5碰撞

 if ((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])) {echo `$cmd`;} else {echo ("md5 is funny ~");}

这里和上面不同之处在于有一个强制类型转化,若传入数组转化后的结果都是字符串Array。这里需要用到的是MD5碰撞,也就是不同字符串但是MD5后值相同的情况。下面的任意两组字符串内容不同,但md5结果相同

$s1 = "%af%13%76%70%82%a0%a6%58%cb%3e%23%38%c4%c6%db%8b%60%2c%bb%90%68%a0%2d%e9%47%aa%78%49%6e%0a%c0%c0%31%d3%fb%cb%82%25%92%0d%cf%61%67%64%e8%cd%7d%47%ba%0e%5d%1b%9c%1c%5c%cd%07%2d%f7%a8%2d%1d%bc%5e%2c%06%46%3a%0f%2d%4b%e9%20%1d%29%66%a4%e1%8b%7d%0c%f5%ef%97%b6%ee%48%dd%0e%09%aa%e5%4d%6a%5d%6d%75%77%72%cf%47%16%a2%06%72%71%c9%a1%8f%00%f6%9d%ee%54%27%71%be%c8%c3%8f%93%e3%52%73%73%53%a0%5f%69%ef%c3%3b%ea%ee%70%71%ae%2a%21%c8%44%d7%22%87%9f%be%79%6d%c4%61%a4%08%57%02%82%2a%ef%36%95%da%ee%13%bc%fb%7e%a3%59%45%ef%25%67%3c%e0%27%69%2b%95%77%b8%cd%dc%4f%de%73%24%e8%ab%66%74%d2%8c%68%06%80%0c%dd%74%ae%31%05%d1%15%7d%c4%5e%bc%0b%0f%21%23%a4%96%7c%17%12%d1%2b%b3%10%b7%37%60%68%d7%cb%35%5a%54%97%08%0d%54%78%49%d0%93%c3%b3%fd%1f%0b%35%11%9d%96%1d%ba%64%e0%86%ad%ef%52%98%2d%84%12%77%bb%ab%e8%64%da%a3%65%55%5d%d5%76%55%57%46%6c%89%c9%df%b2%3c%85%97%1e%f6%38%66%c9%17%22%e7%ea%c9%f5%d2%e0%14%d8%35%4f%0a%5c%34%d3%73%a5%98%f7%66%72%aa%43%e3%bd%a2%cd%62%fd%69%1d%34%30%57%52%ab%41%b1%91%65%f2%30%7f%cf%c6%a1%8c%fb%dc%c4%8f%61%a5%93%40%1a%13%d1%09%c5%e0%f7%87%5f%48%e7%d7%b3%62%04%a7%c4%cb%fd%f4%ff%cf%3b%74%28%1c%96%8e%09%73%3a%9b%a6%2f%ed%b7%99%d5%b9%05%39%95%ab"
$s2 = "%af%13%76%70%82%a0%a6%58%cb%3e%23%38%c4%c6%db%8b%60%2c%bb%90%68%a0%2d%e9%47%aa%78%49%6e%0a%c0%c0%31%d3%fb%cb%82%25%92%0d%cf%61%67%64%e8%cd%7d%47%ba%0e%5d%1b%9c%1c%5c%cd%07%2d%f7%a8%2d%1d%bc%5e%2c%06%46%3a%0f%2d%4b%e9%20%1d%29%66%a4%e1%8b%7d%0c%f5%ef%97%b6%ee%48%dd%0e%09%aa%e5%4d%6a%5d%6d%75%77%72%cf%47%16%a2%06%72%71%c9%a1%8f%00%f6%9d%ee%54%27%71%be%c8%c3%8f%93%e3%52%73%73%53%a0%5f%69%ef%c3%3b%ea%ee%70%71%ae%2a%21%c8%44%d7%22%87%9f%be%79%6d%c4%61%a4%08%57%02%82%2a%ef%36%95%da%ee%13%bc%fb%7e%a3%59%45%ef%25%67%3c%e0%27%69%2b%95%77%b8%cd%dc%4f%de%73%24%e8%ab%66%74%d2%8c%68%06%80%0c%dd%74%ae%31%05%d1%15%7d%c4%5e%bc%0b%0f%21%23%a4%96%7c%17%12%d1%2b%b3%10%b7%37%60%68%d7%cb%35%5a%54%97%08%0d%54%78%49%d0%93%c3%b3%fd%1f%0b%35%11%9d%96%1d%ba%64%e0%86%ad%ef%52%98%2d%84%12%77%bb%ab%e8%64%da%a3%65%55%5d%d5%76%55%57%46%6c%89%c9%5f%b2%3c%85%97%1e%f6%38%66%c9%17%22%e7%ea%c9%f5%d2%e0%14%d8%35%4f%0a%5c%34%d3%f3%a5%98%f7%66%72%aa%43%e3%bd%a2%cd%62%fd%e9%1d%34%30%57%52%ab%41%b1%91%65%f2%30%7f%cf%c6%a1%8c%fb%dc%c4%8f%61%a5%13%40%1a%13%d1%09%c5%e0%f7%87%5f%48%e7%d7%b3%62%04%a7%c4%cb%fd%f4%ff%cf%3b%74%a8%1b%96%8e%09%73%3a%9b%a6%2f%ed%b7%99%d5%39%05%39%95%ab"
$s3 = "%af%13%76%70%82%a0%a6%58%cb%3e%23%38%c4%c6%db%8b%60%2c%bb%90%68%a0%2d%e9%47%aa%78%49%6e%0a%c0%c0%31%d3%fb%cb%82%25%92%0d%cf%61%67%64%e8%cd%7d%47%ba%0e%5d%1b%9c%1c%5c%cd%07%2d%f7%a8%2d%1d%bc%5e%2c%06%46%3a%0f%2d%4b%e9%20%1d%29%66%a4%e1%8b%7d%0c%f5%ef%97%b6%ee%48%dd%0e%09%aa%e5%4d%6a%5d%6d%75%77%72%cf%47%16%a2%06%72%71%c9%a1%8f%00%f6%9d%ee%54%27%71%be%c8%c3%8f%93%e3%52%73%73%53%a0%5f%69%ef%c3%3b%ea%ee%70%71%ae%2a%21%c8%44%d7%22%87%9f%be%79%ed%c4%61%a4%08%57%02%82%2a%ef%36%95%da%ee%13%bc%fb%7e%a3%59%45%ef%25%67%3c%e0%a7%69%2b%95%77%b8%cd%dc%4f%de%73%24%e8%ab%e6%74%d2%8c%68%06%80%0c%dd%74%ae%31%05%d1%15%7d%c4%5e%bc%0b%0f%21%23%a4%16%7c%17%12%d1%2b%b3%10%b7%37%60%68%d7%cb%35%5a%54%97%08%0d%54%78%49%d0%93%c3%33%fd%1f%0b%35%11%9d%96%1d%ba%64%e0%86%ad%6f%52%98%2d%84%12%77%bb%ab%e8%64%da%a3%65%55%5d%d5%76%55%57%46%6c%89%c9%df%b2%3c%85%97%1e%f6%38%66%c9%17%22%e7%ea%c9%f5%d2%e0%14%d8%35%4f%0a%5c%34%d3%73%a5%98%f7%66%72%aa%43%e3%bd%a2%cd%62%fd%69%1d%34%30%57%52%ab%41%b1%91%65%f2%30%7f%cf%c6%a1%8c%fb%dc%c4%8f%61%a5%93%40%1a%13%d1%09%c5%e0%f7%87%5f%48%e7%d7%b3%62%04%a7%c4%cb%fd%f4%ff%cf%3b%74%28%1c%96%8e%09%73%3a%9b%a6%2f%ed%b7%99%d5%b9%05%39%95%ab"

题目

打开链接只有一行字符串

d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427e

扫描网站目录,用御剑扫不出来,用dirsearch扫描后台目录

访问114.67.175.224:12452/index.php.bak

提示下载文件index.php.bak,删除.bak后缀,打开看源码

读源码得出

  • 参数为kkeyey1,kkeyey2
  • 考虑md5绕过

要key1和key2加密后的md5值相等,但是key1和key2不相等,想到md5绕过,两种方法:

方法一、传md5值是0e开头的字符串
构造url:?key1=QNKCDZO&key2=s878926199a,页面并没有弹出flag
正确的payload:?kkeyey1=QNKCDZO&kkeyey2=s878926199a

方法二、传数组,md5不支持数组加密,所以结果为0

用kkeyey而不用key的原因:
$str = str_replace('key','',$str);即当我们传入的参数带有key就会被替换为空,所以这里双写kkeyey来绕过,这样kkey ey即使key替换成空了一头一尾拼起来还是key

【CTF bugku 备份是个好习惯】关于.bak备份文件,md5绕过相关推荐

  1. BUGKU 备份是一个好习惯

    BUGKU 备份是一个好习惯 题目描述有备份,可以用dirsearch扫描后台或者直接猜备份是index.php.bak 得到备份php代码进行分析 $_SERVER["REQUEST_UR ...

  2. ctf web 备份是个好习惯

    题目: 打开网址出现: 看着像是两段重复的md5摘要,用解码工具解码,得到: 看出似乎是对空字符生成了md5码并输出,回头看题目描述:备份是个好习惯,猜测是查看备份文件 尝试输入网址 http://1 ...

  3. CTF BugKu平台——Crypto篇刷题记录(后续更新)

    CTF BugKu平台--Crypto篇 前言 抄错的字符: /.- 聪明的小羊: ok: [+-<>]: 把猪困在猪圈里: 你喜欢下棋吗: 小山丘的秘密: EN-气泡: 你以为是md5吗 ...

  4. [bugku]web后面的部分 【脚本,正则 md5 】(疯狂补题qaq) 重点是搞会了 而不是写博客 m...

    -------不动脑子的我仿佛一个筛子--------- 索引 (自己查了搞出来和最后看了题解还是不一样的) 当然这些可能都是套路最后就没什么意思了..... 以及在"前女友"后面 ...

  5. 总结ctf中 MD5 绕过的一些思路

    总结ctf中 MD5 绕过的一些思路 1. 常规的0e绕过 2. 数组绕过 3. 强类型绕过 4. \$a==md5($a) 5. md5 与SQL注入 \$a !== $b && m ...

  6. CTF:PHP MD5绕过和序列化漏洞

    CTF:PHP MD5绕过和序列化漏洞 作者:高玉涵 博客:blog.csdn.net/cg_i 时间:2021.6.25 9:51 题目复现Docker环境: https://github.com/ ...

  7. bugku听说备份是个好习惯writeup

    题目地址:http://120.24.86.145:8002/web16/ 备份文件源码泄漏使用 @王一航 的脚本爆得: 脚本下载地址:https://git.coding.net/yihangwan ...

  8. BugKuCTF WEB 备份是个好习惯

    http://123.206.87.240:8002/web16/ 题解: MD5编码 d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998 ...

  9. 【CTF bugku 秋名山车神】关于会话脚本、session、正则表达式

    题目描述 题目链接 多刷新几遍,发现一个传参变量value,下边开始解题 解题思路 本题考验脚本能力,手动提交?哼,不存在的 题目多次刷新,出现要提交的参数:value 在这里插入图片描述 这么长的数 ...

最新文章

  1. 我的Android进阶之旅------Android嵌入图像InsetDrawable的用法
  2. android按钮点击事件(多种方法实现)
  3. Android轮播图实现图片圆角,Android开发实现图片圆角的方法
  4. 旋转数组—leetcode189
  5. Sql Server 2005 row_number()分页性能测试
  6. 手机里实现图片文字识别的实用方法
  7. 湘潭大学2022软件工程程序设计实践平时练习二C/C++
  8. 关于求职及面试的一些小技巧
  9. python换源之pip.conf
  10. win32API网址
  11. 运营_APP的常见盈利模式
  12. java获取时间的各种风格_各种获取时间的方法包含各类时间格式
  13. 中国芯片争论:买关键技术还是自己重新研发?
  14. python分析比赛_实战项目练习 ---- 【2018世界杯】用python分析夺冠球队
  15. CREO工程截面图如何一键去掉除截面后面多余的线
  16. 集群01之xshell链接liux 更改ip 网关及dns 主机名称
  17. Windows API一日一练(28-29)CreateFont SetRect SelectObject DeleteObject函数-用各种不同的字体并进行文字绘制并注意释放
  18. win32 注册表操作API
  19. ArcGis Engine 二次开发 icon图标(Icon素材和png素材)
  20. MySQL 免安装版配置方法

热门文章

  1. ML—AdaBoost(二)—MATLAB代码
  2. mac下使用appium连接夜神模拟器,包含百度云盘安装包链接
  3. 通过matlab的遗传算法工具求解规划问题
  4. 苹果音乐下载转换器:TunePat Apple Music Converter for Mac
  5. 苹果电脑忘记开机密码快速恢复的方法!
  6. unity3d双面材质_Unity中创建双面材质
  7. nginx日志报警|微信公众号推送预警消息|PHP+shell脚本实现nginx错误日志报警恶意访问报警,实时通知到微信公众号 | 小型网站nginx日志报警轻量级方案
  8. 百度分享代码_360网站关键词快排系统 - 百度快照不更新的原因分析
  9. JAVA—— Vue和Element
  10. P7354 「PMOI-1」骑士の棋