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}

实验吧之【Forms、天网管理系统】的更多相关文章

  1. 【实验吧】因缺思汀的绕过&&拐弯抹角&&Forms&&天网管理系统

    <?php error_reporting(); if (!isset($_POST['uname']) || !isset($_POST['pwd'])) { echo '<form a ...

  2. 实验吧_密码忘记了(vim编辑器+代码审计)&天网管理系统(php弱比较+反序列化)

    密码忘记了 一开始尝试了各种注入发现都无效,在网页源码中找到了admin 的地址,输入地址栏发现并没有什么有用的信息,随便输个邮箱,网页返回了一个地址 ./step2.php?email=youmai ...

  3. 实验吧CTF天网管理系统

    天网你敢来挑战嘛 格式:ctf{ } 解题链接: http://ctf5.shiyanbar.com/10/web1/ 打开链接后,嗯,光明正大的放出账号密码,肯定是登不进的,查看源代码 看来是和md ...

  4. 实验吧web天网管理系统

    直接查看源码 <!--$test=$_GET['username']>这一行 源码的下面给了我们一些提示:我们输入的username经过md5加密后会赋值给test.当test为0时就会跳 ...

  5. ctf实验吧天网管理系统

    这明显不可能登上的,所以直接看源代码 这里如果不懂得,php中处理哈希值的方式,是只要是0e开头的哈希值,都认为是0,通过输入一个这样的0e开头的字符串,会被php解释成0. 这个可以去在线工具上得到 ...

  6. 【转载】C语言综合实验1—学生信息管理系统

    http://www.cnblogs.com/Anker/archive/2013/05/06/3063436.html 实验题目:学生信息管理系统 实验要求:用户可以选择1-7可以分别进行学生信息的 ...

  7. 实验吧web题(26/26)全writeup!超详细:)

    #简单的SQL注入 http://www.shiyanbar.com/ctf/1875 1)试着在?id=1,没有错误 2)试着?id=1',出错了,有回显,说明有注入点: You have an e ...

  8. 实验吧web解题记录

    自以为sql注入掌握的还是比较系统的,然而,做了这些题之后才发现,大千世界无奇不有,真是各种猥琐的思路...还是要多学习学习姿势跟上节奏 登录一下好吗?? http://ctf5.shiyanbar. ...

  9. 实验吧CTF题库-WEB题(部分)

    看起来有点难 提交admin http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&actio ...

随机推荐

  1. jps虚拟机进程状态工具

    jps(JVM Process Status Tool) jps工具可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine ...

  2. 未能加载文件或程序集“Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=……”

    emmmm~ 这是一个让人烦躁有悲伤的问题~ 背景 我也不知道什么原因,用着用着,正好好的,就突然报了这种问题~ 未能加载文件或程序集“Renci.SshNet, Version=2016.1.0.0 ...

  3. Net基础篇_学习笔记_第九天_数组_三个练习

    练习一: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  4. ASN1编码中的OID

    0.9.2342.19200300.100.1.25, domainComponent1.2.36.68980861.1.1.10, Signet pilot1.2.36.68980861.1.1.1 ...

  5. js 正则表达式:价格的校验

    /*验证单价:包括两位小数*/var priceReg = /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/;var price=$("#price& ...

  6. CentOS在VMware中的安装

    1.启动VMware 2.新建一台虚拟机,选择典型 3.选择稍后安装操作系统 4.选择引导系统为Linux,系统版本为Centos 5.选择安装位置 6.选择最大磁盘容量 7.点击自定义硬件,进行硬件 ...

  7. 由 [SDOI2012]Longge的问题 探讨欧拉函数和莫比乌斯函数的一些性质和关联

    本题题解 题目传送门:https://www.luogu.org/problem/P2303 给定一个整数\(n\),求 \[ \sum_{i=1}^n \gcd(n,i) \] 蒟蒻随便yy了一下搞 ...

  8. [VB.NET Tips]赋值运算千万要注意

    赋值运算符是一个语句,不能在表达式中使用,表达式中的等号表示相等而不是赋值. 上示例: Dim x As Integer Dim y As Object x = 5 y = x = 5 Console ...

  9. Linux初识之VMWare14中配置Centos7桥接网络环境

    1.查看当前初始环境如下:

  10. 挖穿各大SRC的短信轰炸

    今天给大家分享一个短信轰炸绕过的姿势,大疆.百度.腾讯等等src都有用此方法绕过的案例. 给大家看一下 这里就不给大家截图了,在src中提交的截图都没有打码,这里放出来不太方便. 这里就只举出大疆的例 ...