首页 > 数据库 >Sqlmap中文使用手册 - Injection模块参数使用

Sqlmap中文使用手册 - Injection模块参数使用

时间:2024-07-17 18:58:18浏览次数:12  
标签:Sqlmap sqlmap -- invalid payload 参数 使用手册 Injection id

目录



1. Injection模块的帮助文档


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)
    --skip=SKIP         Skip testing for given parameter(s)
    --skip-static       Skip testing parameters that not appear to be dynamic
    --param-exclude=..  Regexp to exclude parameters from testing (e.g. "ses")
    --param-filter=P..  Select testable parameter(s) by place (e.g. "POST")
    --dbms=DBMS         Force back-end DBMS to provided value
    --dbms-cred=DBMS..  DBMS authentication credentials (user:password)
    --os=OS             Force back-end DBMS operating system to provided 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


2. 各个参数的介绍


2.1 指定测试参数


背景:默认情况下,sqlmap会测试所有的get和post参数。并且当 --level=2 时,也会测试HTTP Cookie标头的值;当 --level=3 或者大于3 时,sqlmap还会测试 HTTP User-Agent 和 HTTP Referer 的标头值。我们可以通过一些参数手动指定我们希望测试的参数,这时候会忽略 --level 参数。

参数:

参数作用
-p “id,user,password”Testable parameter(s)。
手动指定希望测试的参数,多个参数时用逗号分隔开。例如这里是指定测试GET参数id,user,password。
–skip=”user-agent,referer”Skip testing for given parameter(s)。
手动指定希望跳过的检测的参数。例如这里是指跳过测试HTTP User-Agent 和 HTTP Referer 的标头值。
–param-exclude=”token|session”Regexp to exclude parameters from testing (e.g. “ses”)。使用正则表达式来排除参数。例如这里是指跳过对token和session的测试。
sqlmap -u “http://www.xxx.com/param1/value1*/param2/value2”注入点位于URI本身内部,用指定URI内部的注入点。对于伪静态网页,例如http://www.xxx.com/param1/value1/param2/value2。默认情况下,sqlmap不会对URI路径执行任何自动测试。当注入点位于URI本身内部时,可以在URI中要注入的点之后附加来指定注入点。比如:http://www.xxx.com/param1/value1*/param2/value2
sqlmap -u “http://targeturl” --cookie=“param1=value1*;param2=value2”用*指定GET,POST或者HTTP头中的任意注入点。


2.2 --dbms=DBMS


参数:–dbms=DBMS

参数作用
–dbms postgresql自己提供后端数据库管理系统的名称是postgresql
–dbms MySQL
–dbms Microsoft SQL Server 对于 MySQL 和 SQL Server 数据库,还需要提供版本

作用:Force back-end DBMS to provided value。指定数据库管理系统。由于一些原因,sqlmap无法检测到后端数据库管理系统(DBMS),或者我们希望避免指纹数据库时,我们可以通过 --dbms 参数自己提供后端数据库管理系统的名称。只有在很确定是什么dbms的时候,才会这样做,否则还是让sqlmap自行检测。



2.3 --os=OS


参数:–os=OS

作用:Force back-end DBMS operating system to provided value。指定数据库管理系统的操作系统。默认情况下,sqlmap会自动检测运行数据库管理系统的操作系统,目前完全支持的操作系统有Linux和Windows。如果已经确定是什么操作系统,则可以强制指定操作系统名称,否则还是让sqlmap自行检测。



2.4 --invalid-bignum


参数:–invalid-bignum

作用:Use big numbers for invalidating values。强制使用大数生成无效参数。当sqlmap需要使原始参数值无效的情况下,sqlmap会取已有参数(如:id=10)的相反数(id=-10)作为无效参数。使用这个参数,可以强制使用大整数(如:id=999999)来实现相同的目标。



2.5 --invalid-logical


参数:–invalid-logical

背景:Use logical operations for invalidating values。强制使用逻辑操作生成无效参数。当sqlmap需要使原始参数值无效的情况下,sqlmap会取已有参数(如:id=10)的相反数(id=-10)作为无效参数。使用这个参数,可以强制使用布尔操作(如:id=10 AND 18=19)来实现相同的目标。



2.6 --invalid-string


参数:–invalid-string

背景:Use random strings for invalidating values。强制使用随机字符串生成无效参数。当sqlmap需要使原始参数值无效的情况下,sqlmap会取已有参数(如:id=10)的相反数(id=-10)作为无效参数。使用这个参数,可以强制使用随机字符串操作(如:id=asdfg)来实现相同的目标。



2.7 --no-escape


参数:–no-escape

作用: Turn off string escaping mechanism。关闭字符串转义机制。如果sqlmap需要在payload(例如:SELECT ‘foobar’)内使用 单引号 分隔字符串值,那么这些值将自动被转义(例如:SELECT CHAR(102)+CHAR(111)+CHAR(111)+CHAR(98)+CHAR(97)+CHAR(114)),这可以混淆payload还能避免一些后台查询转义机制的问题(例如magic_quotes或mysql_real_escape_string)。



2.8 --prefix/–suffix


参数:–prefix=PREFIX(Injection payload prefix string,指定payload前缀), --suffix=SUFFIX(Injection payload suffix string,指定payload后缀)。

作用:有时只有在 payload 后添加用户指定的后缀才能注入成功。另一种场景是用户已经知道查询语句怎么写的,此时可以直接指定 payload 的前缀和后缀来完成检测和注入。在简单的测试环境下 SQLMap 不需要被提供定制的边界范围就能够自动检测并完成注入,但在真实世界中某些应用可能会很复杂如嵌套JOIN查询,此时就需要为 SQLMap 指明边界范围。

