当前位置: 首页 > news >正文

【网络安全实验室】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

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

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

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

相关文章:

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

如果额头终将刻上皱纹,你只能做到,不让皱纹刻在你的心上 1.最简单的SQL注入 查看源代码,登录名为admin 最简单的SQL注入,登录名写入一个常规的注入语句: 密码随便填,验证码填正确的,点击登录…...

华为,新华三,思科网络设备指令

1. 设备信息查看 华为 display version # 查看设备版本信息 display device # 查看设备硬件信息 新华三(H3C) display version # 查看设备版本信息 display device # 查看设备硬件信息 锐捷 show version …...

WebRTC线程的启动与运行

WebRTC线程运行的基本逻辑: while(true) {…Get(&msg, …);…Dispatch(&msg);… }Dispatch(Message *pmsg) {…pmsg->handler->OnMessage(pmsg);… }在执行函数内部,就是一个while死循环,只做两件事,从队列里Get取…...

Day3 微服务 微服务保护(请求限流、线程隔离、服务熔断)、Sentinel微服务保护框架、分布式事务(XA模式、AT模式)、Seata分布式事务框架

目录 1.微服务保护 1.1.服务保护方案 1.1.1 请求限流 1.1.2 线程隔离 1.1.3 服务熔断 1.2 Sentinel 1.2.1.介绍和安装 1.2.2 微服务整合 1.2.2.1 引入sentinel依赖 1.2.2.2 配置控制台 1.2.2.3 访问cart-service的任意端点 1.3 请求限流 1.4 线程隔离 1.4.1 OpenFeign整合Senti…...

第9章 子程序与函数调用

汇编语言是一种低级编程语言,它几乎是一对一地映射到计算机的机器码指令。在汇编语言中实现循环结构通常涉及到使用条件跳转指令(如 JMP、JE、JNE 等)来控制程序流程。下面我将通过一个简单的例子来讲解如何用x86汇编语言实现一个循环结构。 …...

manacher算法

Manacher 算法快速入门 Manacher 算法是一种用于寻找字符串中最长回文子串的高效算法,时间复杂度为 O(n)。 基本概念 回文 回文是一个字符串,从左到右和从右到左读都一样。 示例: 回文:"aba"、"abba"非回…...

Cocos2dx Lua绑定生成中间文件时参数类型与源码类型不匹配

这两天维护的一个项目&#xff0c;使用arm64-v8a指令集编译时遇到了报错&#xff0c;提示类型不匹配&#xff0c;具体报错的代码【脚本根据C源文件生成的中间文件】如下&#xff1a; const google::protobuf::RepeatedField<unsigned long long>& ret cobj->equi…...

为什么需要 std::call_once?

std::call_once 是 C 标准库中的一个函数&#xff0c;用来确保某个操作仅被执行一次&#xff0c;通常用于线程安全的初始化操作。它常与 std::once_flag 结合使用&#xff0c;后者用于标记某个操作是否已经执行过。 为什么需要 std::call_once&#xff1f; 在多线程程序中&am…...

ubuntu非root用户操作root权限问题-virbox挂在共享文件夹

首先讲一下&#xff0c;virtuallbox 挂在文件夹&#xff0c;操作的时候总是需要root权限&#xff0c;比较费劲。 这一操作其实也正对着我们在Ubuntu上的操作。 前段时间我想在ubuntu正常用户下去操作i2c&#xff0c;也出现了类似的问题。 后来把正常的操作加到组里面也解决了类…...

网络通讯协议

层次协议应用层HTTP, HTTPS, FTP, SMTP, POP3, IMAP, DNS, DHCP, SNMP, Telnet, SSH, SIP, RTP, RTCP, TFTP, NTP, ICMP, IGMP传输层TCP, UDP网络层IP, ICMP, IGMP数据链路层Ethernet, PPP, HDLC, ATM, Frame Relay ISO/OSI 参考模型协议应用层HTTP, HTTPS, FTP, SMTP, POP3, …...

centos,789使用mamba快速安装devtools

