【网安小白成长之路】9.sql注入操作

🐮博主syst1m 带你 acquire knowledge!

✨博客首页——syst1m的博客💘

🔞 《网安小白成长之路(我要变成大佬😎!!)》真实小白学习历程,手把手带你一起从入门到入狱🚭

😘《CTF专栏》超级详细的解析,宝宝级教学让你从蹒跚学步到健步如飞🙈

😎《大数据专栏》大数据从0到秃头👽,从分析到决策,无所不能❕

🔥 《python面向对象(人狗大战)》突破百万的阅读量,上过各种各样的官方大型专栏,python面向对象必学之一!🐽

😋《性格荷官在线送书活动》不定期会存在有送书活动哦,大部分肯定是网安内容的书籍啦宝子们!💘

🎉希望本文能够给读者带来帮助,更好地理解这个问题或解决你的困惑🐾

文章目录

  • 前言
  • 一、sql注入操作
    • 1.sql盲注
      • 1-1.什么是盲注
      • 1-2.时间型盲注
      • 1-3.布尔型盲注
    • 2.http头注入
      • 2-1.什么是http头注入
      • 2-2.http头注入实操
    • 3.cookies注入
      • 3-1.什么是cookies注入
      • 3-2.cookies注入实操
    • 4.宽字节注入
      • 4-1.什么是宽字节注入
      • 4-2.宽字节注入实操
  • 二、总结

前言

学习SQL注入至关重要,它不仅是网络安全领域的关键一环,更是提升技术能力的有效途径。掌握SQL注入技术,可增强对数据库安全的防范意识,为数据安全保驾护航,为职业发展增添竞争力。

一、sql注入操作

1.sql盲注

1-1.什么是盲注

  • 当攻击者利用sql注入漏洞进行攻击时,有些时候web应用程序会返回后端执行sql查询返回的错误信息,这些信息能够帮助我们进行sql注入;但更多情况是,数据库没有输出到页面,这时攻击者会询问一些列是或否问题,或基于时间判断的问题,强制从数据库获取信息
  • Blind SQL(盲注)是注入的一种,向数据库发送true或false这样的问题,根据应程序返回的信息判断结果,出现这种方式的攻击是因为配置了只显示常规错误,并不显示sql语句,这种方式并没有解决存在sql注入的问题
  • 盲注分为 布尔型盲注 和 时间型盲注,其中用的最多是时间型盲注

1-2.时间型盲注

常用的判断语

  • ’ and if(1=0,1,sleep(10)) --+
  • " and if(1=0,1,sleep(10)) --+
  • ) and if(1=0,1,sleep(10)) --+
  • ') and if(1=0,1,sleep(10)) --+
  • ") and if(1=0,1,sleep(10)) --+

它们之间也就闭合方式不同

利用if(条件),函数, 当条件为真,返回1,否则0

sqli-labs 里面的 9,10 就是时间型盲注

我们打开Less-9

在我们知道数据库名称为 security 时,直接判断数据库第一个字符是否为 s

http://localhost/sqli-labs/Less-9/?id=1' and if(ascii(substr(database(),1,1))=115,sleep(3),1) --+databases获取数据库名称 substr截取字符串,从1开始截取1个 ascii转换成ascii编码判断为真执行sleep(5)判断为假就直接什么都不做

我们可以按 F12 打开检查,在点击网络,再在url中输入,可以发现他要3秒后才开始响应

在这里插入图片描述

当我们不知道数据库名字呢?使用二分法,先判断是否大于90,是的话再判断是否120,否的话就小一点,以此类推就可以知道正确值为115

但是在实际中,很多常用函数是会被过滤掉,需要绕过

1-3.布尔型盲注

布尔型盲注和时间型盲注是差不多的

我们打开Less=9

可以判断字符串的长度或判断字符

成功就会显示 You are in…

判断数据库名称是否为8位数

http://localhost/sqli-labs/Less-8/?id=1' and length(database())=8 --+

在这里插入图片描述

判断数据库名称第一位是否是 s

http://localhost/sqli-labs/Less-8/?id=1' and ascii(substr(database(),1,1))=115 --+

