一行代码

<?php
/*
\# -*- coding: utf-8 -*-
\# @Author: h1xa
\# @Date: 2021-11-18 21:25:22
\# @Last Modified by: h1xa
\# @Last Modified time: 2021-11-18 22:14:12
\# @email: h1xa@ctfer.com
\# @link: https://ctfer.com

*/



echo !(!(include "flag.php")||(!error_reporting(0))||stripos($_GET['filename'],'.')||($_GET['id']!=0)||(strlen($_GET['content'])<=7)||(!eregi("ctfsho".substr($_GET['content'],0,1),"ctfshow"))||substr($_GET['content'],0,1)=='w'||(file_get_contents($_GET['filename'],'r') !== "welcome2ctfshow"))?$flag:str_repeat(highlight_file(__FILE__), 0);

分析下源码

  1. 成功包含 flag.php 文件。
  2. 错误报告已关闭。
  3. $_GET['filename'] 中不包含 .
  4. $_GET['id'] 等于 0
  5. $_GET['content'] 的长度大于7。
  6. $_GET['content'] 的第一个字符与 ctfshow 匹配。
  7. $_GET['content'] 的第一个字符不为 w
  8. $_GET['filename 的内容为 welcome2ctfshow

如果所有这些条件都满足,则输出 $flag

id=0没什么讲的 cotent内容大于7.且第一个字母不为w,但又要与welcome 第一个字符一样

搜索下eregi(string,string)

发现作用就是用来进行字符串匹配的,但是他不区分大小写,所以这里我们直接第一个字母大写W就好了

filename 要为welcome2ctfshow 但不能直接俄get传 因为这样会把整个文件读入

所有用伪协议php://input

让后POST提交welcome2ctfshow

GET: ?id=0&content=W2Gu0f3n&filename=php://input

POST:welcome2ctfshow

image-20240728102150005

黑客网站

打开其实就是

tyro s4qw s3mm bubg jqje 46nc v35j aqjg eb3n qiuf 23ij oj4z wasx ohyd onion

循环 看到 onion 应该都不陌生

下载洋葱浏览器直接搜就是了,但是洋葱都知道是干嘛的吧((●’◡’●))

web签到

计算方式为(A)**3+(B)**3+(c)**3

用括号绕过即可,

a=+114)+(0

b和c都为-0就可以

(+114)+(0)**3+(-0)**3+(-0)**3 =114

登陆不了

注册发现验证码没用到

打开验证码图片位置

确定存在任意文件读取漏洞

ok,不会了 gg 提桶跑路 ヾ(•ω•`)o

哈哈哈 还是得好好复现(之后补上嘿嘿)