sqlmap 结构与原理
创始人
2024-06-02 15:15:01
0

文章目录

  • 前言
  • 一、sqlmap 基础
  • 二、目录结构
    • data目录
    • extra
    • lib
    • plugins
    • tamper
    • thirdparty


前言

我么已经知道了SQL注入的原理:http://t.csdn.cn/xNq65
我们已经知道了POC/EXP:http://t.csdn.cn/Lpx09

手工测很累,我们可以写POC/EXP。更进一步,提高POC/EXP的质量,并在程序中加入多线程。等我们厉害了,加入绕过等的功能。当我们的代码水平提高等一定程度,我们就会考虑软件工程、封装、复用等一系列因素。实现了这些,那么sqlmap就诞生了

sqlmap 官网:https://sqlmap.org/


提示:以下是本篇文章正文内容,下面案例可供参考

一、sqlmap 基础

sqlmap使用python编写,目前py2和py3都支持。为了在使用工具的时候心里有个底,清楚地知道当前正在做什么,有必要理解工具原理。

这种自动化工具都可以看作POC/EXP框架,我们可以自己实现一个。当我们传入一个url,sqlmap也是添加已有的payload,然后发送,根据特征匹配回包,进而判断是否存在SQL注入。

二、目录结构

从GitHub上把项目clone下来:git clone https://github.com/sqlmapproject/sqlmap.git
sqlmap文件目录

或者直接在kali的usr/share/sqlmap目录下
在这里插入图片描述

data目录