在这里插入图片描述

2.http头注入

2-1.什么是http头注入

在如今很多网站都会防止漏洞的发生,在sql注入中,会对用户提交的参数进行过滤。虽然会过滤掉用户直接提交的参数,但是对于http头中的内容可能没有进行过滤,例如http头中的User-Agent、Referer、Cookies等

2-2.http头注入实操

我们进入Less-18

我们正常登陆一下查看返回信息

在这里插入图片描述

我们想要进行http头注入需要抓包

我们打开burp,再登陆时抓包

可以看到它们的User Agent时一样的

在这里插入图片描述

判断是否有注入点

发送到重放器(Repeater),再User-Agent最后面加上单引号,点击发送

在这里插入图片描述

提示这里错了说明有注入点

使用重放器(Repeater)进行渗透

updateexml(xml_document,xpath_string,new_value)

  • 参数一:XML文档对象名称

  • 参数二:XPath字符串

  • 参数三:替换查找到符合条件的数据

获取数据库名称

' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or'1'='1
0x7e是十六进制的波浪号~

在这里插入图片描述

3.cookies注入

3-1.什么是cookies注入

cookies是一种由服务器发送到用户浏览器并保存在用户计算机上的小型文本文件,用于识别用户身份、跟踪用户活动、保存用户设置等。它在网站会话管理、个性化体验等方面发挥着重要作用。cookies典型应用是判断用户是否已经登陆网站,是否下次登陆时保留登陆信息,或类似购物车这种的,选中的商品信息都加入cookies中以便付款时提取信息

我们可以在开发者工具里面的控制台输入 document.cookie 来查看cookie

在这里插入图片描述

3-2.cookies注入实操

我们进入Less-20

登陆Dumb这个账号 密码Dumb

可以在控制台中看到 cookie 为 uname=Dumb

在这里插入图片描述

cookies注入需要使用burp抓包,开启拦截之后刷新页面

在这里插入图片描述

发送到重放器(Repeater),加上 反斜杠 查看是否有注入点

在这里插入图片描述

现在我们就可以开始获取数据了

获取数据库版本

' and updatexml(1,concat(0x7e,(select version()),0x7e),1) or'1'='1

在这里插入图片描述

4.宽字节注入

4-1.什么是宽字节注入

宽字节概念

  • 单字节字符集,所有的字符都使用一个字节来表示
  • 多字节字符集,再在多字节字符集中,一部分字符用多个字节来表示,另一部分用字符用单个来表示(可能没有)

宽字节注入是利用mysql的一个特性,使用GBK编码的时候,会认为两个字符是一个汉字

php中编码为GBK,函数执行添加的是ASCII编码,mysql默认字符是GBK

php的宽字节

addslashes()函数,在预定字符前添加反斜杠,单引号 ’ 双引号 " 反斜杠 \ NULL

<?php$abc=addslashes('hao "are" you');echo($abc); // hao \"are\" you
?>

宽字节注入原理

%DF’ 会被PHP当中的 addslashes 函数转义为 " DF\ ’ “,\在URL里是“%5C”,那么也就是说,“ %DF’ "会 被转成“%DF%5C%27,倘若网站的字符集是GBK,MYSQL使用的编码也是GBK的话,就会认为“%DF%5C%27”是一个宽字符。

数据库使用的是GBK编码,PHP编码为UTF8就可能出现宽字节注入,原因是为了防止发生SQL注入,会调用上面所介绍的几种函数,将单引号或双引号进行转义操作,在单或双引号前加上反斜杠 \ 。当数据库使用的是宽字节编码会将两个连在一起的字符会被当做是-一个汉字,而在PHP使用的UF8编码则认为是两个独立的字符。

4-2.宽字节注入实操

我们进入Less-33

简而言之差不多就是将之前的 ’ 换成了 %df%27

http://localhost/sqli-labs/Less-33/?id=0%df%27 union select 1,2,3 --+

在这里插入图片描述

二、总结

