给老系统做个安全检查——Burp & SqlMap扫描注入漏洞

发布于:2025-02-23 ⋅ 阅读:(16) ⋅ 点赞:(0)

背景

在AI技术突飞猛进的今天,类似Cursor之类的工具已经能写出堪比大部分程序员水平的代码了。然而,在我们的代码世界里,仍然有不少"老骥伏枥"的系统在兢兢业业地发光发热。这些祖传系统的代码可能早已过时,架构可能岌岌可危,但鉴于种种现实考量,它们还得继续"苟且偷生",维持着脆弱的平衡。
就像一位年迈的守护者,这些老系统虽然迟早会光荣退休,被新系统取代,但在那一刻到来之前,我们需要确保它们依然健健康康、稳稳当当、安安全全地运转。毕竟,谁也不希望它们在退休前突然"暴毙",给我们带来意想不到的麻烦。
让我们以一个陪伴了我们多年的老系统为例,化身"SQL注入检测专家",用Burp Suite和SqlMap这两件"秘密武器",给它做一次全面的"安全体检"吧!毕竟,防范于未然总比亡羊补牢要强得多。

注意:安全风险千千万万,防范措施也是花样不穷,本篇只聊一下SQL注入这个风险。

安装软件

首先,我们需要准备好Burp和SqlMap两个工具,其中Burp是商业软件,包括企业版,专业版和社区版,具体的下载,安装方式,这里不在多说,大家可以去官网看一下,最新的下载地址传送门:https://portswigger.net/burp/releases/professional-community-2025-1-1

关于Burp的安装,还是用传统搜索引擎搜一下吧,不要问gpt,现阶段的大模型基本不会告诉你怎么做错误的事~

再来说一下sqlmap,这是个开源脚本,用Python写的,所以要使用这个工具的话,我们的开发机器上也要有Python的运行环境才可以。

其他的好像也没啥可说,给出官网和仓库地址

上面的软件和脚本准备好后,为了让测试更加顺畅,我们还需要一个Burp的浏览器插件,长这样,在火狐的插件市场搜索安装就好。

准备环境

配置监听端口

首先在浏览器插件上,配置好监听端口,这里以默认的8080为例,也可以配置成任何没有被占用的端口。

需要注意的是,Burp软件上设置的监听端口要和插件保持一致,我们才能执行网络抓/放包的操作

配置流程如下图

访问被测地址

通过火狐浏览器,访问一下我们之前准备好的待测试的地址,抓取到的数据包会反映到burp上面,然后我们把这个请求包保存到文件

注入测试

上述操作完成后,就可以使用sqlmap做注入测试了,这里为了方便,我直接使用batch模式

python sqlmap.py -r test.txt -batch --random-agent

测试完成后,会在控制台的输出中,显示你的测试地址是否有测试漏洞,

有漏洞就像这样👇

没有就像这样

如果看到没有测出注入风险,控制台里还会给我们一下参数调整的建议,比如,我按它的建议 ,把风险等级调高,在增加tamper参数

Python sqlmap.py -r test.txt -batch --random-agent --risk 3 --tamper=space2comment

输出的结果依然是没有注入风险。

总结

好了,简单的SqlMap联动Burp的测试就结束了,实际上,今天我们开发的大部分管理系统,都会使用ORM类的插件来替代传统的数据连接方式,而绝大部分的ORM框架,在中间层就已经基本杜绝了SQL注入的风险了,我们只需要关注业务就好。所以如果你开发的是一个现代应用,那评估安全风险的时候,可以把更多的精力放在其他方面,本篇介绍的内容,只适合给老系统做一些安全检查了。