微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

BUUCTF-WarmUp

BUUCTF-WARMUP WP

  • 打开之后,首先看到是一个笑脸,查看源代码后发现一个source.PHP

  • image-20220228135033134

  • 访问它

  • image-20220228135313602

  • highlight_file(__FILE__)和show_source(__FILE__)两个函数都一样,都是显示文件的源代码。接下来,细细分析一下

  • 先看一下hint.PHP文件

  • image-20220228143317786

    可以猜测,flag在ffffllllaaaagggg这个文件文件夹里面

  • 再看最下面的if

  • image-20220228135820465

  • 三个条件分别是

    1. ?file=后面的数据不能为空或者数据的值不等于False
    2. ?file=后面的数据必须全是字符串
    3. 一个函数检测这个值

    都符合条件后会包含这个文件,并退出此脚本

  • 然后我们来看这个函数checkFile($_REQUEST['file'])

    注:$_REQUEST即可以用get在url中传数据,也可以在post请求头头里面传数据 这里在url中传数据

  • image-20220228143428531

    这两个if表示我们可以访问source.PHP和hint.PHP文件

  • image-20220228143515271

    这些表示可以截取?之前的字符串,比如:?file=adc.PHP?file=ccm.PHP ( 我乱写的 ),

    $_page=abc.PHP 后面的内容会被过滤,如果这个字符串在$whitelist里面就会然会true

  • image-20220228144129435

    进行url解码之后在进行重复上边的内容

  • 好了,代码已经审计完了

  • 构造payload,综上,就是构造的payload里面必须有source.PHP?或者hint.PHP?

  • 我们不知道在哪个文件夹里面,只能一个一个地往上级走,最终发现,在根目录里面,所以就算多加一个../也没关系

  • 最终?file=source.PHP?../../../../../../ffffllllaaaagggg

image-20220228145108088

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