今天的这期内容主要是sql盲注、http头注入、cookies注入、跨字节注入,主要是围绕sql-labs靶场进行学习,虽然文字有些偏多,但是还是很好理解的,如果你还有什么问题的话,记得私信我哦!

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

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

相关文章

SpringBoot整合七牛云实现图片的上传管理

唠嗑部分 各位小伙伴大家好&#xff0c;我是全栈小白&#xff0c;今天我们来分享一下SpringBoot如何整合七牛云存储实现图片的上传与存储 首先我们来说说图片存储&#xff0c;在项目中图片几乎是必不可少的&#xff0c;那么大家会选择怎样存储呢&#xff0c;当然有几种方案 …

Science Robotics 美国斯坦福大学研制了外行星洞穴探测机器人

月球和火星上的悬崖、洞穴和熔岩管已被确定为具有地质和天体生物学研究理想地点。由于其隔绝特性&#xff0c;这些洞穴提供了相对稳定的条件&#xff0c;可以促进矿物质沉淀和微生物生长。在火星上&#xff0c;这些古老的地下环境与火星表面可能适合居住时几乎没有变化&#xf…

JSP合同信息管理系统

毕业设计&#xff08;论文&#xff09; 题 目&#xff1a; JSP合同信息管理系统 学 校&#xff1a; 专 业&#xff1a; 年 级&#xff1a; 姓 名…

Day16-Java进阶-线程通信线程生命周期线程池单例设计模式

