实习日记 学习SQL盲注与数据库查询
今天在实习中,我开始了解和探索SQL盲注攻击的技术。SQL注入是一种常见的网络安全漏洞,通过巧妙地构造SQL查询,攻击者可以获取数据库中的信息,甚至执行未授权的操作。我学习了基于布尔的盲注攻击,这是一种通过观察系统在不同条件下的响应来推断数据库内容的方法。
确定注入点与类型
在开始之前,我首先需要找到网站或应用程序中的潜在注入点。通过分析输入字段,我能够识别出可能受到攻击的地方,并验证是否容易受到SQL注入的影响。
判断数据库名称长度
利用布尔盲注的技术,我开始逐步验证数据库名称的长度。通过构造SQL语句,我可以观察系统对于不同长度输入的响应,从而逐步缩小数据库名称的长度范围。
使用Navicat连接SQL数据库
我使用Navicat这样的数据库管理工具来连接到目标数据库。Navicat提供了一个直观和强大的界面,使我能够轻松地执行SQL查询和观察结果。通过Navicat,我可以更有效地进行数据库探索和数据提取。
使用MID函数获取数据库名称
在确认了数据库名称长度后,我利用SQL中的MID函数来提取数据库名称的具体字符。MID函数允许我从字符串中选择指定位置和长度的子串,这对于逐个字符地提取数据库名称非常有用。
SQL注入(blind):
试user id:1-6
1-5显示:User ID exists in the database.
6显示:User ID is MISSING from the database.
说明存在sql注入漏洞,且闭合为单引号。
猜测后端语句为:
SELECT first_name, last_name FROM users WHERE user_id = '参数';
判断数据库名称长度
使用 length函数 判断数据库名称长度
从1试到4,发现4是正确的(当数字比较大时,可以使用二分法)
可以利用SQL MID函数得出数据库名