好吧,又是一道违背我思想的题目,哦不哦不不对,是本人操作太傻了

首先进入主页面



没有发现什么奇怪的东西,查看源代码,搜索.php



可以看到有一个pay.php,访问查看





给我们了一些提示

FLAG NEED YOUR 100000000 MONEY
FLAG需要100000000美元 If you want to buy the FLAG:
You must be a student from CUIT!!!
You must be answer the correct password!!!
如果想要买FLAG
你必须是CUIT的学生
你的密码必须正确 Only Cuit's students can buy the FLAG
只有Cuit的学生才可以购买FLAG

所以有三个条件,我们必须是Cuit的学生,还有密码必须正确,还有一个提示是购买flag需要100000000元,暂时没什么用

继续查看源代码,查看是否有新的发现



在注释中又给我们了提示,必须使用POST方法提交money、password参数才可以得到flag

<!--
~~~post money and password~~~
if (isset($_POST['password'])) {
$password = $_POST['password'];
if (is_numeric($password)) {
echo "password can't be number</br>";
}elseif ($password == 404) {
echo "Password Right!</br>";
}
}
-->

这段代码给我们的是password right密码正确的条件,首先需要密码不是一个数字,然后接着判断密码必须等于404,不过这里使用的是==

两个等于号,由于PHP是弱类型语言,在判断中123 == 123abc这种情况

打开burpsuite抓包尝试提交password



这里忘记了,只有Cuit的学生才可以购买flag,仔细观察请求头,其中有一个cookie中,值为0,尝试修改为1



提示已经是cuit的学生,但是提示并没有输入密码,这里我寻思也提交了,咋回事,想了半天,回头观察绕了好久,必须是POST方法提交

这里我真的是啥了,我以为我提交的是POST,但是burpsuite请求头消息显示的是GFT,原来是这里出错,笑死我自己了。

这里修改为POST



修改后,终于提示消息变得不一样,让购买flag,输入给我们的钱100000000,尝试获取flag



又提示数字太长了,是我钱给的太多吗?输入字符串英文猜测



又说我给的太少了???所以这里该怎么办?我就没有了办法,经过查阅大佬的文章,发现strcmp()函数的一个漏洞

strcmp函数,在第一个字符串大于第二个字符串时,返回>0,在第二个字符串大于第一个字符串时<0,如果相等返回0

strcmp()在php5.3之前在比较数据类型不匹配,就是数据类型不一样的时候,也会返回0。

所以这里我们传入一个数组,数据类型就不一样了,就会返回flag,就是这样



oh!yeah我的flag终于到手了,呜呜呜!

收获

php弱类型语言,如果不使用三个`===`号,会进行模糊匹配出现`123 == 123zzk`的状况
strcmp()函数比较时,如果数据类型不匹配,则会返回0
出现用户相关认证信息,先看一下请求头`Cookie`
还有下次`burpsuite`抓包先看一下请求类型,不然真的回谢掉!

