【网安小白成长之路】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.mfbz.cn/a/572604.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot实现实验室管理系统项目【项目源码+论文说明】

基于springboot实现实验室管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了实验室管理系统的开发全过程。通过分析实验室管理系统管理的不足&#xff0c;创建了一个计算机管理实验室管理系统的方案…

使用Hypothesis生成测试数据

Hypothesis是Python的一个高级测试库。它允许编写测试用例时参数化&#xff0c;然后生成使测试失败的简单易懂的测试数据。可以用更少的工作在代码中发现更多的bug。 安装 pip install hypothesis如何设计测试数据 通过介绍也许你还不了解它是干嘛的&#xff0c;没关系&…

Redis面试题三(集群)

目录 1.Redis 集群搭建有几种模式 2.Redis 主从复制的实现 全量同步 增量同步 3.Redis 的主从同步策略 1. 全量同步&#xff08;Full Resynchronization&#xff09; 2. 增量同步&#xff08;Incremental Replication&#xff09; 4.Redis一致性hash 基本原理 节点动态…

使用shared lib将各个构建工具集成到一起

共享库代码 package devopsdef Build(buildType, buildShell){def buildTools ["mvn": "MVN", "ant": "ANT", "gradle": "GRADLE"]println("当前buildType是${buildType}")buildHome tool buildTool…

记内网http洪水攻击,导致网页无法访问一事

事由 最近两日&#xff0c;部分同事在访问税纪云平台时&#xff0c;登录跳转页面频繁转圈、要么就是出现无法连接的错误提示。 无法访问此页面 已重置连接。 请尝试: 检查连接 检查代理和防火墙 运行 Windows 网络诊断经过以下几方面的排查&#xff0c;无果。 后续通过检查…

【C++】从零开始认识泛型编程 — 模版

送给大家一句话&#xff1a; 尽管眼下十分艰难&#xff0c;可日后这段经历说不定就会开花结果。总有一天我们都会成为别人的回忆&#xff0c;所以尽力让它美好吧。 – 岩井俊二 &#xff3c;&#xff3c;\ ⱶ˝୧(๑ ⁼̴̀ᐜ⁼̴́๑)૭兯 //&#xff0f;&#xff0f; &#…

pycharm安装AI写代码插件

在IDE安装特慢&#xff08;可能找不到插件&#xff09; 去官网搜一下 对应安装包 下载zip在IDE解压 插件--已安装齿轮图标--从磁盘里安装 选择下载的插件 应用 --重启OK

3gp转MP4怎么转?简单的3个方法~

3gp最初是由第三代合作伙伴计划&#xff08;3rd Generation Partnership Project&#xff09;设计的&#xff0c;旨在满足移动设备对高效传输音频和视频的需求。它的起源可以追溯到20世纪初&#xff0c;当时移动通信技术的飞速发展使得人们对更加高效的多媒体文件格式有了迫切需…

几种免费SSL证书申请方式

目录 DV单域名免费证书的获取渠道&#xff1a; DV多域名免费证书获取渠道&#xff1a; DV通配符免费证书获取渠道&#xff1a; 随着现在网络安全意识的逐渐提升&#xff0c;越来越多的网站都在相继配对部署SSL证书&#xff0c;用以实现https访问。 大家都知道SSL证书好&…

【linux】基础IO(软硬链接)

上一节我们已经搞懂了已经被打开的文件&#xff0c;还有没有被打开的文件都是怎样被管理起来的&#xff0c;同样&#xff0c;路径的重要性也不言而喻&#xff0c;是确定文件在那个分区&#xff0c;进而可以解析到目标文件与目录内容的关系&#xff0c;从而找到inode&#xff0c…

微带线设计细节的模拟仿真分析

微带线设计在很多PCB设计场景中被应用&#xff0c;但是&#xff0c;有些工程师往往并不注重设计细节&#xff0c;导致最后的设计指标与预期相差甚远&#xff0c;比如设计中&#xff0c;会将丝印、散热金属等放在走线的上方&#xff0c;设计检查时会有人产生质疑&#xff0c;至于…

3DTiles生产流程与规范

一篇19年整理的比较老的笔记了。更多精彩内容尽在数字孪生平台。 瓦片切分 标准的四叉树切分对于均匀分布的地理数据切片非常有效&#xff0c;但是这样均等的切分不适用于随机分布、不均匀分布的地理数据&#xff0c;当地理数据稀疏分布的时候&#xff0c;均等的四叉树就不再高…

java-spring-mybatis -学习第一天-基础知识讲解

目录 前置条件(创建一个项目) Mybatis 定义 可能出现的问题 这边如果连接不上数据库 ​编辑 Dao接口设计 Mybatis流程 创建实体类 User 和其属性 创建Mapper的接口类 测试类测试 实例数据库数据的更新 实例数据库数值的删除 最重要的是有一个原始的数据库 -我这边…

使用 vllm 本地部署 cohere 的 command-r

使用 vllm 本地部署 cohere 的 command-r 0. 引言1. 安装 vllm2. 本地部署 cohere 的 command-r3. 使用 cohere 的 command-r 0. 引言 此文章主要介绍使用 使用 vllm 本地部署 cohere 的 command-r。 1. 安装 vllm 创建虚拟环境&#xff0c; conda create -n myvllm python…

Oracle Linux 8.8 一键安装 Oracle 11GR2 RAC(231017)

前言 Oracle 一键安装脚本&#xff0c;演示 Oracle Linux 8.8 一键安装 Oracle 11GR2 RAC&#xff08;231017&#xff09;过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 ORALCE PSU/OJVM 等补丁自动安装&#xff09; ⭐️ 脚本下载地址&…

kafka大数据采集技术实验(未完待续)

Kafka环境搭建 下载地址&#xff1a;https://link.zhihu.com/?targethttps%3A//kafka.apache.org/downloads解压启动zookeeper bin/zookeeper-server-start.sh config/zookeeper.properties需要注意的是 : " c o n f i g / z o o k e e p e r . p r o p e r t i e s &q…

维态思(上海)环保科技有限公司 | 2024全国水科技大会暨技术装备成果展览会

嘉宾简介 胡建龙 维态思&#xff08;上海&#xff09;环保科技有限公司 总经理 报告题目&#xff1a;微生态滤床 植物工厂——小城镇生活污水生态净化及零排放案例分享 国家注册设备工程师&#xff08;给排水&#xff09;、上海市&#xff08;合作交流&#xff09;五四青年…

BUUCTF---misc---[ACTF新生赛2020]outguess

1、下载附件&#xff0c;解压之后得到下面信息 2、查看图片属性&#xff0c;发现有个核心价值观编码&#xff1b;解码为abc 3、flag.txt提示 4、结合题目&#xff0c;这是一个outguess隐写 5、用kali先下载安装隐写库 6、使用命令-k(密钥)&#xff1b;-r(将图片里面的隐写信息…

InstantMesh:利用稀疏视图大规模重建模型从单张图像高效生成3D网格

作者&#xff1a;Jiale Xu&#xff0c;Weihao Cheng&#xff0c;Yiming Gao等 编译&#xff1a;东岸因为一点人工一点智能 InstantMesh&#xff1a;利用稀疏视图大规模重建模型从单张图像高效生成3D网格在这项工作中&#xff0c;我们提出了InstantMesh&#xff0c;一个开源的…

免费在英伟达官网使用多个开源AI大模型

英伟达官网能体验到多个聊天AI和图片生成AI&#xff0c;不废话直接上链接 AI开源大模型&#xff08;https://build.nvidia.com/explore/discover?api-keytrue&#xff09; 开源的AI大模型有meta的llama3-8b和llama3-70b、snowflake的arctic、microsoft的phi-3-mini、mistral…