如何进入R语言运行环境请参考&#xff1a;Centos7_miniconda_devtools安装_R语言入门之R包的安装_r语言devtools包怎么安装-CSDN博客 在R里面使用安装devtools经常遇到依赖问题&#xff0c;排除过程过于费时&#xff0c;使用conda安装包等待时间长等。下面演示centos,789都是一…...

【人工智能机器学习基础篇】——深入详解强化学习之常用算法Q-Learning与策略梯度,掌握智能体与环境的交互机制

深入详解强化学习之常用算法&#xff1a;Q-Learning与策略梯度 强化学习&#xff08;Reinforcement Learning, RL&#xff09;作为机器学习的一个重要分支&#xff0c;近年来在多个领域取得了显著成果。从棋类游戏的人机对战到自主驾驶汽车&#xff0c;强化学习技术展示了其强大…...

银河麒麟桌面v10sp1修复引导笔记

1.安装双系统最好备份esp分区&#xff0c;uefi引导丢失可以用diskgen,选择工具再点击设置uefi bios&#xff0c;鼠标右键选择efi文件。 2.银河麒麟界面添加windows&#xff0c;复制EFI/Microsoft或者pe生成引导文件后&#xff0c;修复Windows引导用下面命令 /桌面# update-gru…...

深入理解 MVCC 与 BufferPool 缓存机制

深入理解 MVCC 与 BufferPool 缓存机制 在 MySQL 数据库中&#xff0c;MVCC&#xff08;Multi-Version Concurrency Control&#xff09;多版本并发控制机制和 BufferPool 缓存机制是非常重要的概念&#xff0c;它们对于保证数据的一致性、并发性以及提升数据库性能起着关键作用…...

vue实现下拉多选、可搜索、全选功能

最后的效果就是树形的下拉多选&#xff0c;可选择任意一级选项&#xff0c;下拉框中有一个按钮可以实现全选&#xff0c;也支持搜索功能。 在mounted生命周期里面获取全部部门的数据&#xff0c;handleTree是讲接口返回的数据整理成树形结构&#xff0c;可以自行解决 <div c…...

探秘Kafka源码:关键内容解析

文章目录 一、以kafka-3.0.0为例1.1安装 gradle 二、生产者源码2.1源码主流程图2.2 初始化2.3生产者sender线程初始化2.4 程序入口2.5生产者 main 线程初始化2.6 跳转到 KafkaProducer构造方法 一、以kafka-3.0.0为例 打开 IDEA&#xff0c;点击 File->Open…->源码包解…...

Android音频效果处理:基于`android.media.audiofx`包的原理、架构与实现

Android音频效果处理:基于android.media.audiofx包的原理、架构与实现 目录 引言Android音频框架概述android.media.audiofx包简介音频效果处理的原理 4.1 音频信号处理基础4.2 常见音频效果android.media.audiofx的架构设计 5.1 类结构分析5.2 设计模式应用系统定制与扩展 6…...

LeetCode - 初级算法 数组(两个数组的交集 II)

两个数组的交集 II 这篇文章讨论如何求两个数组的交集,并返回结果中每个元素出现的次数与其在两个数组中都出现的次数一致。提供多个实现方法以满足不同场景需求。 免责声明:本文来源于个人知识与公开资料,仅用于学术交流。 描述 给定两个整数数组 nums1 和 nums2,以数…...

SQL 实战:分页查询的多种方式对比与优化

在处理大数据表时&#xff0c;分页查询是非常常见的需求。分页不仅可以提高用户体验&#xff0c;还能有效减少数据库查询返回的数据量&#xff0c;避免一次性加载大量记录引起的性能瓶颈。 然而&#xff0c;在数据量较大或复杂查询中&#xff0c;简单的分页方式可能导致性能下降…...

汇川Easy系列正弦信号发生器(ST源代码)

正弦余弦信号发生器CODESYS和MATLAB实现请参考下面文章链接: 正弦余弦信号发生器应用(CODESYS ST源代码+MATLAB仿真)_st语言根据输入值,形成正弦点-CSDN博客文章浏览阅读410次。本文介绍了如何在CODESYS编程环境中创建正弦和余弦信号发生器。通过详细的PLC梯形图和SCL语言代码…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...