無聊時看了站長之家上有個程式挺火的,下載下來看了下。
前端的$_GET都是用intval()函數過濾了,沒有什麼可利用的。
後台有一處xss
在
admincreate_sub_product.php的第96行上傳漏洞
在admin/banner_do.php中
<span style="font-family:Microsoft YaHei;font-size:18px;"><input type="hidden" name="category" value="<?php echo $_GET['id']; ?>"> <p> </span>
所以可以建構Content-type:image/jpeg 即可突破上傳
<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>
暫時看了這麼多。還有其他的以後再看吧。
以上就介紹了momocms程式碼審計,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。