[极客大挑战 2019]BuyFlag 1的更多相关文章

  1. [原题复现][极客大挑战 2019]BuyFlag

    简介  原题复现:[极客大挑战 2019]BuyFlag  考察知识点:php函数特性(is_numeric().strcmp函数())  线上平台:https://buuoj.cn(北京联合大学公开 ...

  2. [极客大挑战 2019]BuyFlag

    0x00 知识点 php中的strcmp漏洞 说明: int strcmp ( string $str1 , string $str2 ) 参数 str1第一个字符串.str2第二个字符串.如果 st ...

  3. BUUOJ [极客大挑战 2019]Secret File

    [极客大挑战 2019]Secret File 0X01考点 php的file伪协议读取文件 ?file=php://filter/convert.base64-encode/resource= 0X ...

  4. BUUCTF-[极客大挑战 2019]BuyFlag

    BUUCTF-[极客大挑战 2019]BuyFlag 进去一看,哦原来是某安全团队的招募启示. 但没看到什么有用的信息,看到了Q群号,我还以为是一道社工题(=_=) 来到pay.php 看一下源码,发 ...

  5. BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf)+[极客大挑战 2019]LoveSQL(联合注入)

    BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf) 记一道联合注入的题,这道题存在过滤. 经过手工的测试,网站会检验用户名和密码是否都存在,如果在用户名处插入注入语句,语句后面 ...

  6. 极客大挑战2019 http

    极客大挑战 http referer 请求头 xff 1.查看源码,发现secret.php 2.提示要把来源改成Sycsecret.buuoj.cn,抓包,添加Referer Referer:htt ...

  7. [BUUOJ记录] [极客大挑战 2019]RCE ME

    前面考察取反或者异或绕过,后面读Flag那里我用脏方法过了,没看出来考察啥 进入题目给出源码: <?php error_reporting(0); if(isset($_GET['code']) ...

  8. buuctf-web-[极客大挑战 2019]BuyFlag 1

    打开网页,然后发现menu中有个buyflag的连接,点进去 如果你想买这个flag ,你必须是来自CUIT的一名学生,还必须回答正确的密码.简单了解,我们查看源码,发现思路 POST方式传入两个参数 ...

  9. [极客大挑战 2019]FinalSQL

    0x00 知识点 盲注 0x01 解题 根据题目提示盲注,随便点几下找到注入点 发现我们输入^符号成功跳转页面,证明存在注入 1^(ord(substr((select(group_concat(sc ...

  10. BUUCTF [极客大挑战 2019]Not Bad

    总的来说这是一个64位orw的题 开头先在主函数里分配了一个很大的空间 1 __int64 __fastcall main(int a1, char **a2, char **a3) 2 { 3 mm ...

随机推荐

  1. maven本地安装jar包

    mvn install:install-file -Dfile=cs-pay-client-2.0.0.jar -DgroupId=com.test.pay -DartifactId=gh-epay- ...

  2. 微信防红页面JS代码

    将Js代码复制粘贴到你网站所需要的页面,保存即可,完美实现防红,具体未测试,如果需要可以自己测试效果. <meta charset="utf-8″> <meta name= ...

  3. UnityAndroid 获取根目录文件

    1. 在Unity打包时获取SD权限 2. Android根目录为 "/storage/emulated/0"; 代码: if (Directory.Exists("/s ...

  4. Mac技术服务, 感谢 点赞打赏!

    Mac技术服务 首先,非常感谢大家对我的支持和鼓励,我会继续给大家提供更好更优秀的服务 如果需要单独解决Mac问题,您也可以选择付费服务,感谢大家的理解与支持! * 普通问题/软件安装:10元--10 ...

  5. Software--电商平台--Module 5 Order & Payment

    2018-01-10  14:11:30 电商平台 订购和支付 模块 一: 整体示意图 二:构建一个框架来处理 领域模型内部发生的事情--领域事件 IDomainEvent 标识模型中的 Domain ...

  6. DDR内存256M16、512M8含义

    256M16,后面的16是代表数据位数,也可以认为是16个bit.一般一个Byte是8个bit.例如256M4的容量为256*16 bit = 4096Mb = 512MB所以 256M16和 512 ...

  7. 检测sqlserver数据库是否能远程连通

    建立一个.udl的文件夹,双击打开.输入相关的连接字符串点击测试即可.

  8. 你不知道的JavaScript--作用域

                                                              用简单的代码 展示代码的魅力 1.在浏览器里,在全局范围内,this等价于windo ...

  9. mysq 报错, sql语句在数据库里运行正常, 在内网测试正常,打包放外网的时候就报下面错误

    sql语句为: select t1.day as day , any_value(IFNULL(t2.avgNum,0)) as avgNum, any_value(IFNULL(t2.maxNum, ...

  10. 【APT】Bitter APT组织针对巴基斯坦航空综合部门攻击活动分析

    前言 蔓灵花(Bitter)是一个被广泛认为来自印度的APT组织,该组织长期针对我国及巴基斯坦的政府.军工.电力.核等部门发动网络攻击,窃取敏感数据,具有较强的政治背景.本次分享一个蔓灵花组织针对巴基 ...