记一次我的漏洞挖掘实战——某公司的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了!

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

猜你喜欢

转载自blog.csdn.net/qq_60503432/article/details/130465208