sqlmap参数大全丨sqlmap命令详解
发布时间:2025-05-21 21:26:04 发布人:远客网络
一、sqlmap参数大全|sqlmap命令详解
1.查看版本:sqlmap.py--version
2.查看帮助信息:sqlmap.py--help
3.测试URL是否有注入可能:sqlmap.py-u
4.使用所有默认配置,可能触发WAF报警:sqlmap.py-u
5.列出所有数据库:sqlmap.py-u
6.显示当前使用的数据库:sqlmap.py-u
7.显示当前使用的数据库的用户:sqlmap.py-u
8.列出数据库中的所有用户:sqlmap.py-u
9.列出数据库的用户和密码:sqlmap.py-u
10.列出数据库中所有的表:sqlmap.py-u bts
11.列出数据库bts特定表users的结构,所有字段:sqlmap.py-u bts-T users
12.脱裤数据库bts,表users,字段username和password:sqlmap.py-u bts-T users-C"username,password"
13.脱裤整个数据库:sqlmap.py-u
例如:--version,-h,-v VERBOSE,-d DIRECT,-u URL,-l LOGFILE,-x SITEMAPURL,-m BULKFILE,-r REQUESTFILE,-g GOOGLEDORK,-c CONFIGFILE
例如:--method=MEHOTD,--data=DATA,--param-del=PARAMDEL,--cookie=COOKIE,--cookie-del=COOKIEDEL,--load-cookies=LOADCOOKIES,--drop-set-cookie,--user-agent,--random-agent,--host=HOST,--referer=REFERER,-H=HEADER,--headers=HEADERS,--auth-type=AUTHTYPE,--auth-cred=AUTHCRED,--auth-file=AUTHFILE,--ignore-code=IGNORECODE,--ignore-proxy,--ignore-redirects,--ignore-timeouts,--proxy=PROXY,--proxy-cred=PROXYCRED,--proxy-file=PROXYFILE,--tor,--tor-port,--tor-type,--check-tor,--delay=DELAY,--timeout=TIMEOUT,--retries=RETRIES,--randomize=RPARAM,--safe-url=SAFEURL,--safe-post=SAFEPOST,--safe-req=SAFEREQ,--safe-freq=SAFEFREQ,--skip-urlencode,--csrf-token=CSRFTOKEN,--csrf-url=CSRFURL,--force-ssl,--hpp,--eval
例如:-o,--predict-output,--keep-alive,--null-connection,--threads=THREADS
例如:-p TESTPARAMETER,--skip=SKIP,--skip-static,--param-exclude=PARAMEXCLUDE,--dbms=DBMS,--dbms-cred=DBMSCRED,--os=OS,--invalid-logical,--invalid-string
例如:--level=LEVEL,--risk=RISK,--string=STRING,--not-string=NOTSTRING,--regexp=REGEXP,--code=CODE,--text-only,--titles
例如:--technique=TECH,--time-sec=TIMESEC,--union-cols=UCOLS,--union-char=UCHAR,--union-from=UFROM,--dns-domain=DNSDOMAIN
例如:-a或--all,-b,--banner,--current-user,--current-db,--hostname,--is-dba,--users,--passwords,--privileges,--roles,--dbs,--tables,--columns,--schema,--count,--dump,--dump-all,--search,--comments
二、sqlmap怎么注入ACCESS数据库
1、在使用sqlmap进行ACCESS数据库注入时,首先需要执行跑表命令,例如:sqlmap–u“url/NewsShow.asp?id=69”–tables。遇到某些提示时,可以按回车继续。
2、接下来,根据提示选择线程数量进行表扫描,比如选择1到10线程,当扫描到“admin”表时,可以通过按下Ctrl+C来终止扫描并获取表信息。
3、确定表后,继续执行命令sqlmap–u“url/NewsShow.asp?id=69”–columns–T admin,以获取表中的字段信息,如username、password、id等。
4、在得到字段信息后,使用命令sqlmap–u“url/NewsShow.asp?id=69”–dumps–T admin–C“username,password”来提取字段内容,包括用户名和密码。
5、整个过程中,按照提示选择默认设置即可,最终将输出包括用户名和密码在内的敏感信息。
6、需要注意的是,在实际操作中,确保遵循合法合规的使用规则,避免对他人或机构造成不必要的损失。
7、另外,通过这种方法可以有效地识别和提取ACCESS数据库中的关键数据,但同时也应关注数据库安全,采取适当措施防止敏感信息泄露。
8、进行数据库注入时,建议定期更新和测试安全策略,以应对可能的安全威胁。
9、总之,利用sqlmap进行ACCESS数据库注入是一项重要的技术手段,但也需要谨慎使用,确保在合法合规的前提下进行。
三、sqlmap --os-shell原理
当数据库为MySQL、PostgreSQL或Microsoft SQL Server,并且当前用户拥有使用特定函数的权限时,SQLMap提供了一种特殊的方式实现操作系统命令执行,即os-shell原理。
在MySQL、PostgreSQL中,SQLMap上传二进制库,内含用户自定义函数sys_exec()和sys_eval(),用于执行系统命令。在Microsoft SQL Server中,利用xp_cmdshell存储过程实现,若被禁用(在Microsoft SQL Server 2005及以上版本默认禁用),SQLMap会重新启用或自动创建。
接下来,我们将通过针对MySQL数据库、PostgreSQL数据库和Microsoft SQL Server数据库的具体操作,深入解析os shell原理。
实现os-shell原理的必要条件包括:普通注入方式、上传SQLMap的马、执行马以获取命令执行权限。
测试环境:操作系统为Microsoft Windows Server 2012 Standard,数据库为MySQL 5.1.60,脚本语言为PHP 5.4.45,Web容器为Apache 2.4.39。
使用SQLMap进行注入检测,执行--os-shell命令。
使用Wireshark捕获数据包,仅查看HTTP数据包。
追踪HTTP流,可以看到内容被URL编码,解码后发现是通过into outfile进行文件写入操作。
数据库支持外连,利用SQLMap执行--os-shell获取shell。
实现os-shell原理的关键在于利用xp_cmdshell扩展进行命令执行。
测试环境:操作系统为Microsoft Windows Server 2016 Datacenter,数据库为Microsoft SQL Server 2008。
SQLMap默认不自带pymssql,需手动下载并使用python-m pip install pymssql命令进行安装。
执行--os-shell命令,SQLMap将执行如下操作:
检测是否为数据库管理员权限(sa权限)。
检测xp_cmdshell是否已启用,若未启用则尝试启用。
在特定情况下,SQLMap未能成功开启xp_cmdshell,需通过其他工具如navicat进行数据库连接。
执行命令开启xp_cmdshell,执行后,可在navicat中执行命令或使用SQLMap的--os-shell进行命令执行。
若从一开始就使用navicat或其他工具进行数据库连接,需手动验证是否为sa权限、xp_cmdshell是否已启用。
执行相关验证命令,如查询sa权限状态及xp_cmdshell是否存在。
Mysql实现os-shell原理主要依赖于UDF(用户自定义函数)执行命令,详细内容可参考Mysql Udf提权文章。
测试环境:操作系统为Microsoft Windows Server 2012 Standard,数据库为MySQL 5.1.60。
安装pymysql后再次连接,获取数据库版本信息。
执行SQLMap-d--os-shell命令,SQLMap主要执行如下步骤:
连接Mysql数据库并获取版本信息。
检查sys_exec和sys_eval函数是否存在。
退出时默认删除sys_exec和sys_eval函数。
SQLMap的os-shell原理提供了一种在特定环境下通过注入、上传功能马、执行命令以获取操作系统权限的技术。通过针对不同数据库类型的具体操作,实现了灵活多变的执行策略。