sqlmap⽬录及结构
sqlmap⽬录及结构
Tips:此篇⽂章主要参考了《sqlmap从⼊门到精通》这本书中的相关具体细节,由于这本书作者完成的时间⼤概在2017年作⽤,所以我根据书中提到的信息再根据⽬前最新版的sqlmap⽬录结构进⾏了优化。
sqlmap⽂件⽬录及主⽂件
1.sqlmap⽬录结构
2.sqlmap主⽂件解读
sqlmap⽂件⽬录解读
(1) .github git的代码管理仓库,基本上每个github仓库都会有这个⽂件夹,记录了⽂件上传更改等版本信息
(2) doc 从字⾯上的意思就知道这是个⽂档说明,⾥⾯放的是sqlmap⽂档信息,⽂件夹⾥⾯包含sqlmap的简单使⽤⼿册,含有每个国家语⾔的简要说明⽂档,有作者信息,更改历史记录信息,致谢信息,第三⽅插件致谢信息
(3) extra 包含了sqlmap的各种额外功能,包括但不限于发出声响的(beep.py), 代码加密(cloak.py -i bmfx.php -o bmfxtech.php) ,⼆进制转换(./dbgtool.py -i ./nc.exe -o nc.scr) ,运⾏cmd,安全执⾏,shellcode等等
(4) lib 这⾥包含了sqlmap的多种连接库,例如:sqlmap的5中SQL注⼊类型请求的参数,提权操作等
(5) plugins 插件库,例如:在使⽤sqlmap连接数据库的时候需要⽤到其中的⼀些不同数据库的python连接类,以及各种数据库的信息和数据库通⽤事项等
(6) tamper 这⾥包含了57个绕过脚本,例如:编码绕过,注释绕过等等,还有很多
(7) thirdparty 这⾥包含了⼀些第三⽅的插件,例如:优化,保持连接,颜⾊等等
(8) data 这个⽬前在⽼版本的sqlmap中是没有的,在⽬前最新版本的1.4.5.28中存在 ,其实也没有变什么就是把原来的部分⽂件夹移动到了这个data⽂件夹⾥⾯,⽬前data⽂件夹⾥⾯有如下⽂件夹:
html, procs, shell, txt, udf, xml
html ⾥⾯有个index.html⽂件,打开是关于sqlmap的各种选项
procs 包含了mssqlserver、 mysql、oracle和postgresql的触发程序,存放了⼀些SQL语句,主要涉及DNS带外传输数据的⼀些数据库命令
shell 注⼊成功时使⽤的4中shell,这些shell是经过加密的
txt 包含⼀些字典,例如:⽤户浏览器代理,表,列,和关键字等
udf UDF提权⽤的dll或者so⽂件,包含了⽤户⾃⼰⾃定义的攻击Payload
xml 包含了多种数据库的注⼊检测载荷、旗标信息以及其他信息
⼦⽬录解读
1.sqlmap/doc⽬录
(1) translations 翻译⽂件夹,包含下载,安装和使⽤sqlmap的简要说明⽂档,该⽂件包含17种语⾔版本,中⽂版本也在⾥⾯
(2) AUTHORS 作者信息,介绍了sqlmap的程序编写者及其邮箱,发现sqlmap的相关问题可以直接发送邮件给作者
(3) CHANGELOG.md 更新⽇志,介绍了sqlmap更新了哪些功能,Bug修复及相关特性
(4) THANKS.md 感谢⽂档,介绍对sqlmap有贡献的作者
(5) THIRD-PARTY.md 第三⽅插件,介绍集成在sqlmap的第三⽅插件的概要说明
2.sqlmap/extra⽬录
3.sqlmap/lib⽬录
(1) controller
action.py 利⽤URL受到影响的参数进⾏SQL注⼊,并且在条件许可下抽取系统或者数据库中的数据。
checks.py 利⽤载荷对发现的sql注⼊点进⾏注⼊检测。
controller.py 对⽤户传递的参数进⾏控制。
handler.py 对⽤户传递的数据库名称进⾏处理
(2) core 这是核⼼⽂件夹有各种参数的调⽤⽂件,例如设置⽬标 会调⽤ target.py。还有agent.py,dump.py,threads.py等等
(3) parse 该参数⽂件夹有banner.py cmdline.py sitemap.py configfile.py payloads.py handler.py html.py headers.py 等⼀系列配置处理参数调⽤⽂件
(4) 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 等⼀系列⽹络请求连接⽂件
(5) takeover 这个是接管⽂件夹,⽂件夹⾥⾯有abstraction.py xp_cmdshell.py icmpsh.py web.py metasploit.py udf.py registry.py 注⼊成功后接管受害者机器的shell.
(6) techniques 这个是注⼊分类⽂件夹有blind,dns,error,union,brute 等物类注⼊类型,其中每个⽂件夹有相应的注⼊类型执⾏⽂件。
(7) 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 等多种功能的调⽤⽂件。
4.sqlmap/plugins⽬录
(1) 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
(2) 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
5.sqlmap/tamper⽬录
这个⽊是⽤来注⼊绕过各种防⽕墙的脚本⽂件⽬录,⾥⾯含有57个⽤来绕过防⽕墙的脚本⽂件,具体如下:
apostrophemask.py apostrophenullencode.py appendnullbyte.py base64encode.py between.py bluecoat.py chardoubleencode.py charencode.py charunicodeencode.py commalesslimit.py commalessmid.py concat2concatws.py equaltolike.py escapequotes.py greatest.py halfversionedmorekeywordsifnull2ifisnull.py
informationschemacomment.lowercase.py modsecurityversioned.py modsecurityzeroversioned.multiplespaces.py nonrecursivereplacement.poverlongutf8.py percentage.py randomcase.py randomcomments.py securesphere.py
sp_password.py space2comment.py space2dash.py space2hash.py space2morehash.py space2mssqlblank.py
space2mssqlhash.py space2mysqlblank.py space2mysqldash.py space2plus.py space2randomblank.py symboliclogical.py unionalltounion.py unmagicquotes.py uppercase.py varnish.py versionedkeywords.py versionedmorekeywords.py xforwardedfor.py
6.sqlmap/thirdparty⽬录
这个是sqlmap的第三⽅插件,实现各种优化格式的⼩功能。
(1) ansistrm 该⽂件夹中主要⽂件是ansistrm.py,它定义了结果输出终端的颜⾊显⽰。
(2) beautifulsoup #该⽂件夹中主要⽂件是beautifulsoup.py,它把XML等转化为树状表⽰法,⽤于爬取⽬标站点,参数为–crawl。
(3) bottle 是Python的⼀个快速,简单和轻巧的WSGI微Web框架。它作为单个⽂件模块,不依赖其他Python标准库。主要⽂件是bottle.py,它是构建静态和动态HTTP请求的关键所在,虽然⽀持Python3,但是由于sqlmap整体是采⽤python2开发的,所以这⾥会进⾏⼀个兼容性检查。
(4) chardet 该⽂件夹中有众多字符探针和字符定义⽂件,主要作⽤是探测web页⾯的页⾯编码。
(5) clientform 该⽂件夹主要⽂件是clientform.py,它对Web客户端进⾏HTML表格处理。
(6) colorama 该⽂件夹⾥⾯的⽂件其主要功能是为了将ansi转化为win32编码。
(7) fcrypt 该⽂件夹主要为标准的Linux加密提供端⼝,或者说是修复缺失加密功能的Python版本,⽤于破解通⽤密码哈希值,参数为–passwords
(8) gprof2dot #该⽂件夹⾥⾯的⽂件主要提供了从⼏个解析器的输出中产⽣⼀个dot 图形,
(9) keepalive #该⽂件夹⾥⾯的⽂件是keepalive.py,它的urllib2对HTTP处理程序⽀持HTTP1.1和存活,keepalive⽤于持久的HTTP(s)请求,参数为–keep-alive和-o
(10) magic #该⽂件夹主要⾥⾯的⽂件是magic.py,magic 是⼀个libmagic⽂件识别库的包装器,⽤于识别和显⽰⽇志消息中的⽂件类型,参数为–file-write
(11) multipart 该⽂件夹⾥⾯的⽂件是multipartpost.py,进⾏多线程发送数据包。
(12) odict 该⽂件夹⾥⾯的⽂件是odict.py,为有序字典对象,保存插⼊顺序的密钥。
(13) oset Python ABC类的部分补丁,pyoset.py为主要程序,_abc.py为辅助类的ABC类说明,oset⽤于对所提供的排序⽬标进⾏排序,参数-l,-m和-g
(14) prettyprint 该⽂件夹⾥⾯主要的⽂件是prettyprint.py,该脚本优化终端结果输出显⽰,⽤于⽣成xml输出,参数为 --xml
(15) pydes Python中3DES加密解密算法,其中⾥⾯有加密解密算法说明,⽤于破解Oracle旧密码格式,参数为 --passwords
(16) socks Python中的sock模块
(17) termcolor 该⽂件夹⾥⾯⽂件是termcolor.py,它实现了终端输出的颜⾊格式化。
(18) wininetpton ⽹络地址
(19) xdot dot格式的可视化图形,⽤于内部测试
(20) six 这⾥是空⽂件夹(init.py 都不算在内)
7.sqlmap/data⽬录
新版的sqlmap新建了⼀个⽬录为data,将部分⽂件夹组件移动到此⽬录下⾯
(1) html 该⽂件夹⾥⾯含有⼀个index.html⽂件,打开发现是关于sqlmap的Option配置的页⾯,但是功能不多,也发点击其他功能选项,待实际使⽤中挖掘
(2) procs 该⽂件夹下⾯存放的是关于存储进程访问的⽂件,具体有4中数据库类型,如下:
mssqlserver 访问MSSQLServer处理的进程,⽅便对数据进⾏访问
mysql 访问MySQL处理的进程,⽅便对数据进⾏访问
oracle 访问Oracle处理的进程,⽅便对数据进⾏访问
postgresql 访问Postgresql处理的进程,⽅便对数据进⾏访问
(3) shell 该⽂件夹下有两个⽂件夹分别是backdoors和stagers,具体如下:
backdoors 后门⽂件backdoor.asp_ , backdoor_aspx , backdoor.jsp_ , backdoor.php_ , 代码经过加密cloak.py可以对输⼊⽂件进⾏加密,例如:cloak.py -i backdoor.php -o backdoor2.php ,backdoor.php为明⽂PHP代码⽂件,经过cloak.py 转换
后,backdoor2.php 为乱码⽂件
stagers 包含stager.asp_ , stager.aspx_ , stager.jsp_ 和stager.php_⽂件
(4) txt 该⽂件夹⾥⾯存放的都是字典⽂件,其中会包含关键词,公共列表和其他字典 ,具体含有如下字典⽂件:
< 数据库中的共同列
< 数据库中的共同⽂件路径
< 数据库中的共同输出。
< #数据库中的共同表。
< 数据库中的共同关键词。
< 数据库中的字典。
< 进⾏请求时的浏览器代理头。
<_ 字典压缩⽂件,这⾥从官⽅下载下来就是这样的,如果⾃⼰要看,需要⾃⼰将后缀改成zip格式查看
(5) udf 该⽂件夹⾥⾯主要存放的是提权⼯具,具体如下:
mysql 包括Linux和Windows的lib_mysqludf_sys.dll_ 32和64位都有
postgresql 包括Linux和Windows的lib_mysqludf_sys.dll_ 32和64位都有
(6) xml 该⽂件夹⾥⾯主要是做信息记录的,⾥⾯含有如下⽂件:
banner 各种数据及其相关数据的标志XML记录,例如:l , l , l , l , l ,
payloads 布尔,错误,内联查询,堆叠查询,延时盲注和联合查询6种注⼊类型的攻击注⼊检测载荷
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论