记一次我的漏洞挖掘实战——某公司的SQL注入漏洞

news/2024/11/24 6:22:45/

 目录

一、前言

二、挖掘过程

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了!

第一次写这种实战文章,写的不好的地方还请各位多多指出哦!!!


http://www.ppmy.cn/news/59537.html

相关文章

redis服务搭建,C++实现redis客户端,redis远程可视化工具

目录 redis简介redis服务搭建redis常用命令C实现redis客户端redis远程可视化工具:Another Redis DeskTop Manager redis简介 官方网址:https://redis.io/ 开源地址:https://github.com/redis 中文文档:http://www.redis.cn/documentation.ht…

Java 中的线程是什么,如何创建和管理线程-下(十三)

书接上文 CompletableFuture CompletableFuture 是 Java 8 中新增的类,提供了更为强大的异步编程支持。它可以将多个异步任务组合成一个整体,并且可以处理异常情况。 例如,可以使用 CompletableFuture 来实现异步任务的串行执行&#xff1…

行人重识别数据集Person Re-Identification Datasets(全)

DatasetRelease time# identities# cameras# imagesLabel methodCrop sizeMulti-shotTracking sequencesFull frames availabilityVIPeR200763221264Hand128X48ETH1,2,3200785, 35, 2818580HandVary✔✔✔QMUL iLIDS20091192476HandVary✔GRID2009102581275HandVaryCAVIAR4ReID…

JAVAScript入门指南 - 从零基础到快速开发

JAVAScript是一门在网站开发中使用广泛的编程语言,它能够帮助你创造动态的网页,并让用户与网站交互。很多人对于JAVAScript入门感到很困惑,那么,本篇文章将详细地介绍JAVAScript的入门知识。 一、入门介绍 JAVAScript是一种轻量…

P3029 [USACO11NOV]Cow Lineup S 双指针 单调队列

“五一”小长假来了趟上海,在倒数第二天终于有时间做了一会儿题目,A了之后过来写一篇题解 【问题描述】 农民约翰雇一个专业摄影师给他的部分牛拍照。由于约翰的牛有好多品种,他喜欢他的照片包含每个品种的至少一头牛。 约翰的牛都站在一条沿…

KL散度

KL散度(Kullback-Leibler divergence),也称为相对熵(relative entropy),是用来衡量两个概率分布之间差异的一种指标。在机器学习中,KL散度常常用于度量两个概率分布之间的相似度或差异性。 具体…

【Git】‘git‘ 不是内部或外部命令,也不是可运行的程序

一、问题 我想利用git clone命令从github上下载项目源代码,发现报错: git 不是内部或外部命令,也不是可运行的程序或批处理文件。我用cmd跑一下git命令,发现报错: 二、问题分析 这个错误提示表明您的系统中没有安装…

报错:RuntimeError: CUDA error: device-side assert triggered

在运行CGAN代码时&#xff0c;有几个报错&#xff0c;记录解决办法 一、报错1 C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Indexing.cu:1146: block: [0,0,0], thread: [39,0,0] Assertion srcIndex < srcSelectDimSize failed. C:\cb\pytorch_10000000…