web题目实操 5(备份文件和关于MD5($pass,true)注入的学习)

news2024/11/20 10:27:16

1.[ACTF2020 新生赛]BackupFile

(1)打开页面后根据提示是备份文件

(2)查看源码发现啥都没有

(3)这里啊直接用工具扫描,可以扫描到一个文件名为:/index.php.bak的文件

(4)然后访问这个连接,然后把备份文件下载下来然后访问这个连接

(5)发现是代码审计,记事本打开查看它的php文本

(6)在PHP中:
          = = 为弱相等,即当整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123admin456进行= =比较时。则b只会截取前面的整数部分。即b转化成123。
所以,这里的a = = b是返回True。
所以这里我们只需要提供一个参数?key=123就可以拿到flag了

2.[RoarCTF 2019]Easy Calc

(1)打开 环境后显示一个计算的页面(2)发现有一个calc.php文件,并且提示设置了waf
先尝试访问calc.php(3)打开calc.php文件,发现是它之下的另一个源码  它的意思应该是用get方式传参赋值给num,并且使用正则表达式进行了过滤,只要能绕过过滤,就可以通过eval进行任意php语句

(4)尝试直接?num=phpinfo()

禁止访问,应该是waf起了作用,根据大佬们的wp知道可以通过在num前加一个空格进行绕过
原理:php解析规则:当php进行解析时,如果变量名前面有空格,php会自动去掉前面的空格再进行解析,假如waf不允许num变量接收字母,那么使用 num就可以,而php解析时就会自动把空格去掉

(5)尝试? num=phpinfo()

(6)使用scandir查看目录中的内容,找到存有flag的文件

          ? num=var_dump(scandir(chr(47)))

var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

(7)发现貌似flag文件,直接用相同方式访问,打开即可得到flag

3.[极客大挑战 2019]BuyFlag

(1)打开环境后如下(2)浅看了一眼啥也没有的样子,直接看看源代码,貌似也不是那么有用

(3)再次回来发现右上角有菜单,点进去看到它简述了flag获取  中文意思就是:如果你想要买这个flag:你必须是来自CUIT的学生;你必须输入正确的密码

(4)再看看这里的源码  

 阅读源代码可以得出:
        变量password使用POST的传参方式进行传参,不难看出来,只要$password == 404为真,那么,就可以绕过。函数is_numeric()判断其中的参数是数字还是其他,如果是数字则判断为真,否则为假。这里我选择传入的参数为404a

(5)这里我直接用hackbar传个参

(6)然后用BP抓包

(7)看了一下抓包情况,关于用户的提示只有在cookie:user=0,那我们将其换为1试试

(8)可以看到提示——说我们的身份及密码正确,黑客,买flag,那我们再根据提示,支付money,使用post传参password=404a&money=100000000

(9)然后他它提示说长度太长了,那就换个短点的试试

(10)然后它又说我们的money不够

查看一下php版本,看看有没有啥可以利用的点

(11).可以看到PHP的版本为:PHP/5.3.3,可以利用函数strcmp(),使用数组绕过password=404a&money[]=1000  然后成功拿到flag

4.[BJDCTF2020]Easy MD5

(1)打开环境后是一个提交页面,尝试了各种数据提交,发现啥有用的信息都没有,(2)看看源码也没有啥有用信息

(3)决定抓包看看

(4)得到有用信息

Hint: select * from 'admin' where password=md5($pass,true)

可知,数据再存入数据库之前使用了md5加密

我们在输入框中提交ffifdyop,会出现如下页面:

(5)这里使用:科学计数法(0e绕过)(绕过思路2)的方法绕过

构造payload:

http://3b2544a9-a3eb-4b09-87a8-f28609d74d0d.node4.buuoj.cn:81/levels91.php?a=QNKCDZO&&b=240610708

(6)最后是一个需要post提交的强比较,使用数组绕过  param1[]=2&param2[]=3

绕过之后即可解出flag

原理:

ffifdyop经过md5加密后会变成276f722736c95d99e921722cf9ed621c

再转换为字符串:'or'6(乱码)  即  'or'66�]��!r,��b

预想,数据库查询语句应为:

SELECT * FROM xxx WHERE username = 'admin' and password = ".md5($password,true)."
 而在mysql中,在用作布尔型判断时,以数字开头的字符串会被当成整型,不过由于是字符串,因此后面必须要有单引号括起来的,比如:‘xxx’or’6xxxxxx’,就相当于’xxx’or 6,就相当于 'xxx’or true,所以返回值是true。

所以,此时查询语句就会变成:

select * from xxx where user='amdin' and password=''or'6xxxx'
也就是,password=' ' or true=true

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

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

相关文章

使用Docker部署Jupyter Notebook并结合花生壳的内网穿透实现远程访问(详文)

一、前言 本文主要介绍如何利用宝塔面板中的Docker 3.9.3管理器,使用Docker本地部署Jupyter Notebook,并结合花生壳内网穿透工具实现任意浏览器公网远程访问Jupyter登录界面。 安装完成后在宝塔面板中图例 Jupyter Notebook是一个交互式笔记本,支持运行40多种编程语言。…

D - Grid and Magnet

思路&#xff1a;标记一下磁铁周围的空地即可&#xff0c;每个连通块一定可以互相到达&#xff0c;我们dfs算出联通块的大小再加上该连通块周围的可达磁场区域即可。 代码&#xff1a; #include <bits/stdc.h> using namespace std; using ll long long; using ld lon…

【Godot4.2】自定义Todo清单类 - myTodoList

概述 在写myList类的时候&#xff0c;就想到可以写一个类似的Todo清单类。 基础思路 本质还是在内部维护一个数组&#xff0c;在其基础上进行增删改查操作的封装为了方便存储数据&#xff0c;编写一个自定义内置类TodoItem&#xff0c;内部数组就变成了Array[TodoItem]类型的…

66、二分-搜索旋转排序数组

思路&#xff1a; 不断二分&#xff0c;首先判断左侧有序还是右侧有序&#xff0c;如果左侧有序那么就在左侧寻找&#xff0c;如果右侧有序那就在右侧寻找。假设左侧有序&#xff0c;那就判断目标值在不在左侧&#xff0c;如果在左侧继续左侧二分。如果不在左侧&#xff0c;那么…

Redis可视化工具RedisInsight

下载地址&#xff1a;RedisInsight - The Best Redis GUIRedisInsight provides an intuitive and efficient graphical interface for Redis, allowing you to interact with your databases and manage your data.https://redis.com/redis-enterprise/redis-insight/#insight…

STM32通过ESP8266连接阿里云 详细步骤

一、烧录MQTT固件 ESP8266出厂时&#xff0c;默认是&#xff1a;AT固件。连接阿里云需要&#xff1a;MQTT固件。 因此&#xff0c;我们需要给8266重新烧录 MQTT固件。 针对“魔女开发板&#xff0c;ESP8266模块烧录MQTT固件&#xff0c;图解教程如下&#xff1a; ESP8266 烧录 …

Spring Task学习记录

介绍 cron表达式 cron表达式在线生成器 链接: link 入门案例 Component Slf4j public class MyTask {/*** 定时任务 每隔5秒触发1次*/Scheduled(cron "0/5 * * * * ?")public void executeTask(){log.info("定时任务开始执行&#xff1a;{}", new Date…

什么是外汇爆仓?怎样避免?

外汇爆仓是指当交易者的保证金低于特定比例时&#xff0c;经纪商会自动平仓一个或所有的开仓头寸。避免外汇爆仓的关键在于合理配置资金、设置止损、适度交易、顺势而为以及调整心态。 外汇爆仓是外汇交易中的一种风险控制机制。当交易者的账户净值低于已用保证金的特定比例时&…

C语言 基本数据类型及大小

一、基本数据类型 1.整型int 整型的关键字是int&#xff0c;定义一个整型变量时&#xff0c;只需要用int来修饰即可。也分为短整型和长整型。 2.浮点型 浮点型又分单精度浮点型float和双精度浮点型double。 3.字符型char 前面的整型和浮点型都是用于存放数字。字符型&…

考研数学|跟完武忠祥基础,刷题还是看张宇基础❓

听完武忠祥老师的课程&#xff0c;当然是趁热打铁&#xff0c;多练题&#xff0c;巩固做题技巧 首先&#xff0c;武忠祥老师和张宇老师在基础阶段的课程质量基本是差不多的&#xff0c;如果你听完武忠祥老师的课程&#xff0c;并且基本都听懂了&#xff0c;真的没有必要再去浪…

Autosar MCAL-RH850P1HC Fls配置

文章目录 FlsFlsGeneralFlsAcLoadOnJobStartFlsBaseAddressFlsBlankCheckApiFlsCancelApiFlsCompareApiFlsCopySupportedFlsCriticalSectionProtectionFlsDevErrorDetectFlsDeviceNameFlsDriverIndexFlsFaciEccCheckFlsGetJobResultApiFlsGetStatusApiFlsLoopCountFlsReadImmed…

大型语言模型高效推理综述

论文地址&#xff1a;2404.14294.pdf (arxiv.org) 大型语言模型&#xff08;LLMs&#xff09;由于在各种任务中的卓越表现而受到广泛关注。然而&#xff0c;LLM推理的大量计算和内存需求给资源受限的部署场景带来了挑战。该领域的努力已经朝着开发旨在提高LLM推理效率的技术方…

libVLC 制作一款精美的播放器

1.简介 本文将简单介绍使用libVLC制作一款精美的播放器。 开发环境:Visual Studio + Qt插件。 Qt版本:Qt5.9。 libVLC版本:3.0.20。 以下是运行界面效果图:截取其中几张。 右键菜单,功能还是比较齐全。 2.ui界面构成 接下来简单介绍一下ui界面构成。 主界面由播放树…

【Linux内核驱动基础】从零开始手搓一个从上层应用到底层驱动的IO口代码

【Linux内核驱动基础】从零开始手搓一个从上层应用到底层驱动的IO口控制代码 文章目录 【Linux内核驱动基础】从零开始手搓一个从上层应用到底层驱动的IO口控制代码一、驱动基础认知1.为什么要学会写驱动2.文件名与设备号3.open函数从上层打通到底层硬件的详细过程 二、基于内核…

22年全国职业技能大赛——Web Proxy配置(web 代理)

前言&#xff1a;原文在我的博客网站中&#xff0c;持续更新数通、系统方面的知识&#xff0c;欢迎来访&#xff01; 系统服务&#xff08;22年国赛&#xff09;—— web Proxy服务&#xff08;web代理&#xff09;https://myweb.myskillstree.cn/114.html 目录 RouterSrv …

解决问题:pos_label=1 is not a valid label. It should be one of [‘0‘, ‘1‘]

文章目录 一、现象二、解决方案 一、现象 ...... model.fit(X_train, y_train) y_pred model.predict(X_test) recall recall_score(y_test, y_pred) precision precision_score(y_test, y_pred) ......执行语句到**“recall recall_score(y_test, y_pred)”**这里发现报错…

【SpringBoot整合系列】SpringBoot整合Redis[附redis工具类源码]

目录 SpringBoot整合Redis1.下载和安装Redis2.新建工程&#xff0c;导入依赖3.添加配置4.先来几个基本的示例测试代码输出结果用redis客户端查看一下存储内容 5.封装redis工具类RedisKeyUtilRedisStringUtilRedisHashUtilRedisListUtilRedisSetUtilRedisZsetUtil备注 6.测试通用…

Pytorch 之torch.nn初探 卷积--Convolution Layers

任务描述 本关任务&#xff1a; 本关提供了一个Variable 类型的变量input&#xff0c;按照要求创建一 Conv1d变量conv&#xff0c;对input应用卷积操作并赋值给变量 output&#xff0c;并输出output 的大小。 相关知识 卷积的本质就是用卷积核的参数来提取原始数据的特征&a…

成都金沙国际学校招生介绍

成都金沙国际学校于2017年9月正式开学&#xff0c;涵盖了初中、高中学段&#xff0c;致力于为川南地区培育更多更优秀的国际化人才&#xff0c;是一所真正意义上的外国语教育窗口学校。校园环境优美&#xff0c;教学设施全市一流&#xff0c;师资团队精良&#xff0c;游学、留学…

绘制签章 乱码问题 (踩坑日记)

签章汉字乱码问题 原因:我们在docker上因为没有汉字字体需要我们手动把文件打进去 注意点:如果开启了打包过滤加上字体不过滤 绘制签章转载