写点什么

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

作者:为自己带盐
  • 2025-02-21
    河北
  • 本文字数:1282 字

    阅读完需:约 4 分钟

背景

在 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 注入的风险了,我们只需要关注业务就好。所以如果你开发的是一个现代应用,那评估安全风险的时候,可以把更多的精力放在其他方面,本篇介绍的内容,只适合给老系统做一些安全检查了。


发布于: 刚刚阅读数: 7
用户头像

学着写代码 2019-04-11 加入

是一枚,热爱技术,天赋不高,又有点轴,的猿。。

评论

发布
暂无评论
给老系统做个安全检查——Burp & SqlMap扫描注入漏洞_安全_为自己带盐_InfoQ写作社区