1. 线程通信 1.1 线程通信介绍 1.2 两条线程通信 package com.itheima.correspondence;public class CorrespondenceDemo1 {/*两条线程通信*/public static void main(String[] args) {Printer1 p new Printer1();new Thread(new Runnable() {Overridepublic void run() {syn…

【亲测有用】idea2024.1中前进后退按钮图标添加

idea更新后&#xff0c;前进后退按钮消失了&#xff0c;现在说下怎么设置 具体操作如下&#xff1a; 1、选择 File / Settings(windows版)&#xff0c;或者Preferences(mac版) 2、打开 Appearance & Behavior 并选择 Menus and Toolbars 3、选择右侧的 “Main toolbar lef…

Python中pyside2出现的pyside2 qt platform plugin could be in错误及其解决方法

系统平台&#xff1a;Win10 64bit python版本&#xff1a; python 3.8 使用pip install pyside2安装 pyside2 这是找不到QT平台的插件&#xff0c;这是环境变量QT_QPA_PLATFORM_PLUGIN_PATH出现错误 具体解决方法&#xff1a; 我们可以在每一段程序开始之前设定环境变量&…

虚幻引擎5 Gameplay框架(一)

GamePlay概论与打包和批处理脚本 GamePlay简介与创建项目 GamePlay框架&#xff1a;用于设计游戏规则&#xff0c;组织和管理游戏核心逻辑、规则以及交互的一套结构化体系。 Default Pawn Class&#xff1a;定义角色行为逻辑&#xff0c;接收玩家控制器的输入&#xff0c;一般…

【R语言】组合图:散点图+箱线图+平滑曲线图+柱状图

用算数运算符轻松组合不同的ggplot图&#xff0c;如图&#xff1a; 具体代码如下&#xff1a; install.packages("devtools")#安装devtools包 devtools::install_github("thomasp85/patchwork")#安装patchwork包 library(ggplot2) library(patchwork) #p1是…

[ACTF2020 新生赛]Upload--BUUCTF

题&#xff1a; 第一步&#xff1a;上传php文件&#xff0c;他提示&#xff0c;只能上传jpg、png、gif 第二步&#xff1a;使用bp抓上传jpg文件的包&#xff0c;在修改文件后缀名为phtml 修改前 修改后 第三步&#xff1a;进行放过&#xff0c;在访问浏览器 得到&#xff1a;U…

第07-4章 网络层详解

7.1 网络层协议 IP协议ARP&#xff08;地址解析协议&#xff09;RARP&#xff08;反向地址解析协议&#xff09;ICMP&#xff08;互联网控制消息协议&#xff09; 7.2 IP协议详解 7.2.1 IP协议功能 寻址和路由传递服务&#xff08;不可靠&#xff0c;尽最大努力&#xff0c…

线性代数基础1向量

1、向量是什么 1.1、向量的定义 在数学中&#xff0c;向量&#xff08;也称为欧几里得向量、几何向量、矢量&#xff09;&#xff0c;指具有大小和方向的量。它可以形象化地表示为带箭头的线段。箭头所指&#xff1a;代表向量的方向&#xff1b;线段长度&#xff1a;代表向量的…

Rust腐蚀服务器定制地图开服

Rust腐蚀服务器定制地图开服 大家好我是艾西一个做服务器租用的网络架构师。Rust腐蚀这个游戏有很多的插件mod作者&#xff0c;在地图制作这一块也是一样&#xff0c;有些好玩的地图可能大家在map网站找到了但是不知道怎么操作设置那么今天艾西给大家说下特定定制地图怎么弄。…

嬴图| ISO/IEC-GQL国际图语言标准发布,图技术开启新纪元

GQL作为继SQL之后的第二个数据库查询语言国际标准&#xff0c;近日正式发布。这标志着图技术开启新纪元——图时代即将到来&#xff01; 同时&#xff0c;这也预示着将有越来越多的组织采用“图”来解决各种复杂问题&#xff0c;更意味着SQL系统与负载将逐渐转向GQL&#xff0…

2024最新SSL证书在线申请系统源码 | 支持API接口 支持在线付费 二开优化版

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 2024最新SSL证书在线申请系统源码 | 支持API接口 支持在线付费 二开优化版 最新SSL证书在线申请系统源码 | 支持API接口 SSL证书保证网络安全的基本保障。向您介绍我们的在线生成SSL…

Ubuntu20.04安装 mysql8.0.32

检查删除原有的mysql(可以不做&#xff0c;自己记录) 1、 下载 MySQL :: Download MySQL Community Server (Archived Versions) wget https://cdn.mysql.com/archives/mysql-8.0/mysql-server_8.0.32-1ubuntu20.04_amd64.deb-bundle.tar 2、解压到指定目录下 tar xvf mysq…

GDPU Java 天码行空9

&#xff08;一&#xff09;实验目的 1、掌握JAVA中异常类型及其特点&#xff1b; 2、重点掌握异常的处理方法&#xff1b; 3、能创建自定义异常处理方法&#xff1b; 4、掌握文件操作方法。 &#xff08;二&#xff09;实验内容和步骤 1、try catch finally 如果catch里面有…

vue封装请求、合并js、合并多个js

vue封装请求、合并js、合并多个js 作为一个后端开发&#xff0c;写前端时发现&#xff0c;每次导入api接口都会有一堆代码&#xff0c;像下面这样&#xff1a; import {footprintList, footprintDelete} from /api/userApi.js import {addressList} from /api/userApi.js impor…

PHP定期给自己网站目录做个特征镜像供快速对比

效果图 上代码&#xff1a; <style> h1{font-size:24px;line-height:180%;font-weight:600;margin:1px 2px;color:#0180cf;} h2{font-size:20px;line-height:140%;font-weight:600;margin:2px 4px;color:green;} h3{font-size:16px;line-height:140%;font-weight:600;m…

如何把视频中的画面保存为图片?免费的工具不用白不用

在数字化时代&#xff0c;截取视频中的珍贵瞬间成为了人们创作、分享和保存回忆的重要方式。 那么&#xff0c;如何迅速捕捉视频中的精彩画面&#xff0c;留存美好瞬间呢&#xff1f;有人说直接截图就可以&#xff0c;如果直接截图就可以&#xff0c;小编就不用写这篇文章了&a…

《深入浅出.NET框架设计与实现》笔记2——C#源码从编写到执行的流程

中间语言&#xff08;Intermediate Language&#xff0c;IL&#xff09; C#编译器在编译时&#xff0c;会将源代码作为输入&#xff0c;并以中间语言形式输入出&#xff0c;该代码保存在*.exe文件中或*.dll文件中。 公共语言运行时&#xff08;CLR&#xff09; 可以将IL代码…