记一次我的漏洞挖掘实战——某公司的SQL注入漏洞
目录
一、前言
二、挖掘过程
1.谷歌语法随机搜索
2.进入网站
3.注入点检测
3.SQLMAP爆破
(1)爆库
(2)爆表
(3)爆字段
三、总结
一、前言
我是在漏洞盒子上提交的漏洞,上面有一个项目叫做公益SRC。公益src是一个白帽子提交随机发现的漏洞的品台,我们可以把我们随机发现或者是主动寻找到的漏洞在漏洞盒子进行提交。在挖掘src的时候不能越红线,一般情况下遇到SQL注入 只获取数据库名字以证明漏洞的存在即可,最好不要再往下获取。而xss漏洞 ,只获取自己的cookie或ip等信息以证明漏洞存在。遇到信息泄露时,如果存在可以下载敏感文件的情况那么在漏洞确认后一定要将文件删除。
二、挖掘过程
1.谷歌语法随机搜索
inurl:php?id=1
这句谷歌语法想必很多小伙伴不陌生,非常经典的用于搜素可能存在SQL注入漏洞网站的语法

想上谷歌的小伙伴可以去找找fanqiang软件啥的,如果实在找不到,win11自带的edge浏览器也有支持这个语法,可以去试试。
2.进入网站
为了方便操作,我将URL复制到了火狐浏览器,可以看到顶端网址后面存在一个id参数,一般我们在漏洞挖掘中,对于看到这种参数一定要敏感,因为带这种参数的网站可能有问题,首先别的不说,能出现id参数的网站采用的就是GET传参方式,这个传参方式容易造成一些信息泄露,所以在实际中,传输数据能用POST传参方式最好,尽量减少信息的直接泄露。

3.注入点检测
为了方便操作,把URL弄到hakbar里
输入下面的参数之后,发现网站下方的一个图片没有了,继续测试
id=1'

输入下面的参数之后,又恢复正常(为了保密,这里就用贴图给大家遮掉)
id=1'and'1'='1

输入下列参数,图片再次报错,这就是非常典型的字符型SQL注入漏洞
id=1'and'1'='2

3.SQLMAP爆破
为什么我要采用SQLmap?首先一个是提高效率,毕竟SQLMAP是自动化工具,能帮我们更高效的的爆破数据库信息,第二个就是我之前试过手工注入,发现获取不了什么信息,所以就选择了SQLMAP爆破。

其实根据SQLMAP的初步扫描信息也可以看到这个网站存在的SQL注入类型,操作系统,开发语言,数据库版本等信息
(1)爆库
可以看到这个公司目前有5个可用的数据库,为了保证公司的隐私起见,除了infomation_schema的数据库以外都打码
另外说一句,大家在进行漏洞挖掘的时候,我个人建议information_schema库别乱动,因为这个数据库下存放整个数据库的关键信息,万一整出问题了我们可担不起责哦。
sqlmap -u URL --dbs

(2)爆表
sqlmap -u URL --tables -D 数据库名
在这里我选择了一个由他们自己命名的数据库,结果进去就爆出了admin这个表,当时我猜测里面肯定存放用户名密码那些
(3)爆字段
sqlmap -u URL --columns -T 表名 -D 数据库名
通过字段爆破果不其然,在里面发现了account和userpass这两个字段,里面可能存在的就是用户名和密码(猜测而已,我不敢再往下了),但是为了安全起见和我的人身安全,我打算止步于此,然后就在SRC上提交了漏洞报告


