SQLMAP使用以及原理(一)
平时用到sqlmap一般都会去网上去搜一些sqlmap使用技巧什么的,不愿意自己去了解,主要还是太懒,现在准备将sqlmap的源码看看,不会的可以查查,了解一下的命令以及渗透的实现过程
首先,sqlmap源码:https://github.com/sqlmapproject/sqlmap
看代码时别用sublime text 或 IDE 去打开,因为这是一个工程类的,你要快速的查找类直接的调用问题还是用pycharm比较省时间,简单快速。(还有其他的也可以,pycharm仅仅是个参考)
举个例子吧:1.下面图可以看到,代码和文件目录可以直接切换。这样操作起来是不是很省时间,直接可以去目录里去看,这样既清晰有快捷。
2.还有个快捷的地方就是,你可以快速定位你的函数的位置,比如:你刚看到main函数里try下面的第一句你就懵了,checkEnvironment() 是什么鬼?这样你就可以按着ctrl键鼠标点击这个函数就
可以直接定位到这个函数了。这个方法在文件夹直接操作时才时最厉害的,比如:try下的第三个函数:banner(),这又是什么鬼?怎么办呢,还是一样,按着ctrl键然后鼠标点击这个函数,然后就
打开了另外一个python文件。这样对于你进行了解非常重要,你不用总去搜索,可以直接定位。说着没意思,用着才知道好。
废话了很多,说说具体的
平时我们用到sqlmap时,都是命令执行的,-u 、-l、--cookie 这些命令,一直在想这是有多少命令呀,看源码去发现世界的边界。
命令在cmdline.py这个文件里。可以看出有217条命令,发现你把这217命令都研究明白了,你就成为大神中的大神了
sqlmap之所以这么全面,不仅仅是自身很厉害,还有依托于其他优秀的第三方的库,他们在都存在于sqlmap里的一个文件:thirdparty
里面
分别是:ansistrm、beautifulsoup,bottle,chardet、clientform、colorama、fcrypt、gprof2dot、keepalive、
magic、multipart、odict、oset、prettyprint、pydes、socks、termcolor、wininetpton、xdot。
ansistrm:定义结果输出颜色
beautifulsoup:经常用到,用于爬虫的,将html解析为对象进行处理
bottle:微型WEB框架,小却很经典
chardet:看名字能猜个大概,进行字符串编码的
clientform:用于处理客户端的HTML表单
colorama:是一个python专门用来在控制台、命令行输出彩色文字的模块
fcrypt:使用MD5算法的另一种Python crypt模块
gprof2dot:通过给定一个gprof
的输出文件,将其转换为生成程序调用图的dot
脚本。
keepalive:是urlgrabber的一部分,主要负责文件的抓取处理。
magic:100多行代码,进行文件识别
multipart:进行多线程发送数据包
odict:将字典有序化
oset:ABC类的部分补丁
prettyprint:优化终端结果输出显示
pydes:3DES加密解密算法
socks:sock模块
termcolor:终端输出的颜色格式化
wininetpton:在Windows上的Python(带有ctype)的inetpton和inetntop实现
xdot:dot格式的可视化图形