当前位置: 首页 > article >正文

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.kler.cn/a/152299.html

相关文章:

  • TCP传输的三次握手四次挥手策略
  • spring框架的事务传播级别经典篇
  • Mysql锁
  • Panalog 日志审计系统 前台RCE漏洞复现
  • MySQL三大日志详细总结(redo log undo log binlog)
  • Linux信号超详细剖析
  • Linux命令--根据端口号查看进程号(PID)
  • AKConv:具有任意采样形状和任意数目参数的卷积核
  • 编译企业微信会话内容存档PHP版SDK扩展
  • 【超全】C++速查手册:面向对象与继承多态
  • HarmonyOS4.0 ArkUI组件
  • 【软件测试】白盒测试和黑盒测试
  • 从零开始部署一个网站详细图文教程——腾讯云的服务器、SSL证书,阿里云的域名,七牛云的对象存储、CDN等
  • 【JavaSE】集合(学习笔记)
  • Redis的高可用模式
  • 11.30固定成本,完全竞争市场,无差异曲线,帕累托最优
  • 上门服务系统|东郊到家软件提供高效服务的科技支柱
  • Java基本数据类型
  • 测试相关-面试高频
  • 【Web】UUCTF 2022 新生赛 个人复现