前言
本篇将讲解如何在修改密码时利用SQL注入漏洞获得数据库中我们想要的信息。
题目分析
题目页面如下:

还是老套路,先提交一个单引号试试:

结果如下:

可恶,不仅做了过滤,还嘲讽了一顿。照这个情况来看,这个网站的开发人员明显做足了功夫,这个站点很有可能不存在漏洞。但现在放弃还太早了,先用SQLMap扫描一遍再说,说不定就在哪个地方疏忽了呢?
SQLMap扫描
按照上一篇总结的方法,先用burpsuite抓包(为方便起见,这里以用户名admin为例):

保存为txt文件(笔者为保存在根目录下的demo.txt文件):

再用SQLMap扫描:
sqlmap -r /demo.txt -f
扫描结果如下:

什么嘛,用户名参数处理得那么严实,结果密码参数处理时还是存在漏洞的嘛,真是虎头蛇尾。之后就可以利用SQLMap直接获得数据库中的我们想要的信息了。但还是得讲讲手工注入方面的知识。
注入示例
既然已经知道了提交密码参数时存在注入漏洞,那么就以单引号作为密码提交以尝试触发错误:

结果如下:

页面打印了报错信息,并且从报错信息中可以知道闭合符为单引号。接下来就与先前讲过的利用报错注入的原理一致,只不过注入点变成了密码参数处。
总结
修改密码时使用的表单虽然与登录时用的表单有所不同,但注入的原理上大同小异,都是利用表单对参数过滤不严进行注入。
本文介绍了如何在遇到有防护措施的网站时,通过SQLMap工具发现并利用密码参数的SQL注入漏洞。在分析了题目中网站的过滤机制后,通过SQLMap扫描发现了密码参数的注入点,然后利用注入技巧获取数据库中的敏感信息。文章强调了即使网站看似安全,也可能存在未被注意到的安全漏洞。

1万+

被折叠的 条评论
为什么被折叠?