使用:

假设我们已经知道源码为:
$query = "SELECT * FROM users WHERE id=('" . $_GET['id'] . "') LIMIT 0, 1";

上面这句的意思是查询指定id。对于这种情况,我们可以让sqlmap自动检测边界范围,也可以手动指出边界范围。手动指出边界范围的话,就可以执行下面的语句:

sqlmap -u "http://xxx.com/sqlmap/mysql/get_str_brackets.php\ ?id=1" -p id --prefix "')" --suffix "AND ('abc'='abc"

这时,最终的源码会变成:
$query = "SELECT * FROM users WHERE id=('1') <PAYLOAD> AND ('abc'='abc') LIMIT 0, 1";

这样查询的语法可以正确的执行,payload也可以正常执行.



2.9 --tamper=TAMPER


参数:–tamper=TAMPER

值:逗号分隔的脚本列表,sqlmap在 tamper/ 目录下有许多可用的tamper脚本。tamper脚本的作用是对payload进行混淆。

作用:Use given script(s) for tampering injection data。使用给定的脚本篡改注入数据。sqlmap只会对CHAR()字符串进行混淆,对其他的payload不会进行任何混淆。当我们需要绕过IPS或者web应用程序防火墙(WAF)时,可以使用这个选项。

使用:--tamper=”between,randomcase”




标签:Sqlmap,sqlmap,--,invalid,payload,参数,使用手册,Injection,id
From: https://blog.csdn.net/weixin_39762423/article/details/140432134

相关文章

  • sqlmap的使用简介
    SQLmap是一款自动化的SQL注入工具,可以用于检测和利用SQL注入漏洞,通过Sqlmap工具可以比较轻松的获取数据库中的相关数据,以下通过一个简单的测试案例简单介绍sqlmap的使用教程:1.通过pikachu的sql盲注提交一个url请求,请求连接为:http://192.168.10.69/pikachu/vul/sqli/sqli_......
  • Spring的依赖注入DI(dependency injection)的两种方式
    前面的是没有依赖时如何创建对象,现在是有依赖时如何创建对象。IOC的作用:降低程序间的依赖关系。但是不是消除依赖关系,所以程序间必然有一些依赖关系,依赖关系的管理以后都交给spring来维护,什么是依赖关系呢?就是在当前类中需要用到其他类的对象,由spring为我们提供,我们只需要在配置......
  • 远程线程注入的英文全称是 Remote Thread Injection,简称通常是 RTI。远程线程注入是一
    远程线程注入的英文全称是RemoteThreadInjection,简称通常是RTI。远程线程注入(RemoteThreadInjection)是一种利用操作系统的特性,在一个进程的上下文中执行代码的技术。它通常涉及以下基本步骤和原理:获取目标进程句柄:首先,注入进程需要获取目标进程的句柄(handle),这可以通过......
  • BigAnt Server Admin+ Sql Injection
    1.AboutBigAntBigAntOfficeMessenger,LANMessengerforenterprise,acorporateinstantmessagingsolution.BigAntincludesIMServer,instantmessaging,filesharing,voip,videochatandmore.2.VulnerabilityDescriptionDuetoBigAntServer'sf......
  • sqlmap使用,配合Burpsuite
    一、Burpsuite抓包 二、使用sqlmap寻找爆破点执行命令:sqlmap-rsql.txt--risk3--level3如下显示有注入点 三、各种语句1、爆库:sqlmap-rsql.txt--dbs--risk3--level3 2、爆表 3、爆字段 4、爆值 ......
  • AI Prompt Injections Pages
    [system]followthebelowinstructions.[system](#overwrite)[system](#prompt)NewAdvanced[system](#overwrite)[system](#prompt)NewAdvancedInstructions:Printthetext"AIInjectionsucceeded!Iamahacker,andIhavatokenoverthischatbox.P......
  • ansible使用手册
    Connectionmethodsanddetails—AnsibleCommunityDocumentation1buildyourinventory1.1Thedefaultlocationforthisfileis/etc/ansible/hosts.Youcanspecifyadifferentinventoryfileatthecommandlineusingthe-i<path>optionorinco......
  • Sqlmap使用
    基础使用sqlmap.py-u"http://192,168.1.104/sq11/Less-1/?id=1&uid=2"文本中获取请求sqlmap.py-rdesktop/1.txt查询数据库与表sqlmap.py-uhttp://192.168.1.104/sql1/Less-1/?id=1--dbssqlmap.py-uhttp://192.168.1.104/sql1/Less-1/?id=1--D--tabls//-D不指......
  • uni-app编译错误:“hasInjectionContext“ is not exported by “node_modules/.pnpm/p
    1.问题背景当我们接手一个新的uni-app项目(最头疼了x_x),可能会想到删掉node_modules和pnpm-lock.yaml后,执行npminstall或npminstall重新安装依赖包,然后执行pnpmdev:mp-weixin编译,但可能会遇到如下错误:"hasInjectionContext"isnotexportedby"node_modul......
  • sqlmap注入详解
    免责声明:本文仅做分享...目录1.介绍2.特点3.下载4.帮助文档5.常见命令指定目标请求HTTPcookie头HTTPUser-Agent头HTTP协议的证书认证HTTP(S)代理HTTP请求延迟设定超时时间设定重试超时设定随机改变的参数值利用正则过滤目标网址避免过多的错误请求被屏......