知识点

MD5拓展攻击

解题思路

打开网站后看到,什么都没有,尝试抓包分析

360截图17860604827894.PNG

Burp 抓包发现,Cookie有东西。先是把source=0改成source=1,得到源码。

、、、

$flag = "XXXXXXXXXXXXXXXXXXXXXXX";

$secret = "XXXXXXXXXXXXXXX"; // 密码未知,但是长度 已知15位

$username = $_POST["username"];

$password = $_POST["password"];

//想获取flag:

//1.需要知道usename === "admin"

//2.需要知道password != "admin"

//3.并且cookie的参数getmein=== md5(15位未知密 码.admin.$password)

if (!empty($_COOKIE["getmein"])) {

if (urldecode($username) === "admin" && urldecode($password) != "admin") {

if ($COOKIE["getmein"] === md5($secret . urldecode($username . $password))) {

echo "Congratulations! You are a registered user.\n";

die ("The flag is ". $flag);

}

else {

die ("Your cookies don't match up! STOP HACKING THIS SITE.");

}

}

else {

die ("You are not an admin! LEAVE.");

}

}

//这里给出了sample-hash = md5(15位未知密码."adminadmin") = 571580b26c65f306376d4f64e53cb5c7

setcookie("sample-hash", md5($secret . urldecode("admin" . "admin")), time() + (60 * 60 * 24 * 7));

if (empty($_COOKIE["source"])) {

setcookie("source", 0, time() + (60 * 60 * 24 * 7));

}

else {

if ($_COOKIE["source"] != 0) {

echo ""; // This source code is outputted here

}

}

所以我们这里就可以利用kali下的工具HashPump来直接构造MD5长度的拓展。

360截图17290429100125124.PNG

这里就以利用burp进行修改数据包,从而得到想要的数据包

添加getmein参数等于870cb8de7a5d442220d00ef95d71590d

post传参的值改为username=admin&password=admin%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%c8%00%00%00%00%00%00%00lll

放包后得到flag

CTF{cOOkieS_4nd_hAshIng_G0_w3LL_t0g3ther}

PHP实训笔记,【学习笔记19】实验吧 让我进去相关推荐

  1. 青软实训.Net学习笔记

    1.Console类:表示控制台应用程序的基本输入流.输出流和错误流.此类不能被继承. 2.装箱:值类型转换成引用类型  int i=123;  object o=(object)i;       拆 ...

  2. 青软实训.NET学习笔记(5)---泛型

    1.System.Collections.Generic命名空间---一个以集合为中心的新命名空间 2.拆箱必须回到合适的数据类型,如果尝试将数据拆箱为不正确的变量,将抛出InvaildCastExc ...

  3. 青软实训.NET学习笔记(2)

    1.Random()生成随机数. 2.通过构造函数只读(readonly)字段赋值. 3.采用ref传递参数,采用引用的方式,及被传入的和已传入的变量指向同一地址.由于采用引用方式,所以方法内ref参 ...

  4. 青软实训.Net学习笔记(3)--接口

    1.接口就是一组抽象成员的集合. 2.一个类(或者一个结构)可以支持任意数量的接口,因此也就支持了多种行为. 3.最佳实践:.NET接口多以大写字母"I"作为前缀. 4.接口不指定 ...

  5. 青软实训.NET学习笔记(6)---委托

    1.在.NET平台下,委托类型用来定义和响应应用程序中的回调.事实上,.NET委托类型是一个类型安全的对象,指向可以以后调用的其他方法.和传统的C++函数指针不同,.NET委托是内置支持多路广播和异步 ...

  6. 青软实训.NET学习笔记(4)--WinForm技术初接触

    1.以下代码表示的是一个最简单的Windows Forms应用程序.当Visual Studio 2010发现一个扩展了System.Windows.Forms.Form的类时,将尝试打开相关的GUI ...

  7. 校内实训第六天学习笔记

    通过使用https://www.tianqiapi.com/api/接口实现天气预报页面主要是在首页实现可以在搜索框里搜索显示其他城市的天气. 主要通过flex布局实现对界面的设置. 分版块进行设置. ...

  8. 百度飞桨2021李宏毅机器学习特训营学习笔记之回归及作业PM2.5预测

    百度飞桨2021李宏毅机器学习特训营学习笔记之回归及作业PM2.5预测 前言 回归 什么是回归(Regression)? 怎么做回归? 线性回归(Linear Regression) 训练集与验证集 ...

  9. 实训项目计算机基础知识实训报告,计算机应用基础(本)形考作业实训2学习实训报告.docx...

    <计算机应用基础(本)形考作业实训2学习实训报告.docx>由会员分享,提供在线免费全文阅读可下载,此文档格式为docx,更多相关<计算机应用基础(本)形考作业实训2学习实训报告.d ...

  10. 视频教程-深度学习30天系统实训-深度学习

    深度学习30天系统实训 计算机博士,专注于机器学习与计算机视觉领域,深度学习领域一线实战讲师.在图像识别领域有着丰富经验,实现过包括人脸识别,物体识别,关键点检测等多种应用的新算法. 参与多个国家级计 ...

最新文章

  1. React和vue的差异和相似地方
  2. java 中的 Annotation 注解学习笔记
  3. docker image存储路径_使用fluentd作为docker日志驱动收集日志
  4. piwik mysql_piwik流量统计系统搭建(apache2.4+piwik+mysql5.6+php5.6.14)
  5. 如何出色的研究 RGSS3 (三) 形式的调整的细节
  6. BugKuCTF WEB 计算器
  7. Java 蓝桥杯 阶乘计算
  8. cygwin不支持__malloc_hook
  9. 产品质量检测系统uml建模心得
  10. linux 混杂设备 miscdevice设备介绍
  11. 计算机维修与维护怎么学,做电脑维修需要学习哪些知识呢?
  12. android磁盘分区格式,转:磁盘分区表格式之android分区GPT
  13. 谈谈时间序列的平稳性
  14. css3图片淡出淡入怎么做,css3图像淡入淡出(css3 image fadein)
  15. Excel为图表指定横向坐标数据
  16. 比特大陆的“新筹码”:IPO失效后,押注算力芯片
  17. oracle日期转数值的函数,oracle数据库内置函数之数值函数、字符函数、日期函数、转换函数及其在查询语句中的运用...
  18. 【Unity】Post-process后处理之Grain
  19. web进销存源码-Java进销存ERP软件系统源码定制多仓库多门店 + 小程序 Saas多商户
  20. abp 打包部署到ubuntu_如何通过宝塔运维面板进行部署?

热门文章

  1. ubuntu ifconfig只有lo没有ens33的问题
  2. 你会用Java实现两个大数相加吗
  3. javaweb中报404错误
  4. 当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?
  5. 做简单的android 软件推荐,Android_适用于Android开发的简单聊天软件,适用于android 开发。是一个简 - phpStudy...
  6. 关于linux系统中无法识别某一命令问题的解决方案
  7. 简洁又快速地处理集合——Java8 Stream(下)
  8. Spring基础学习笔记-Bean的基础知识
  9. linux文件目录的操作
  10. Dos下命令运行带有包名的Java类