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

练习 21 Web [GXYCTF2019]BabySQli

SQL联合查询,注意有源码看源码,Base64以及32的区别,MD5碰撞

打开后有登录框,先随意登录尝试
只有输入admin才是返回wrong pass!
其他返回wrong user
所以用户名字段一定要输入admin

养成好习惯,先查看源码

看到一段被注释掉的

MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5
在这里插入图片描述
这里看上去像是Base编码但是不知道哪一种,查了一下,这个肯定是Base32

区分base64、32、16
Base64: 包含大写字母(A-Z),小写字母(a-z),数字(0-9)以及+/;

Base32: 而Base32中只有大写字母(A-Z)和数字234567;

Base16: 而Base16就是16进制,他的范围是数字(0-9),字母(ABCDEF);


顺便说一句,当ASCll用Base加密达不到所对应的位数的时候用=号补齐;

在这里附带由三种Base加密的:I love you!

Base64:SSBsb3ZlIHlvde+8gQ==

Base32:JEQGY33WMUQHS33V566IC===

Base16:49206c6f766520796f75efbc81


原文链接:https://blog.csdn.net/qq_40836885/article/details/83793972

解码三次,拿到一句select * from user where username = '$name'
在这里插入图片描述
这道题的注入点很明显在username
尝试1’or’1,返回 do not hack me
or这些肯定被过滤了

尝试联合查询注入
在这里插入图片描述在这里插入图片描述

替换’admin’的位置,可以发现其应该要在第二个字段上才正确
在这里插入图片描述
在这里插入图片描述

到这里,密码pw要怎么输入呢,注意本题给了源码,肯定要看的。。
在这里插入图片描述
我们知道登录后的页面是search.hp
先看看这个页面的代码
果不其然,当数组arr[1]为‘admin’,进行判断:
password被md5处理后的值和数组arr[2]中的值一致
输出flag
那么问题是这个password是我们输入的还是联合查询里面的?核对一下
回头看代码
在这里插入图片描述
可以看到数组arr是从$result中读取的,$result来自sql查询
同时password来自于POST传参
在这里插入图片描述
在这里插入图片描述
由练习4知道 md5(数组) 返回 NULL
所以payload我们可以写做name=ad' union select 1,'admin',NULL #&pw[]=111(中间不要乱加空格,比如在=符号的两边)
在这里插入图片描述

flag{d81fdb9a-4984-4d4a-9f9a-2784d03168cd}

http://www.lryc.cn/news/331537.html

相关文章:

  • 【并发编程】CountDownLatch
  • 2024-HW --->SSRF
  • 该主机与 Cloudera Manager Server 失去联系的时间过长。 该主机未与 Host Monitor 建立联系
  • 【BUG】No module named ‘dnf‘
  • Ubuntu pycharm配置Conda环境
  • 工作体验记录
  • YOLO火灾烟雾检测数据集:20000多张,yolo标注完整
  • 基于Spring Boot的餐厅点餐系统
  • tkinter控件教程使用说明(三)
  • Electron 打包自定义NSIS脚本为安装向导增加自定义页面增加输入框
  • Idea2023创建Servlet项目
  • Day57:WEB攻防-SSRF服务端请求Gopher伪协议无回显利用黑白盒挖掘业务功能点
  • 【Qt】使用Qt实现Web服务器(十):前端基础
  • 使用vuepress搭建个人的博客(一):基础构建
  • ArcGIS Pro导出布局时去除在线地图水印
  • 启动mysql
  • C++实现二叉搜索树的增删查改(非递归玩法)
  • 软件架构复用
  • 【初阶数据结构】——leetcode:160. 相交链表
  • 【Go】goroutine并发常见的变量覆盖案例
  • 基于SSM+Jsp+Mysql的快递管理系统
  • 如何动态往Spring容器注册/移除bean?
  • C语言交换二进制位的奇数偶数位
  • 爬虫实战三、PyCharm搭建Scrapy开发调试环境
  • 2012年认证杯SPSSPRO杯数学建模C题(第一阶段)碎片化趋势下的奥运会商业模式全过程文档及程序
  • 【Next.js】连接 MongoDB 实现基本的接口
  • 中值滤波算法与SSE2指令集并行优化
  • 2012年认证杯SPSSPRO杯数学建模B题(第二阶段)节能减排全过程文档及程序
  • NOI - OpenJudge - 2.5基本算法之搜索 - 2753:走迷宫 - 超级无敌详细题解(含多个不同算法AC代码)
  • 什么是Redis数据一致性?如何解决?