简介

 原题复现:[极客大挑战 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

最新文章

  1. 我们为什么使用Node
  2. GJM : Unity3D HIAR -【 快速入门 】 六、导出 iOS 工程
  3. 设置session生存时间问题
  4. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点
  5. 【最简单IOC容器实现】实现一个最简单的IOC容器
  6. CodeForces #367 div2 C
  7. 【Android】应用程序Activity启动过程分析
  8. Ubuntu 安装libusb
  9. [转] Android获取Manifest中&lt;meta-data&gt;元素的值
  10. Android之ScrollView嵌套ListView
  11. linux脚本编程技术---8
  12. Codeforces Round #114 (Div. 1) A. Wizards and Trolleybuses 物理题
  13. C语言数据输入与输出
  14. 流程控制 - PHP手册笔记
  15. 用于主题检测的临时日志(18506589-369d-4505-a204-3678db17eae5 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
  16. hdu_1513_Palindrome(LCS+滚动数组)
  17. Linux下的强大工具之一sed(转),Shell必备
  18. margin重叠
  19. makefile $@, $^, $&lt;, $? 表示的意义
  20. js点击什么显示什么的内容,隐藏其它和进度条

热门文章

  1. 简述BIO到NIO的过程
  2. css3滚动条样式美化
  3. DOM属性/节点属性
  4. VC获取文件后缀名
  5. Photoshop如何安装蓝湖插件
  6. Centos7安 装python3+Selenium+chrome+chromedriver
  7. R语言删除不规范的值(或NA)
  8. 【QT】QtConcurrent::run()+QThreadPool实现多线程
  9. 什么是4G模块 4G模块的工作原理及特点
  10. mvc SelectList 给下拉框 @Html.DropDownList绑定值