【网络安全实验室】SQL注入实战详情

如果额头终将刻上皱纹,你只能做到,不让皱纹刻在你的心上

1.最简单的SQL注入

查看源代码,登录名为admin

在这里插入图片描述

最简单的SQL注入,登录名写入一个常规的注入语句:

密码随便填,验证码填正确的,点击登录

得到我的座右铭(flag)

在这里插入图片描述

2.最简单的SQL注入(熟悉注入环境)

查看源代码,访问url:

在这里插入图片描述

构造页面并访问

返回正常

返回出错,说明存在SQL注入

在这里插入图片描述

判断字段数

页面返回正常,说明有三个字段

在这里插入图片描述

判断回显点

我们可以在如图所示位置进行查询

在这里插入图片描述

查询数据库名为mydbs

在这里插入图片描述

查询数据表为sae_user_sqli3

在这里插入图片描述

查询字段名为id,title,content

在这里插入图片描述

查询字段内容

得到

在这里插入图片描述

3.防注入

本关尝试使用宽字节注入,添加单引号会出现空白页,没有报错,使用

成功报错,找到注入点

在这里插入图片描述

构造语句

页面正常回显,说明or语句执行成功可以注入!

在这里插入图片描述

构造语句

得到

另外一种方法是像上一关一样操作,只是需要构造语句

在这里插入图片描述

确定字段长度:

确定显示位:

得到数据库:

在这里插入图片描述

得到列名:

在这里插入图片描述

得到字段:

在这里插入图片描述

4.到底能不能回显

经过测试,只有start参数有作用,num参数并没有作用。

构造payload:

查询数据库名:

在这里插入图片描述

查询数据表名:

在这里插入图片描述

查询列名:(由于分号被过滤了,只能将表名转换成16进制)

在这里插入图片描述

查询flag:

在这里插入图片描述

5.邂逅

加宽字节注入,因为无回显,所以用burp注入

构造payload:

查询注入点:

页面报错

在这里插入图片描述

查询列数:4列

在这里插入图片描述

查询显示位:3

在这里插入图片描述

查询数据库:mydbs

在这里插入图片描述

查询表名:article,pic

在这里插入图片描述

查询列名:id,picname,data,text

在这里插入图片描述

查询数据(flag):

在这里插入图片描述

将图片后缀改为

访问url:

得到flag

在这里插入图片描述

6.ErrorBased

本题考查mysql的报错注入

查询数据库名:mydbs

在这里插入图片描述

查询数据表名:log,motto,user

在这里插入图片描述

查询motto表的下的列名:id,username,motto

在这里插入图片描述

查询id字段的值:0,1,2,100000

在这里插入图片描述

查询username字段的值:admin,guest,test,#adf#ad@@#

在这里插入图片描述

查询motto字段的值:mymotto,happy everyday,nothing

在这里插入图片描述

对比两次注入的结果,发现username字段比motto字段多一个结果,这说明flag可能就在被隐藏的结果中

再次构造语句,直接查询第四个值,得到notfound! 根据提示flag不带key和#

在这里插入图片描述

7.盲注

本题使用延时盲注

判断当前数据库名长度为5,页面没有延时,说明数据库长度为5

判断库名第一个值为m,页面没有延时,说明数据库第一个值为m

以此类推,数据库名为mydbs

判断表名第一个表的第一个值为l,页面没有延时,说明第一个表的第一个值为l

以此类推,数据表名为log,motto,user

判断motto表中第一个字段的第一个值是i,页面没有延时,users表中第一个字段的第一个值是i

以此类推,数据表motto中的字段值为id,username,motto

判断motto表中第一个内容的第一个值为m,页面没有延时,motto表中第一个内容的第一个值为m

以此类推,得到flag

延时注入太慢了,sqlmap跑也比较慢

在这里插入图片描述

8.SQL注入通用防护

本题提示过滤了GET/POST,所以我们猜测是否可以进行cookie注入,使用burp抓包

在cookie处构造字段

回显正常

回显错误,说明此处存在数字型SQL注入

在这里插入图片描述

查询字段数目

最后得到字段数目是3。

查询显示位,得到显示位是2,3

查询数据库名,得到数据库名为mydbs

查询表名,得到在当前数据库中的表有sae_manager_sqli8,sae_user,sqli8

查询sae_manage_sqli8表中的字段,得到了id,username,password这3个字段

查询flag,IamFlagCookieInject!

在这里插入图片描述

9.据说哈希后的密码是不能产生注入的

查看关键源

"select * from 'user' where userid=".intval($_GET['userid'])." and password='".md5($_GET['pwd'], true) ."'"

