zoukankan      html  css  js  c++  java
  • buuctf—web—Easy Calc

    启动靶机,查看网页源码,发现关键字

    $("#content").val() 是什么意思:

    获取id为content的HTML标签元素的值,是JQuery,     ("#content")相当于document.getElementById("content");

    ("#content").val()相当于 document.getElementById("content").value;

    多次尝试找不到思路,看了大佬的wp发现是被waf拦截了

    payload:http://node3.buuoj.cn:29279/calc.php?%20num=var_dump(scandir(chr(47)))

    在num前加一个空格符来绕过waf拦截

    原因:假如waf不允许num变量传递字母,可以在num前加个空格,这样waf就找不到num这个变量了,因为现在的变量叫“ num”,而不是“num”。但php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行,还上传了非法字符。

    发现根目录存在f1agg

     同理查看该文件内容

    payload:http://node3.buuoj.cn:29279/calc.php?%20num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

     成功拿到flag

    补充:

    1、PHP的字符串解析特性是什么?

    答: PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:1.删除空白符  2.将某些字符转换为下划线(包括空格)【当waf不让你过的时候,php却可以让你过】

    2、发现过滤怎么办?

    答:用char()转ascii再进行拼接

    3、尽量多的积累一些PHP函数,在关键时刻可以利用

  • 相关阅读:
    剑指offer 51.构建乘积数组
    剑指offer 50.数组中重复的数字
    股票价格涨跌预测—基于KNN分类器
    R语言-神经网络包RSNNS
    基于客户保持率的人口特性分析
    车辆碰撞位置间的关联性分析
    统计学的七大支柱[转载@谢益辉]
    AutoDesK演示项目部署
    自定义数字键盘组件化方案
    2020年大前端发展趋势
  • 原文地址:https://www.cnblogs.com/anweilx/p/12357572.html
Copyright © 2011-2022 走看看