首页 > 代码库 > 注入神器-sqlmap

注入神器-sqlmap

此文章写的不错:

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=http://www.mamicode.com/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=http://www.mamicode.com/REGVAL Windows registry key value

    #Windows注册表中的键值

    --reg-data=http://www.mamicode.com/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

本文出自 “Study” 博客,请务必保留此出处http://meyou.blog.51cto.com/9559603/1577233

注入神器-sqlmap