以sqli-labs_09 为例子,通过延时注入,获取数据库版本号。
无论我们怎样变化,或者改变闭合,都无法是页面做出不同的回显,我们有理由相信他为一个静态页面,当然,作为一个练习,这个肯定是有漏洞的,我们可以通过页面相应的时间来做出判断,我们可以通过sleep()函数,来使页面进行延迟响应
我们对页面进行了延时,导致页面的响应时间比正常情况下都要慢五秒钟,我们可以通过对响应时间的长短,来判断真假,要判断真假,就要用到我们的if函数
if(;;)第一个字段为判读语句,第二个字段为判断为真时执行的语句,第三个字段为判断为假时执行的语句
好,这下我们就可通过页面响应时间的长短老判断我们想要判断的东西
?id=1' and if(length((select version()))>5,sleep(5),1) --+
我们通过延时判断的出数据库的版本号长度位5位
通常来说,版本号都是由数字和.所组成的,所以我们通过ASCII来判断具体的数值
?id=1' and if(ascii(substr((select version()),1,1))>55,sleep(5),1) --+
第一个
我们可知第一个字符ASCII为53,即5
第二个
我们可知第一个字符ASCII为46,即.
第三个
我们可知第一个字符ASCII为53,即5
第四个
我们可知第一个字符ASCII为46,即.
第五个
我们可知第一个字符ASCII为52,即4
第六个
我们可知第一个字符ASCII为55,即7
综上所述,我们将所有的字符连起来就是我们想要的数据库版本包,即5.5.47