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

简介

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

 考察知识点:php函数特性(is_numeric()、strcmp函数())

 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台 特别感谢!) 榆林学院内可使用信安协会内部的CTF训练平台找到此题

复现

基础知识

is_numeric()函数 :https://www.cnblogs.com/xhds/p/12312223.html

strcmp()函数:https://www.cnblogs.com/xhds/p/12312055.html

打开页面发现payflag页面 在这个页面有这些信息

If you want to buy the FLAG:
You must be a student from CUIT!!!
You must be answer the correct password!!!

Only Cuit's students can buy the FLAG

FLAG NEED YOUR 100000000 MONEY

在源码中发现:

<!--
    ~~~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>";
    }
}
-->

 根据这些信息分析是要经过post传输密码要等于404  才等于说有权限购买 金钱要等于100000000  首先有个问题404是数值is_numeric函数会检测出来所以我们得绕过它 还有主义观察我们抓取的包里面cookie的值有个user=0 CTF直觉这肯定要改成1的 因为正常情况下这里是cookie的值 所以我们用bp测试

得到信息  nember lenth is too long 意识是长度有问题太长 所以这里我们借助strcmp的函数特性绕过它

strcmp函数特性 money后面加[]绕过   即可得到flag

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值