sqlmap中⽂⼿册使⽤教程
【⼯具】sqlmap 中⽂⼿册 使⽤教程
0x01、 基本信息
官⽹
sqlmap: automatic SQL injection and database takeover tool
注⼊类型
基于布尔的盲注:即可以根据返回页⾯判断条件真假的注⼊;
基于时间的盲注:即不能根据页⾯返回内容判断任何信息,⽤条件语句查看时间延迟语句是否执⾏(即页⾯返回时间是否增加)来判断;基于报错注⼊:即页⾯会返回错误信息,或者把注⼊的语句的结果直接返回在页⾯中;
联合查询注⼊:可以使⽤union的情况下的注⼊;
堆查询注⼊:可以同时执⾏多条语句的执⾏时的注⼊。
⽀持的数据库
MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB
0x02、使⽤⽅法
基本流程
爆所有数据库
sqlmap - --dbs
爆表名
sqlmap - -D dvwa --tables
爆字段名
sqlmap - -D dvwa -T users --columns
爆字段内容
sqlmap - -D dvwa -T users -C user,password --dump
Target
-d # 直接连接数据库
-u # ⽬标 URL
-l # 从 Burp 或者 WebScarab 加载⼀个⽇志⽂件
-x # 从远程⽹站地图(sitemap).xml ⽂件加载⽬标
-r # 从⽂件中加载⽬标【重要】
-g # 从 google 结果中加载⽬标
-c # 从配置⽂件(.ini)中加载⽬标
Request
指定如何连接⽬标的 URL
–method=METHOD 定制 http ⽅法 (e.g. PUT)
–data=DATA 通过 POST 发送数据 (e.g. “id=1”)
–param-del=PARA… ⽤特殊字符拆分字符串 (e.g. &)
–cookie=COOKIE 定制 cookie (e.g. “PHPSESSID=a8d127e…”)
–cookie-del=COO… 定制分割 cookie 的字符 (e.g.
–drop-set-cookie 忽略返回包中的 Set-Cookie
–user-agent=AGENT 定制 User-Agent
–random-agent 使⽤随机的 UA
–host=HOST 设置 host 的值
–referer=REFERER 设置 referer 的值
-H HEADER, --hea… 额外的请求头 (e.g. “X-Forwarded-For: 127.0.0.1”)
–headers=HEADERS 额外的请求头,使⽤ \n 来分割 (e.g. “Accept-Language: fr\nETag: 123”)
–auth-type=AUTH… ⾝份认证类型 (Basic, Digest, NTLM or PKI)
–auth-cred=AUTH… HTTP ⾝份凭证 (name:password)
–auth-file=AUTH… 从⽂件中载⼊ PEM 证书⽂件
–ignore-code=IG… 忽略状态码 (e.g. 401)
–ignore-proxy 忽略系统代理
–ignore-redirects 忽略重定向
–ignore-timeouts 忽略超时的链接
–proxy=PROXY 设置⼀个代理
–delay=DELAY 设置两个 HTTP 请求之间的延迟
–timeout=TIMEOUT 设置超时时间 (default 30)
–retries=RETRIES 设置超时重试时间 (default 3)
–randomize=RPARAM 随机改变给定的参数的值
–safe-url=SAFEURL 在测试的时候,频繁的访问某 URL(伪装是真⼈)
–safe-post=SAFE… 在测试的时候,频繁的 POST 数据
–safe-req=SAFER… 从⽂件中加载⼀个安全的 http 请求
–safe-freq=SAFE… 在两次请求中间,加⼊⼀个访问请求
–skip-urlencode 忽略 URL 编码
–csrf-token=CSR… 保留 anti-CSRF token
–csrf-url=CSRFURL 访问⼀个 URL,来获取 anti-CSRF token
–force-ssl 强制使⽤ SSL/HTTPS
–chunked 分块传输 POST 的请求
–hpp 使⽤ http 参数污染
Optimization
有俩不知道咋做到的,有时间抓包看看。。
-o 打开所有优化开关
–predict-output 预测常见的查询输出??
–keep-alive 使⽤⼀个长连接,不中断
–null-connection 在不使⽤实体 HTTP 请求的情况下获取页⾯长度??
–threads=THREADS 最⼤线程数 (default 1)
Injection
-p TESTPARAMETER 指定测试的参数
–skip=SKIP 跳过指定的参数
–skip-static 如果参数是静态的,那么就跳过
–dbms=DBMS 指定后端的数据库类型
–dbms-cred=DBMS… 指定数据库的账号密码 (user:password)
–os=OS 指定后端的操作系统
–no-cast 关闭 payload casting 机制
–no-escape 关闭 string escaping 机制
–prefix=PREFIX 在 payload 上加个前缀
–suffix=SUFFIX 在 payload 上加个后缀
–tamper=TAMPER 使⽤ tamper
Detection
–level=LEVEL 测试级别:2 检测 cookie,3 检测 User-Agent/Referer (1-5, default 1)
–risk=RISK 风险级别:2 会加上⼤量时间盲注测试,3 会加上 OR 类型的布尔盲注 (1-3, default 1) Techniques
–technique=TECH… 注⼊类型 (default “BEUSTQ”,可改成 EU 试试)
–time-sec=TIMESEC 设置时间盲注延迟的时间 (default 5)
–union-cols=UCOLS 指定 union 查询的列数
–dns-domain=DNS… Domain name used for DNS exfiltration attack
B:布尔型盲注
E:报错盲注
U:联合查询注⼊
S:堆查询注⼊
T:时间盲注
Q:内联查询注⼊
Enumeration
这个基本都明⽩
-a, --all Retrieve everything
-b, --banner Retrieve DBMS banner
–current-user Retrieve DBMS current user
–current-db Retrieve DBMS current database
–hostname Retrieve DBMS server hostname
–is-dba Detect if the DBMS current user is DBA
–users Enumerate DBMS users
–passwords Enumerate DBMS users password hashes
–privileges Enumerate DBMS users privileges
–roles Enumerate DBMS users roles
–dbs Enumerate DBMS databases
–tables Enumerate DBMS database tables
–columns Enumerate DBMS database table columns
–schema Enumerate DBMS schema
–count Retrieve number of entries for table(s)
–dump Dump DBMS database table entries
–dump-all Dump all DBMS databases tables entries
–search Search column(s), table(s) and/or database name(s)
–comments Check for DBMS comments during enumeration
–statements Retrieve SQL statements being run on DBMS
-
D DB DBMS database to enumerate
-T TBL DBMS database table(s) to enumerate
-C COL DBMS database table column(s) to enumerate
-X EXCLUDE DBMS database identifier(s) to not enumerate
-U USER DBMS user to enumerate
Brute force
以下情况,⽆法直接读取表名
mysql 版本 < 5.0,没有
Access 的数据库,系统表 MSysObjects 不可读
其他权限问题
这时候就需要采⽤字典爆破了。
–common-tables 爆破表名
–common-columns 爆列名
–common-files 爆⽂件
File system access
–file-read=FILE… 读⽂件
–file-write=FIL… 写⽂件
php手册官方中文版tamper
-v 参数
0:只显⽰Python的回溯,错误和关键消息。
1:显⽰信息和警告消息。
2:显⽰调试消息。
3:有效载荷注⼊。
4:显⽰HTTP请求。
5:显⽰HTTP响应头。
6:显⽰HTTP响应页⾯的内容
0x03、⽂件相关
修改最⼤线程数
cd /usr/local/Cellar/sqlmap/1.1.7/libexec/lib/core
open settings.py
然后查 MAX_NUMBER_OF_THREADS,修改成⾃⼰想要的值即可。⽬录
tamper 脚本位置
/Users/v/sqlmap/tamper
random-agent
/Users/v/sqlmap/data/
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论