[极客大挑战 2020]Roamphp1-Welcome(405报错)

我们打开页面,发现提示该页面无法正常运作(我还以为我网络出问题了呢)

image-20240723175809368

经过查询,我们发现是405报错,405的报错原因是由于请求方法不对,我们对页面进行抓包

题解

[WMCTF2020]Make PHP Great Again(require_once特性)

打开页面,进行代码审计

1
2
3
4
5
6
<?php
highlight_file(__FILE__);
require_once 'flag.php';
if(isset($_GET['file'])) {
require_once $_GET['file'];
}

我们要了解什么是require_once

require_once 表达式和 require 表达式完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。

由于 require_once 包含的软链接层数较多时 once 的 hash 匹配会直接失效造成重复包含。

php特性

[b01lers2020]Life on Mars(sql注入)

我们打开页面,发现啥信息都没有,我们随便点击一个地名抓包看看

image-20240715203732986

我们访问/query?search=amazonis_planitia

image-20240715203901604

我们进行sql注入

sql注入

[SUCTF 2018]GetShell(无字母数字rce)

我们打开页面源码,发现源码里有个链接

image-20240715194012415

我们点击后跳转到了新的页面,并发现了一串代码

rce

[GXYCTF2019]StrongestMind

打开页面,提示我们计算1000次答案给flag

我们直接上脚本

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

import requests
import re
import time

url = 'http://1ab3c450-eac5-4e70-930f-c0e7bd6c577c.node5.buuoj.cn:81'
session = requests.session()
req = session.get(url).text
flag = ""

for i in range(1010):
try:
result = re.findall("\<br\>\<br\>(\d.*?)\<br\>\<br\>",req)#获取[数字]
result = "".join(result)#提取字符串
result = eval(result)#运算
print("time: "+ str(i) +" "+"result: "+ str(result))

data = {"answer":result}
req = session.post(url,data=data).text
if "flag{" in req:
print(re.search("flag{.*}", req).group(0)[:50])
break
time.sleep(0.1)#防止访问太快断开连接
except:
print("[-]")

得到flag.

题解

[GKCTF 2021]easycms

url+admin.php,我们能够进入登录页面

image-20240621194103359

题目提示了密码是五位数弱密码

我们考虑admin/admin,admin/12345,实在不行再去fuzz

但admin/12345成功登录了进去

题解cms

[BJDCTF2020]EzPHP(代码审计&create_function的使用)

我们查看源码,发现一串base32加密的字符串

image-20240620210847610

我们解码,得到一个文件

php特性