对传入的userid使用了intval()函数转化为数字,同时将password使用md5()函数进行转化。这就是一个典型的MD5加密后的SQL注入。

其中最主要的就是md5()函数,当第二个参数为true时,会返回16字符的二进制格式。当为false的时候,返回的就是32字符十六进制数。默认的是false模式。具体的差别通过下面这个代码来看。

md5(‘123’) //202cb962ac59075b964b07152d234b70

md5(‘123’,true) // ,�b�Y[�K-#Kp

只要md5(str,true)之后的值是包含了’or’这样的字符串,那么sql语句就会变为select * from users where usrid=“XXX” and password=‘‘or’’。如此就可以绕过了。

提供一个字符:ffifdyop

md5后,276f722736c95d99e921722cf9ed621c

可以伪造成

select * from user where userid=‘1’ and pwd = '‘or’6É]™é!r,ùíb’

从而成功绕过,得到Flag:

payload:

在这里插入图片描述

本文poc、工具、源码加圈获取

1、本圈主要分享:攻防及SRC实战经验分享、代码审计漏洞详情及代码、最新漏洞详情及原创漏洞利用工具、免杀手法及工具代码、问题解答等。
2、圈主出身于深信服深蓝攻防实验室、新华三攻防实验室,连续5年多次获得国家级、省级、地市级、行业级护网攻击队前三名。
3、漏洞盒子总榜前五十名、补天总榜前五十名、去哪网SRC总榜前五十名。
4、获得50+CVE通用漏洞编号、100+CNVD通用漏洞证书。
5、CSDN、公众号、博客、先知社区、SecIN、FreeBuf粉丝量10000+。
6、前1-50名: 25¥,50-100名: 50¥,100-150名: 75¥,依次类推.....!

知识星球

img

纷传

img

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

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

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

相关文章

_使用CLion的Vcpkg安装SDL2,添加至CMakelists时报错,编译报错

语言:C20 编译器:gcc 14.2 摘要:初次使用Vcpkg添加SDL2,出现CMakelists找不到错误、编译缺失main错误、运行失败错误。 CMakelists缺失错误: 使用CLion的Vcpkg安装SDL2时,按照指示把对应代码添加至CMakel…

可解释性:走向透明与可信的人工智能

随着深度学习和机器学习技术的迅速发展,越来越多的行业和领域开始应用这些技术。然而,这些技术的“黑盒”特性也带来了不容忽视的挑战🎲。在许多任务中,尽管这些模型表现出色,取得了相当高的精度,但其决策过…

SQL Server导出和导入可选的数据库表和数据,以sql脚本形式

一、导出 1. 打开SQL Server Management Studio,在需要导出表的数据库上单击右键 → 任务 → 生成脚本 2. 在生成脚本的窗口中单击进入下一步 3. 如果只需要导出部分表,则选择第二项**“选择具体的数据库对象(Select specific database objects)”**&am…

Eclipse下载安装图文教程

一、下载Eclipse 1、打开 Eclipse官网 2、下载免安装版; 3、切换国内下载源 4、下载压缩包到本地; 5、下载完成后直接解压就可以使用了; 二、汉化 1、打开eclipse,点击 ‘Help’ → ‘Install new software…’ 2、点击A…

【开源免费】基于SpringBoot+Vue.JS音乐网站(JAVA毕业设计)

本文项目编号 T 109 ,文末自助获取源码 \color{red}{T109,文末自助获取源码} T109,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

Sonic:开源Go语言开发的高性能博客平台

Sonic:一个用Go语言开发的高性能博客平台 简介 Sonic,一个以其速度如声速般快速而命名的博客平台,是一个用Go语言开发的高性能博客系统。正如其名字所暗示的,Sonic旨在提供一个简单而强大的博客解决方案。这个项目受到了Halo项目…

Pygame Zero(pgzrun)详解(简介、使用方法、坐标系、目录结构、语法参数、安装、实例解释)

Pygame Zero(pgzrun)详解 (简介、使用方法、坐标系、目录结构、语法参数、安装、实例解释) 本文目录: 零、时光宝盒 一、Pygame Zero简介 二、Pygame Zero的编写游戏的一般流程 三、Pygame Zero 的坐标系 四、Py…

Java jni调用nnom rnn-denoise 降噪

介绍&#xff1a;https://github.com/majianjia/nnom/blob/master/examples/rnn-denoise/README_CN.md 默认提供了一个wav的例子 #include <stdint.h> #include <stdlib.h> #include <stdio.h> #include <math.h> #include <string.h>#include …