在这里插入图片描述
以前的几个目录归档到了data目录,主要的几个目录如下:
data

  • procs:包含了mssqlserver、 mysql、oracle和postgresql的触发程序,存放了一些SQL语句,主要涉及DNS带外传输数据的一些数据库命令
  • shell:注入成功时使用的4种shell,经过加密
  • txt:包含了一些字典
  • udf:UDF提权用的dll文件,包含自定义的攻击载荷(payload
  • xml:数据库注入的检测载荷、旗标信息及其他信息

extra

包含了sqlmap的各种额外功能,包括但不限于发出声响的(beep.py), 代码加密(cloak.py -i bmfx.php -o bmfxtech.php) ,二进制转换(./dbgtool.py -i ./nc.exe -o nc.scr) ,运行cmd,安全执行,shellcode等等
在这里插入图片描述

  • beep:警报声音文件夹
  • cloak:生成、解密文件等操作
  • dbgtool:执行转换的文件夹
  • icmpsh:win32的反向icmpshell
  • shellcodeexec:包含Linux/Win 平台下的shellcode
  • vulnserver:简易的漏洞服务,用于fuzz测试

lib

包含了sqlmap的多种连接库,例如:sqlmap的5中SQL注入类型请求的参数,提权操作等
在这里插入图片描述

  • controller:
    • action.py 利用URL受到影响的参数进行SQL注入,并且在条件许可下抽取系统或者数据库中的数据。
    • checks.py 利用载荷对发现的sql注入点进行注入检测。
    • controller.py 对用户传递的参数进行控制。
    • handler.py 对用户传递的数据库名称进行处理
  • core:核心文件,有各种参数的调用文件。例如设置目标 会调用 target.py。还有agent.py,dump.py,threads.py等
  • parse 该参数文件夹有banner.py cmdline.py sitemap.py configfile.py payloads.py handler.py html.py headers.py 等一系列配置处理参数调用文件
  • request 该请求文件夹有basic.py templates.py basicauthhandler.py redirecthandler.py comparison.py rangehandler.py connect.py pkihandler.py direct.py methodrequest.py dns.py inject.py httpshandler.py 等一系列网络请求连接文件
  • takeover 这个是接管文件夹,文件夹里面有abstraction.py xp_cmdshell.py icmpsh.py web.py metasploit.py udf.py registry.py 注入成功后接管受害者机器的shell.
  • techniques 这个是注入分类文件夹有blind,dns,error,union,brute 等物类注入类型,其中每个文件夹有相应的注入类型执行文件。
  • utils 这是小功能文件夹。该文件中含有 api.py xrange.pycrawler.py versioncheck.py deps.py timeout.py getch.py hash.py sqlalchemy.py hashdb.py search.py htmlentities.py purge.py pivotdumptable.py progress.py 等多种功能的调用文件。

plugins

插件库,例如:在使用sqlmap连接数据库的时候需要用到其中的一些不同数据库的python连接类,以及各种数据库的信息和数据库通用事项等
在这里插入图片描述

  • dbms:包含各种数据库枚举,连接和接管等相关说明,sqlmap支持Access,DB2,FireBird,HSQLDB,MaxDB,MSSQLServer,MySQL,Oracle,PostgreSQL,SQLite和Sybase数据库等等,每个数据库文件都有固定的文件,例如,MySQL文件夹中含有connector.py, enumeration.py, filesystem.py, fingerprint.py, syntax.py, takeover.py
  • generic:这是个通用文件夹,里面包含 connector.py, custom.py, databases.py, entries.py, enumeratioin.py, filesystem.py, fingerprint.py, misc.py, search.py, syntax.py, takeover.py, users.py

tamper

目前(1.7.2.22#dev版本)包含了个60多个绕过脚本,例如:编码绕过,注释绕过等等,还有很多
在这里插入图片描述

thirdparty

包含了一些第三方的插件,例如:优化,保持连接,颜色等等
在这里插入图片描述
文件夹中的主要文件

  • ansistrm:ansistrm.py,定义了结果输出终端的颜色显示
  • beautifulsoup: beautifulsoup.py,将XML转换为树状表示法,用以爬取目标站点,参数为--crawl
  • bottle:是python一个轻量WSGI未Web框架,bottle.py,构建静态/动态HTTP请求的关键所在
  • chardet:有众多字符探针和字符定义文件,主要作用是探测web页面的页面编码。
  • clientform:主要文件是clientform.py,它对Web客户端进行HTML表格处理。
  • colorama:主要功能是为了将ansi转化为win32编码。
  • fcrypt:为标准的Linux加密提供端口,或者说是修复缺失加密功能的Python版本,用于破解通用密码哈希值,参数为--passwords
  • gprof2dot:主要提供了从几个解析器的输出中产生一个dot 图形,
  • keepalive:keepalive.py,它的urllib2对HTTP处理程序支持HTTP1.1和存活,keepalive用于持久的HTTP(s)请求,参数为--keep-alive-o
  • magic;该文件夹主要里面的文件是magic.py,magic 是一个libmagic文件识别库的包装器,用于识别和显示日志消息中的文件类型,参数为--file-write
  • multipart:该文件夹里面的文件是multipartpost.py,进行多线程发送数据包。
  • odict:该文件夹里面的文件是odict.py,为有序字典对象,保存插入顺序的密钥。
  • oset:Python ABC类的部分补丁,pyoset.py为主要程序,_abc.py为辅助类的ABC类说明,oset用于对所提供的排序目标进行排序,参数-l-m-g
  • prettyprint 该文件夹里面主要的文件是prettyprint.py,该脚本优化终端结果输出显示,用于生成xml输出,参数为--xml
  • pydes Python中3DES加密解密算法,其中里面有加密解密算法说明,用于破解Oracle旧密码格式,参数为 --passwords
  • socks:Python中的sock模块
  • termcolor:该文件夹里面文件是termcolor.py,它实现了终端输出的颜色格式化。
  • wininetpton:网络地址
  • xdot:dot格式的可视化图形,用于内部测试

相关内容

热门资讯

求经典台词和经典旁白 求经典台词和经典旁白谁有霹雳布袋戏里的经典对白和经典旁白啊?朋友,你尝过失去的滋味吗? 很多人在即将...
小王子第二章主要内容概括 小王子第二章主要内容概括小王子第二章主要内容概括小王子第二章主要内容概括
爱情睡醒了第15集里刘小贝和项... 爱情睡醒了第15集里刘小贝和项天骐跳舞时唱的那首歌是什么谢谢开始找舞伴的时候是林俊杰的《背对背拥抱》...
世界是什么?世界是什么概念?可... 世界是什么?世界是什么概念?可以干什么?物质的和意识的 除了我们生活的地方 比方说山 河 公路 ...
全职猎人中小杰和奇牙拿一集被抓 全职猎人中小杰和奇牙拿一集被抓动画片是第五十九集,五十八集被发现,五十九被带回基地,六十逃走
“不周山”意思是什么 “不周山”意思是什么快快快快......一座山,神话里被共工撞倒了。
《揭秘》一元一分15张跑得快群... 一元一分麻将群加群主微【ab120590】【tj525555】 【mj120590】等风也等你。喜欢...
玩家必看手机正规红中麻将群@2... 好运连连,全网推荐:(ab120590)(mj120590)【tj525555】-Q号:(QQ443...
始作俑者15张跑的快群@24小... 微信一元麻将群群主微【ab120590】 【tj525555】【mj120590】一元一分群内结算,...
《重大通知》24小时一元红中麻... 加V【ab120590】【tj525555】【mj120590】红中癞子、跑得快,等等,加不上微信就...
盘点一下正规一块红中麻将群@2... 一元一分麻将群加群主微:微【ab120590】 【mj120590】【tj525555】喜欢手机上打...
(免押金)上下分一元一分麻将群... 微【ab120590】 【mj120590】【tj525555】专业麻将群三年房费全网最低,APP苹...
[解读]正规红中麻将跑的快@群... 微信一元麻将群群主微【ab120590】 【tj525555】【mj120590】一元一分群内结算,...
《普及一下》全天24小时红中... 微【ab120590】 【mj120590】【tj525555】专业麻将群三年房费全网最低,APP苹...
优酷视频一元一分正规红中麻将... 好运连连,全网推荐:(ab120590)(mj120590)【tj525555】-Q号:(QQ443...
《火爆》加入附近红中麻将群@(... 群主微【ab120590】 【mj120590】【tj525555】免带押进群,群内跑包包赔支持验证...
《字节跳动》哪里有一元一分红中... 1.进群方式-[ab120590]或者《mj120590》【tj525555】--QQ(QQ4434...
全网普及红中癞子麻将群@202... 好运连连,全网推荐:(ab120590)(mj120590)【tj525555】-Q号:(QQ443...
「独家解读」一元一分麻将群哪里... 1.进群方式《ab120590》或者《mj120590》《tj525555》--QQ(4434063...
通知24小时不熄火跑的快群@2... 1.进群方式《ab120590》或者《mj120590》《tj525555》--QQ(4434063...