三、总结
SQL注入的防御方法很多,也是老生常谈的问题
1. 使用参数化查询:使用参数化查询可以防止SQL注入攻击。参数化查询是将SQL语句和参数分开发送到数据库,而不是将它们组合在一起。这样可以确保参数不会被解释为SQL代码。2. 对输入进行验证和过滤:在将用户输入传递给数据库之前,应该对其进行验证和过滤。可以使用正则表达式或其他方法来验证输入是否符合预期格式。还可以过滤掉不必要的字符,例如单引号和双引号。3. 最小化数据库权限:将数据库用户的权限限制为最小化,只允许其执行必要的操作。这样可以减少攻击者利用SQL注入漏洞的机会。4.永远不要太相信用户输入的东西!等等.............
挖洞的时候大家也要注意,有些非常敏感的信息挖出来了之后也当做没看见,不要随意传播,也不能随意利用,不然整个性质就变了,然后记得及时提交漏洞报告就可以了,做一个正义的白帽子就OK了!
第一次写这种实战文章,写的不好的地方还请各位多多指出哦!!!

相关文章:
记一次我的漏洞挖掘实战——某公司的SQL注入漏洞
目录 一、前言 二、挖掘过程 1.谷歌语法随机搜索 2.进入网站 3.注入点检测 3.SQLMAP爆破 (1)爆库 (2)爆表 (3)爆字段 三、总结 一、前言 我是在漏洞盒子上提交的漏洞,上面有一个项目叫…...
代码随想录二刷复习 day1 704二分查找 27 移除元素 977 有序数组的平方
代码如下 func search(nums []int, target int) int { left : 0 right : len(nums)-1 for left < right { middle : (leftright)/2 if target < nums[middle] { //因为上面的判断条件是left < right,所以左右两个边界的值最后都能取到,而此…...
第16章 指令级并行与超标量处理器
处理器体系结构的超标量实现是指常见指令--整数与浮点算术、加载存储和条件分支--可以同时启动,但独立执行。 16.1 概述 超标量方法的本质是能在不同的流水线中独立地并发地执行指令。 在传统的标量组织结构中,其并行性是通过允许许多指令在同一时间处…...
JavaWeb ( 三 ) Web Server 服务器
1.5.Web Server服务器 Web Server 服务器是一种安装在服务器主机上的应用程序, 用于处理客户端(Web浏览器)的请求,并返回响应内容。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流。 简单说就是将http协议的信息翻译成对应开发语言可以处理的对象信息。…...
2.6 浮点运算方法和浮点运算器
学习目标: 以下是一些具体的学习目标: 理解浮点数的基本概念和表示方法,包括符号位、指数和尾数。学习浮点数的运算规则和舍入规则,包括加、减、乘、除、开方等。了解浮点数的常见问题和误差,例如舍入误差、溢出、下…...
第一次找实习, 什么项目可以给自己加分(笔记)
什么样的项目能简历加分、对找工作有帮助 基本特征: 一个特征是“硬核基础软件”,另一个为很实用的APP。 硬核基础软件 独立实现一个操作系统的kerne内核(操作系统的内部引擎) 北美计算机名校会让学生用一个学期的时间实现一个…...
FPGA/Verilog HDL/AC620零基础入门学习——8*8同步FIFO实验
实验要求 该项目主要实现一个深度为8、位宽为8bit的同步FIFO存储单元。模块功能应包括读控制、写控制、同时读写控制、FIFO满状态、FIFO空状态等逻辑部分。 该项目由一个功能模块和一个testbench组成。其中功能模块的端口信号如下表所示。 提示: (1&a…...
shell脚本
shell函数 函数分类: 系统函数 自定义函数 常用系统函数: basename 从指定路径中获取文件名 dirname 从指定路径中获取目录名,去掉文件名 自定义函数 # 函数的定义 函数名 () { 命令 # 使用$n获取函数的参数 [return 返回…...
不部署服务端调用接口,前端接口神器json-server
简介 json-server 是一款小巧的接口模拟工具,一分钟内就能搭建一套 Restful 风格的 API,尤其适合前端接口测试使用。 只需指定一个 json 文件作为 api 的数据源即可,使用起来非常方便,30秒入门,基本上有手就行。 进阶…...
国产化:复旦微JFM7K325T +华为海思 HI3531DV200 的综合视频处理平台
板卡概述 TES714 是自主研制的一款 5 路 HD-SDI 视频采集图像处理平台,该平台采用上海复旦微的高性能 Kintex 系列 FPGA 加上华为海 思的高性能视频处理器 HI3531DV200 来实现。 华为海思的 HI3531DV200 是一款集成了 ARM A53 四核处理 器性能强大的神经网络引擎…...
Ceph入门到精通- stderr raise RuntimeError(‘Unable to create a new OSD id‘)
/bin/podman: stderr raise RuntimeError(Unable to create a new OSD id) podman ps |grep osd.0 podman stop osd.0 容器id 重新添加osd.0 集群目录 cd /var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/1109 ls1110 rm -rf osd.01111 ceph orch daemon add osd…...
AWSFireLens轻松实现容器日志处理
applog应用程序和fluent-bit共享磁盘,日志内容是json格式数据,输出到S3也是JSON格式 applog应用部分在applog目录: Dockerfile文件内容 FROM alpine RUN mkdir -p /data/logs/ COPY testlog.sh /bin/ RUN chmod 777 /bin/testlog.sh ENTRYP…...
Java程序设计入门教程--案例:自由落体
程序模拟物体从10000米高空掉落后的反弹行为。 球体每落地一次,就会反弹至原高度的一半。按用户输入的弹跳次数,计算球体每次弹跳的高度。 实现过程: 1. 新建项目; 2. 接收 用户输入的弹跳次数: (1&#…...
Qt音视频开发44-本地摄像头推流(支持分辨率/帧率等设置/实时性极高)
一、前言 本地摄像头推流和本地桌面推流类似,无非就是采集的设备源头换成了本地摄像头设备而不是桌面,其他代码完全一样。采集本地摄像头实时视频要注意的是如果设置分辨率和帧率,一定要是设备本身就支持的,如果不支持那就歇菜&a…...
SpringCloud学习(七)——统一网关Gateway
文章目录 1. 网关介绍2. 网关搭建2.1 引入依赖2.2 创建启动类2.3 编写配置2.4 测试 3. 路由断言工厂4. 路由过滤器4.1 过滤器配置4.2 全局过滤器4.3 过滤器执行顺序 5. 跨域问题处理 1. 网关介绍 到现在,我们可以使用Nacos对不同的微服务进行注册并管理配置文件&am…...
《花雕学AI》31:ChatGPT--用关键词/咒语/提示词Prompt激发AI绘画的无限创意!
你有没有想过用AI来画画?ChatGPT是一款基于GPT-3的聊天模式的AI绘画工具,它可以根据你输入的关键词/咒语/提示词Prompt来生成不同风格和主题的画作。Prompt是一些简短的文字,可以用来指导ChatGPT的创作过程。在这篇文章中,我将展示…...
计算机组成原理9控制单元的结构
9.1操作命令的分析 取值周期间址周期执行周期中断周期 取指周期数据流 PC存放下条指令的地址给MAR访问存储器相应单元,将数据取出来送给MDR寄存器,MDR取出来的内容送给IR指令寄存器,然后对指令进行译码,把指令的操作码部分取出…...
MySQL数据备份和恢复
MySQL数据备份和恢复 数据备份 mysqldump是MySQL数据库备份工具,可以备份MySQL数据库中的数据和结构,生成.sql文件,方便数据的迁移和恢复。 使用mysqldump工具前一定要配置环境变量 打开开始菜单,搜索“环境变量”。点击“编辑…...
数据结构与算法之链表: Leetcode 237. 删除链表中的节点 (Typescript版)
删除链表中的节点 https://leetcode.cn/problems/delete-node-in-a-linked-list/ 描述 有一个单链表的 head,我们想删除它其中的一个节点 node。 给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。 链表的所有值都是 唯一的,并且保证给…...
继承的相关介绍---C++
一、概念及定义 概念: 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...