图像处理-Ch7-小波函数

个人博客&#xff01;无广告观看&#xff0c;因为这节内容太多了&#xff0c;有点放不下&#xff0c;分了三节 文章目录 多分辨率展开(Multi-resolution Expansions)序列展开(Series Expansions)尺度函数(Scaling Function)例&#xff1a;哈尔尺度函数(Haar scaling func)多分…

solr9.7 单机安装教程

1.环境要求:jdk11以上 2.下载wget https://dlcdn.apache.org/solr/solr/9.7.0/solr-9.7.0.tgz 3.解压 4.修改solr.in.sh配置 5.启动命令 bin/solr start 6.创建core bin/solr create -c <core名称> 注意:用solr ui界面创建&#xff0c;会提示找不到solrconfig.xml和m…

Python爬虫(一)- Requests 安装与基本使用教程

文章目录 前言一、简介及安装1. 简介2. 安装 Requests2.1 安装2.2 检查安装是否成功 二、使用 Requests 发送 HTTP 请求1. 发送 GET 请求2. 发送 POST 请求3. 发送 PUT 请求4. 发送 DELETE 请求5. 发送 HEAD 请求6. 发送 OPTIONS 请求 三、传递参数1. GET 请求传递 URL 参数1.1…

使用exe4j将jar转成exe、java打包exe

1、maven打包 需要配置以下插件&#xff0c;注意skip为false 插件配置中设置 <skip>true</skip> 时&#xff0c;实际上是告诉 Maven 在构建过程中跳过 spring-boot-maven-plugin 插件的执行。也就是说&#xff0c;Maven 在打包时不会将项目打包成可执行的 JAR 文…

基本算法——分类

目录 创建项目 导入依赖 加载数据 特征选择 学习算法 对新数据分类 评估与预测误差度量 混淆矩阵 通过模型的预测结果生成 ROC 曲线数据 选择分类算法 完整代码 结论 创建项目 首先创建spring boot项目&#xff0c;我这里用的JDK8&#xff0c;springboot2.7.6&…

Debian 系统中解决中文日志乱码问题

在 Debian 系统中&#xff0c;打印中文日志时经常会遇到乱码问题。这通常是因为系统的 locale 设置不正确&#xff0c;或者缺少所需的字体支持。本文将详细介绍如何解决此类问题&#xff0c;以确保你的 Debian 系统能够正确显示和处理中文字符。 一 乱码问题 问题描述当你尝试…

【电源专题】LDO关键DC参数——效率

在讲到电源的效率方面,很多时候网上最经常看到的是“LDO的效率低,开关电源效率高,所以LDO需要更大的散热器来帮助耗散热能”。 比如如下所示为网上找到的一些总结,一般也是大家所熟知的: 是的,这描述在一定的使用条件下是正确对的,但并不完全对,因为不同的工作…

传统听写与大模型听写比对

在快节奏的现代生活中&#xff0c;听写技能仍然是学习语言和提升认知能力的重要环节。然而&#xff0c;传统的听写练习往往枯燥乏味&#xff0c;且效率不高。现在&#xff0c;随着人工智能技术的发展&#xff0c;大模型听写工具的问世&#xff0c;为传统听写带来了革命性的变革…

Spring Bean required a single bean, but 2 were found,发现多个 Bean

问题复现 在使用 Autowired 时&#xff0c;不管你是菜鸟级还是专家级的 Spring 使用者&#xff0c;都应该制造或者遭遇过类似的错误&#xff1a; required a single bean, but 2 were found 顾名思义&#xff0c;我们仅需要一个 Bean&#xff0c;但实际却提供了 2 个&#xff…

李宏毅机器学习笔记-Transformer

目录 1. Seq2seq 2. encoder Transformer 中的 Block 结构 3. Decoder 4.Encoder和Decoder间的信息传递 5.Training 6.Tips 1. Seq2seq Transformer 是一个seq2seq的model。Seq2seq指的是input是一个序列&#xff0c;输出也是一个序列&#xff0c;输出的长度是由机器自己…

基于Docker的ETCD分布式集群

目录 1. 说明 2. 配置表 3. 步骤 3.1 放行端口 3.2 docker-compose 文件 3.3 部署到3台服务器 3.4 相关命令 4. 参考 1. 说明 - 以docker容器方式实现ETCD分布式集群&#xff0c;为其他项目提供支持&#xff0c;经过反复试验成功部署(网上资料大都过期或部署失败)。 -…

LeetCode 力扣 热题 100道(二十七)除自身以外数组的乘积(C++)

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂…