Forms

原题链接

http://ctf5.shiyanbar.com/10/main.php

Form 其实是个提示,代表html表单
F12 查看源码,发现

<input name="showsource" value="0" type="hidden">

只要把hidden删除,就可以看到又多出了一个,输入框,容易知道输入1提交以后得到源码。

提交-19827747736161128312837161661727773716166727272616149001823847

天网管理系统

地址:http://ctf5.shiyanbar.com/10/web1/

查看源码 发现有提示:

<!-- $test=$_GET['username']; $test=md5($test); if($test=='0') -->

php弱类型问题,md5加密等于0

ps:

== :  比较运算符号  不会检查条件式的表达式的类型

===:  恒等计算符 , 同时检查表达式的值与类型。(会检查表达式类型,如bool)

php中的弱类型比较:

intval():变量转成整数类型

  如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值。

  如果字符串第一个是‘-',则从第二个开始算起。 
  如果参数是浮点数,则返回他取整之后的值。 
  当然intval()返回的值在一个4字节所能表示的范围之内(-2147483648~2147483647),对于超过这个范围的值将用边界值代替。

当php进行一些数学计算的时候,当有一个对比参数是整数的时候,会把另外一个参数强制转换为整数。

1 var_dump(0 == '0'); // true 2 var_dump(0 == 'abcdefg'); // true 3 var_dump(0 === 'abcdefg'); // false 4 var_dump(1 == '1abcdef'); // true

* bool类型的true跟任意字符串可以弱类型相等

这道题考的也是php弱类型

<!-- $test=$_GET['username']; $test=md5($test); if($test=='0') -->

这里说明要为用户名传入一个字符串,并且它经过md5加密后要等于0。

PHP会把类数值数据(如含有数字的字符串等)转换成数值处理,== 运算符就是其中之一。在使用 == 运算符对两个字符串进行松散比较时,PHP会把类数值的字符串转换为数值进行比较,如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值。比如: '3' == '3ascasd'结果为true。

因此只要找到一个字串加密后第一个字符为0即可,这里提供几个:240610708,aabg7XSs,aabC9RqS

/user.php?fame=hjkleffifer  访问此地址

 $unserialize_str = $_POST['password'];$data_unserialize = unserialize($unserialize_str);if ($data_unserialize['user'] == '???' && $data_unserialize['pass'] == '???') {print_r($flag);}

码意思是把post提交的password值经过"反序列化"得到一个数组,要求数组里的user和pass都等于某个值时就打印flag。

但是我们不知道两处???到底是什么,因此无法考虑用php函数构造这样的值。

提示: "伟大的科学家php方言道:成也布尔,败也布尔" ,bool类型的true跟任意字符串可以弱类型相等。因此我们可以构造bool类型的序列化数据 ,无论比较的值是什么,结果都为true。(a代表array,s代表string,b代表bool,而数字代表个数/长度)

构造password值为:

a:2:{s:4:"user";b:1;s:4:"pass";b:1;}

在密码栏中提交构造的值,即可获取flag: ctf{dwduwkhduw5465}

转载于:https://www.cnblogs.com/-qing-/p/11080825.html

实验吧之【Forms、天网管理系统】相关推荐

  1. c语言实验报告管理系统,C语言实验报告-学生信息资管理系统.doc

    C语言实验报告-学生信息资管理系统 C语言实验报告 院系: 数学与计算科学学院 班级: 信息与计算科学2班 姓名: 学号: 2011年12月21日 一.问题描述 编写一个信息管理系统,包括姓名.性别. ...

  2. 第12章实验1:学生成绩管理系统V5.0(c语言)

    第12章实验1:学生成绩管理系统V5.0 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).参考学生成绩管理系统V4.0,定义结构体类型,用结构体数组作函 ...

  3. 第12章实验1:学生成绩管理系统V5.0

    第12章实验1:学生成绩管理系统V5.0 第12章实验1:学生成绩管理系统V5.0 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).参考学生成绩管理系统 ...

  4. 第11章实验1:学生成绩管理系统V4.0

    第11章实验1:学生成绩管理系统V4.0 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).参考学生成绩管理系统V3.0,用二维数组作函数参数编程实现如下 ...

  5. 第11章实验1:学生成绩管理系统V4.0(C语言)

    第11章实验1:学生成绩管理系统V4.0 (前方空降提示:由于题目很长很长很长,代码在最后,翻到底才有哦.) 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输 ...

  6. 武汉理工大学数据结构综合实验——图与景区信息管理系统实践

    文章目录 实验目的 主要仪器设备及耗材 一.实验要求 二.分析与设计 1.数据结构的设计 2.核心算法设计 改进DFS算法 搜索最短路径 Prim算法(构建最小生成树) 3.测试用例设计 4.测试结果 ...

  7. 第8章实验1:学生成绩管理系统V1.0

    第8章实验1:学生成绩管理系统V1.0 某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程实现如下学生成绩管理: (1)录入每个学生的学号和考试成绩: (2)计算 ...

  8. 「节能学院」苏州高新区实验中学某校区能耗管理系统的研究应用

    摘要 随着社会生活水平的提升和经济繁荣发展,人民群众对能量需求逐步增加.因而引起能源危机日益严重.如何做到办事建筑实时了解.分析.控制能耗,成为迫切需要解决的难题.传统的用电量只能在每月倘冬季期间进行 ...

  9. java商品信息管理实验报告_java学生信息管理系统实验报告

    java学生信息管理系统实验报告 JAVA 程序设计实验报告学 号:姓 名: 班 级: 实验.Java 课程设计--------学生信息管理系统一.实验目的 1. 掌握 Java 基本语法2. 理解面 ...

最新文章

  1. opencv 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突
  2. Mybatis分页插件更新
  3. [体感游戏]关于体感游戏的一些思考(三) --- 射击
  4. solaris 11 vim的安装【转】
  5. 为什么大学打印店老板多是湖南人?
  6. TensorFlow 教程 --新手入门--1.2 下载安装
  7. 大神齐聚,算法大赛复赛晋级名单揭晓!
  8. SpringBoot + Vue 开发前后端分离的旅游管理系统
  9. java 运行 依赖_java – 运行时中的依赖项确定
  10. CentOS 7设置开机启动服务,添加自定义系统服务
  11. 常用的 7 款 MySQL 客户端工具,你值得拥有
  12. 运筹优化算法工程师面试汇总
  13. js小学生图片_小学生画报设计图片
  14. 线上问题:nginx日志打印时间问题
  15. 武大女硕士面试被拒,改简历冒充本科生找工作的感想(原创)
  16. 思科C9500交换机介绍及光模块解决方案
  17. 红帽子linux9百度云,红帽 Red Hat Linux相关产品iso镜像下载【百度云】
  18. MS5837-30BA 水深水压传感器简单介绍
  19. 生死看淡,不服就GAN
  20. Lua IDE - x-studio 强大的IDE

热门文章

  1. python 监控内存_使用python写一个监控不同机器的使用内存情况并使用flask出图
  2. java 作业调度_Java使用quartz实现作业调度
  3. 9月26日云栖精选夜读:阿里Java代码规约插件即将全球首发,邀您来发布仪式现场...
  4. cookie封装做免输入登录
  5. proxychains-ng 工作原理分析
  6. HDU 3695 Computer Virus on Planet Pandora (AC自己主动机)
  7. 修改打开方式的程序列表中列出程序的名称
  8. mac安装homebrew_Homebrew简介:在Mac上轻松安装任何东西的简便方法
  9. 教育为什么重要 大数据_为什么开放数据在教育中很重要
  10. (25)Vue.js组件通信—父组件向子组件传值