分析 sqlmap 的基础流程

本文是sqlmap内核分析系列的第一篇,主要介绍sqlmap的基础流程。从源码阅读的角度出发,详细解释sqlmap的初始化、目标检测、WAF检查等关键步骤,帮助读者理解sqlmap的核心逻辑和工作原理。文中还提到了环境准备、关键函数分析以及在检查过程中如何处理WAF等关键点。
摘要由CSDN通过智能技术生成

一直在想准备一系列 sqlmap 的文章,担心会不会因为太老太旧了被大家吐槽,思前想后也查了一些现有的资料,还是准备出一部分关于 sqlmap 关键技术细节的探讨。同时也在对其核心的讨论中,提炼出一些思想与方法。sqlmap 内核分析系列文章共三篇,本文为第一篇,敬请指正。

我相信在阅读本文的读者中,很大一部分人都是曾经尝试阅读过 sqlmap 源码的同学。但是在实际阅读的时候,我们发现大家总是存在各种各样奇葩的困难与困惑。

“SqlMap 源码为什么会有大几百行一千行的方法啊”“它里面 conf 和 kb 又是啥?这两个全局变量里面到底存了啥?”“为什么我直接把 sqlmap 的 xml 取出来,还是并不是特别方便使用他们的 payload”

我相信这些疑问大家肯定第一次在阅读这个项目的事,都会遇到。实际上,并不是因为 sqlmap 项目的水平高导致大家看不懂。而是由于项目背负了太多的历史包袱,导致在接近十年的发展中,开发者与后期维护者并没有对这款工具进行重构与大规模重写,反而是继续使用 python2 对其缝缝补补。

 

 

在本系列文章中,我们主要针对 sqlmap 的最核心的方方面面进行分析,本文主要针对基础流程进行介绍与描述,本文由非常细致的 sqlmap 源码解读,希望有需要的读者可以从中受益。

0x00 准备工作

想要阅读 sqlmap 源码我相信大家的选择肯定更多的是从 github 下直接 clone 代码到本地,直接使用本地编辑器或者 IDE 打开直接来分析。所以基本操作也就是

git clone https://github.com/sqlmapproject/sqlmap
cd sqlmap

进入 sqlmap 的 repos 下,直接打开编辑器吧!

当然很多读者是 Python3 用户,其实也没有必要费很大力气在本机上安装 Python2 然后再进行操作。笔者使用的环境是

  • Mac OS X
  • Pyenv
  • VSCode

推荐使用 Pyenv(+virtualenv) 构建 Python 环境运行 sqlmap。

0x01 初始化与底层建筑

笔者当然可以直接指出所有的重要逻辑在什么位置,但是这样并不好。这样做的后果就是大家发出奇怪的疑问:

它里面 conf 和 kb 又是啥?这两个全局变量里面到底存了啥?

逐步熟悉整个项目的构建和项目中贯穿全局的两个奇怪的全局变量,对于加速理解 sqlmap 的核心逻辑起了很大的作用。在笔者的工作和实践中,确实是很有感触。

所以我们还是从头看起吧!

 

我们在上图中,可以找到很

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值