球球cdk怎么做网站,沧州开发网站多少钱,做论坛网站多少钱,合肥全网优化一、sqlmap的基本使用 
指定检测级别 sqlmap使用的payloads直接从文本文件xml/payloads.xml中载入 根据该文件顶部的相关指导说明进行设置#xff0c;如果sqlmap漏过了特定的注入#xff0c; 你可以选择自己修改指定的payload用于检测 level有5级#xff0c;级别越高检测越全…一、sqlmap的基本使用 
指定检测级别 sqlmap使用的payloads直接从文本文件xml/payloads.xml中载入 根据该文件顶部的相关指导说明进行设置如果sqlmap漏过了特定的注入 你可以选择自己修改指定的payload用于检测 level有5级级别越高检测越全默认为1 
-level 1 默认等级执行基本的SQL注入测试和一些常见的payloads-level 2 在Level 1的基础上增加了对HTTP Cookie的测试-level 3 在Level 2的基础上增加了对HTTP User-Agent和Referer头部的测试-level 4 进一步增加更复杂的payloads和测试方法-level 5 最高等级包含所有payloads会自动破解Cookie、XFF等头部注入提供最全面的测试 
risk有3级级别越高风险越大默认为1 
-risk 2 会在默认的检测上添加大量时间型盲注语句测试-risk 3 会在原基础上添加OR类型的布尔型盲注可能会update到时修改数据库有很大的风险 
页面对比 选项--string--not-string--regexp 和 --code 默认区分一个True 查询和 False 查询布尔型盲注背后的相关理念概念是通过对比注入前后返回的结果是否一致进行判断的。 不过这个参照方法并不一定有效因为可能就算没有进行注入页面内容也会进行相应更新。例如页面上有计算器、动态的广告横幅、或者任何基于时间而非用户输入内容进行动态渲染的内容。为了避免类似的情况sqlmap会尽可能尝试识别出对应的代码段所返回请求内容并做好相关的处理 如果用户知道可以通过HTTP状态码区分True查询和False查询例如200对应True401对应False那么可以向sqlmap提供对应的信息。例如--code200 开关--text-only 和 --titles 如果用户知道可以通过HTML标题区分True查询和False查询例如Welcome对应TrueForbidden对应False那么可以使用--titles开启基于标题对比的开关 如果HTTP响应报文中存在无效信息例如脚本、镶嵌元素等可以通过过滤页面的内容开关 --text-only而只获取文本内容。通过这种方式大多数情况下这样会自动调优检测引擎 指定注入类型 
以下选项用于调整特定SQL注入技术的测试方法 --techniqueTECH #使用的SQL注入技术默认为“BEUSTQ” BBoolean-based blind SQL injection布尔型盲注 EError-based SQL injection报错型注入 UUNION query SQL injection联合查询注入 SStacked queries SQL injection堆查询注入 TTime-based blind SQL injection时间型盲注 Qinline Query injection内敛查询注入 例如如果仅测试利用报错型注入和堆叠查询注入你可以提供ES --time-secTIMESEC   #设置延时注入时间默认为5 --second-orderS..       #设置二阶响应的结果显示页面的URL该选项用于二阶 SQL 注入 --dns-domain                #DNS 渗出攻击 如果用户正控制这一台注册为DNS域名服务器的主机例如域名attacker.com则可以使用该选项例如--dns-domain attacker.com来启用此攻击。它的前提条件是使用Administrator即管理员权限因为需要特权端口53运行sqlmap这时可以使用常用的盲注技术来进行攻击。如果已经识别出一种有效攻击方式最好是时间型盲注则这种能够加速获取数据的过程。如果报错型注入或联合查询注入技术可用则默认情况下将跳过DNS渗出攻击测试。 
枚举信息 
以下选项用于获取数据库的信息结构和数据表中的数据 
-a--all                        #获取所有信息、数据-f--fingerprint            #采用特定SQL方言或者内带特定错误信息等技术开展详细的DBMS指纹识别-b--banner                #获取 DBMS banner返回数据库的版本号--current-user              #获取 DBMS 当前用户--current-db                 #获取 DBMS 当前数据库--hostname                  #获取 DBMS 服务器的主机名--is-dba                        #探测 DBMS 当前用户是否为DBA数据库管理员--users                         #枚举出 DBMS 所有用户--passwords                 #枚举出 DBMS 所有用户的密码哈希--privileges                   #枚举出 DBMS 所有用户特权级--roles                          #枚举出 DBMS 所有用户角色--dbs                            #枚举出 DBMS 所有数据库--tables                        #枚举出 DBMS 数据库中的所有表--exclude-sysdbs 以排除所有的系统数据库对于Oracle你需要提供 TABLESPACE_NAME 而不是数据库名称--columns                    #枚举出 DBMS 表中的所有列对于 PostgreSQL你需要提供 public 或系统数据库的名称。这是因为不可能枚举其他数据库表只能枚举出 Web 应用程序用户连接到的数据库模式下的表它们总是以 public 为别名--schema                     #枚举出 DBMS 所有模式--count                         #获取数据表数目--dump-all                    #如果当前会话用户的读取权限允许可以一次导出所有数据库表条目--dump                         #导出 DBMS 数据库表项--search-C-T-D  #此开关允许你在所有数据库中搜索特定的数据库名和表名在特定的数据表中搜索特定的列名--stop 10                       #只取前10行数据-D DB                           #指定要枚举的 DBMS 数据库-T TBL                          #指定要枚举的 DBMS 数据表-C COL                         #指定要枚举的 DBMS 数据列--sql-queryQUERY     #指定要执行的SQL语句--sql-shell                     #调出交互式SQL shell