首页 > 技术文章 > sqlmap进阶之路

SCHAOGES 2019-09-01 12:20 原文

1.sqlmap直接数据库,文件读取目标 -l ,-x(xml站点地图),-m(多行文本url),-r, url探测 --banner(t探测数据库), -g(Google)批量扫描注入


2,使用post方式时可以指定分隔符 --pa'ram-del="&"  , bp截取的文件参数后面加*
如同 使用--level 3 检测cookie注入, --heads 可以设置额外的http请求参数如:refer-forword-x

 

3. 设置http协议认证 (--auth-type(Basic,Digest,NTLM),--auth-cred(username:password))

 

    设置tor隐藏网络(--tor,--tor-port,--tor-type,--check-tor)1.apt install tor(初次使用,service tor start ,service tor status)==需要vps,服务器(需要百度了解下)

    设置HTTP代理(--proxy http(s)://ip:port, --proxy-cred设置代理服务器认证信息--proxy-cred username:password, --proxy-file:设置多条代理文件http://ip:port,--ignore-proxy:忽略系统默认设置的代理服务器)

    设置延迟和超时以及重试次数(--delay设置数据包请求速度,--timeout设置数据包请求等待响应的时间,--retries设置重试次数)

 

4.设置随机化参数(--randomize id举例,默认情况下自动随机url参数中的id等参数)

 

   设置日志过滤目标(--scope与-l参数配合使用,需要学习python正则表达式,--skip-urlencode(不进url加密,因为默写中文和特殊符号会进行url加密,而服务端不遵循这种规则,用此参数进行避免))

 

5.  设置忽略401(--ignore-401,登陆网站需要授权时,此参数可以绕过登陆继续探测)

 

     设置HTTP协议私钥(--auth-file)

     设置安全模式(避免在多次请求失败后销毁会话,一般在盲注时发生中断,--safe-url,--safe-post,--safe-req(单条http请求文本),--safe-freq多条)

     设置忽略URL编码(--skip-urlencode)

 

6.优化sqlmap探测性能 (-o,打开所有优化性能开关)

 

   设置持久HTTP连接(--keep-alive加快探测速度)

   设置不接受HTTP Body(--null-connection,为了检索没有body响应的内容,加快探测速度)

   设置多线程(--thread,默认为1请求,最大为10请求,)

   设置预测输出(--predict-output与thread参数不兼容,)

 

7. sqlmap注入参数

  (-p指定参数,--skip:忽略探测具体的参数。例如:--skip"user-agent,referer")
    (--param-exclude:忽略包含具体内容的参数。例如:--param-exclude="token|session"不对包含token或者session的参数进行探测)
    (--skip-static:忽略非动态参数)*:自定义注入位置

 

   (--dbms:指定探测的数据库系统,--os:指定探测的计算机的操作系统,--no-cast:关闭负载转换机制,--no-escape:关闭字符转义机制)

    (强制设置无效值替换:--invaild-biunum,--invaild-logical,invalid-string,使原始参数值无效,如id=999999,id= 1 and 18=19, id =kndwew)

       (自定义注入负载位置:--prefix 设置pyload前缀,--suffix 设置pyload后缀)

8.  sqlmap设置具体SQL注入技术(--technique B,E,--union-cols 12-18:指定union列数)


   sqlmap设置UNION字符,(--union-char:将默认的null替换为自定义的字符)


9. 设置union查询的表:union-from 表名

    设置DNS攻击(--dns-domain “dns服务器”)

   设置二次注入--second-order=S

    设置 -f,-b 搜集数据库指纹信息

10. sqlmap探测当前用户DBA:是否是管理员 --is-dba

     --password 获取用户密码

      SQLMAP枚举DBMS权限: --privileges or --role (角色)


11.sqlmap枚举信息
     
     --exclude-sysdbs:排除系统数据库中的表,搜索用户创建的表 ,--schema,枚举系统数据库数目,类型表以及列信息
     -dbs,--tables,--colunms,-D,-T,-C
     -a or --all 探测所有信息,耗时较长

   sqlmap读取文件:--file-read,

   sqlmap写入文件:--file-write=“” 读取本地文件(自己写好的shell),--file-dest=“f:\\”讲读取的文件写入到远程绝对路径(将你的shell文件传到指定的远程路径目录中)

12.sqlmap执行系统命令 (先上传马,再使用--os-shell连接)

    结合Metasploit --os-pwn

    sqlmap注册表操作:--reg-read,--reg-add,--ref-del,--reg-key,--reg-value,--reg-data,--reg-type


13.sqlmap通用参数

    -s:加载sqlite文件进行未完成的探测

   -t: HTTP流量记录 --t /root/Desktop/1.txt

   --os-cmd=“ipconfig”执行cmd命令

  sqlmap设置盲注字符集  --charset=“0123456789abcdef”

 sqlmap爬取URL :(--crawl=3,爬取深度为3,可以通过爬取整个网站可能存在注入的url,实现自动化注入,--crawl-exclude 排除指定的字符串)

  sqlmap在CSV输出中使用的分隔字符: --csv-del=“;”

  sqlmap设置输出格式:--dump-format=“html,csv,。。”

  sqlmap探测之前检测Internet连接:--check-internet

  sqlmap解析和测试表单的输入字段 --forms,搭配--crawl

  sqlmap设置预计完成时间:--eta,显示完成注入输出的预计时间

  sqlmap刷新会话文件:--flush-session

   sqlmap忽略会话中存储的结果:--fresh-queries,感觉类似--flush-session

   sqlmap使用Hex函数检索数据:--hex

   sqlmap设定自定义输出路径:--output-dir=/tmp

   sqlmap从响应页面解析错误:--parse-errors ,保存sqlmap配置文件:--save

   sqlmap强制设置DBMS编码:--encoding=“gbk”

   sqlmap储存HTTP流量到HAR :--har=“”

   sqlmap筛选具体playload:--test-filter=“row”

   sqlmap过滤具体playload: --tset-skip=“bnchmark”

14. sqlmap杂项参数
 
  -z:将参数简写,如 -z ban(banner),bat(batch)

  --alert=“dir”:当发现sql注入时,运行主机系统命令

  --beep:当发现sql注入时,发出声音哔哔    

  --cleanup 清除DBMS udf创建的数据表,清除痕迹

  --dependencies:显示依赖项

  --disable-coloring :关闭高亮显示

  --moblie 使用手机端User-Agent

  --offline:使用session,不进行联网探测

  --purge-ouput:清除output目录下文件

  --skip-waf:绕过waf

  --sqlmap-shell :使用sqlmap-shell端,无需在使用sqlmap

  --tmp-dir=TMPDIR:指定本地目录用来存储文件

  --web-root=WEBROOT 指定站点根目录

  --wizard:使用向导式

  ----answer=ANSEWERS 设置问题答案,在跳转403页面时,或者是否退出探测时,可以设置NOR
YES

  --gpage 设置goole dork的页码数

  --smart:智能探测,当存在大量url时,快速查找可能存在的注入

  15.Tamper脚本使用

   tamper的常量文件,
一般:tamper=apostrophemask,apostrophenullencode,base64encode,between,chardoubleencode,

charencode,charunicodeencode,equaltolike,greatest,ifnull2ifisnull,multiplespaces,percentage,randomcase,

space2comment,space2plus,space2randomblank,unionalltounion,unmagicquotes

MYSQL:
tamper=between,bluecoat,charencode,charunicodeencode,concat2concatws,equaltolike,greatest,

halfversionedmorekeywords,ifnull2ifisnull,modsecurityversioned,modsecurityzeroversioned,

multiplespaces,percentage,randomcase,space2comment,space2hash,space2morehash,space2mysqldash,

space2plus,space2randomblank,unionalltounion,unmagicquotes,versionedkeywords,versionedmorekeywords,

xforwardedfor

 

推荐阅读