Skip to content

Latest commit

 

History

History
38 lines (19 loc) · 2.48 KB

88511152424522.md

File metadata and controls

38 lines (19 loc) · 2.48 KB

#编程的重要性之 sqlmap 源码

tags: #经验#,

编程的重要性之 sqlmap 源码

下面这段话我曾经分享过,这里再贴一次。

  1. 首先你应该搞懂它的架构体系,模块与分层,设计模式等。说白了,你得懂软件工程。

我为什么会在技能表里特别推荐读它的源码,绝不仅它的 SQL 注射能力一流,还因为它的软件工程牛逼到不行。你可以想象下,能打造如此稳定的框架工具已经不是件简单的事。如果你深入下去就会发现里面处处是软件工程那些优秀思想,关于这点比起曾经的 w3af 不知道要牛逼多少倍,后来 w3af 卧薪尝胆搞了次重写,才有现在的地位。

这个软件工程举些具体的点吧,比如并发,如果你连什么是并发,什么是线程、锁、条件、信号、超时、异常等概念都不懂;再复杂点并发里进程、线程、协程的差异是什么;再再复杂点 Python GIL、垃圾回收、性能陷阱;再再再复杂点 Python 那些内置模块、第三方模块的 ugly 点的 hack,看到这些源码你估计会哭死…哦,对了,如果你并不熟 Python,那么那些 Pythonic 的技巧估计也会让你怀疑自己、怀疑世界…

说的题外话:如果你把 sqlmap 当产品来读,还能读出更多东西;如果你把 sqlmap 当作开源社区运作模式来读,又能读出更多东西。如果不是因为它的开源运作、产品、软件工程、SQL 注射的一流,我们也不会持续用它并提交贡献代码与 Bugs 反馈。

正因为这种优秀,你要读的东西可多了,当然难!

  1. 要吃透 sqlmap,还有一个非常关键的是,熟练 SQL 注射各类技术与技巧,熟练基于 SQL 的后续渗透技巧,sqlmap 支持几乎所有主流数据库的注射。

这又是一大难题。如果你不熟悉,你绝对想不到它为什么那样发包,为什么那样处理…

哦,对了,如果你并不是一名渗透手,你绝对难以思考到为什么 sqlmap 集成了那一堆技巧。

  1. 虽然有人写了些小而美的工具来比拼 sqlmap 的一些不足,但还是向 sqlmap 致敬,他们在不断改进。

以上是我从事黑客工程化数年经验的一些回馈。不用怕,啃久了自然熟。

最后,./sqlmap.py -h 开启一个纵深知识领域吧:)