相關的漏洞介紹:php
http://www.wooyun.org/bugs/wooyun-2013-035199shell
Discuz!NT 管理後臺能夠自定義文件類型,從而形成任意文件上傳,測試過程當中 aspx文件,目錄並不會解析。因此須要能解析 asp 或者php等。 過程演示【程序版本:Discuz!NT 3.6】: 1. 登錄 Discuz!NT 後臺,【全局】-->【附件設置】-->【附件尺寸】-->【添加附件類型】 添加須要上傳的文件類型。如圖,我添加了ASP 2. 給用戶組加上上傳ASP的權限。【用戶】-->【分組與級別】-->【編輯用戶組】-->【編輯系統組】-->【管理員】,勾選上添加的ASP 類型。 3.去前臺上傳上傳asp文件。【附件】-->【批量上傳】,選擇ASP文件。 4.進入後臺找shell。【內容】-->【附件管理】-->【搜索附件】。
特此記錄一下:jsp
-------------------------------------------函數
1.先增強後臺中的判斷準則:Discuz.Web.Admin.attachtypesgrid.cs文件中的測試
private void AddNewRec_Click(object sender, EventArgs e) { #region 添加新的附件信息 if (extension.Text == "") { base.RegisterStartupScript( "", "<script>alert('要添加的附件擴展名不能爲空');window.location.href='forum_attachtypesgrid.aspx';</script>"); return; } if (extension.Text.ToLower().Contains("asp") || extension.Text.ToLower().Contains("php")||extension.Text.ToLower().Contains("jsp")) { base.RegisterStartupScript("", "<script>alert('要添加的附件擴展名不能爲asp,php,jsp');window.location.href='forum_attachtypesgrid.aspx';</script>"); return; }
2.再增強前臺中的代碼判斷準則:Discuz.Forum.ForumUtils.cs文件中的spa
public static AttachmentInfo[] SaveRequestFiles(int forumid, int MaxAllowFileCount, int MaxSizePerDay, int MaxFileSize, int TodayUploadedSize, string AllowFileType, int watermarkstatus, GeneralConfigInfo config, string filekey, bool isImage)函數code
if (fileName!=null&&(fileName.ToLower().Contains(".asp")||fileName.ToLower().Contains(".php")||fileName.ToLower().Contains(".jsp")))
{
attachmentInfo[saveFileCount].Sys_noupload = "文件格式無效";
}
// 判斷 文件擴展名/文件大小/文件類型 是否符合要求
else if (!(Utils.IsImgFilename(fileName) && !fileType.StartsWith("image")) && ValidateImage(fileType, HttpContext.Current.Request.Files[i].InputStream))
現提供編輯好的DLL:Discuz.Web.Admin.dll+Discuz.Forum.dll,此編譯DLL僅供測試,請本身備份好以前的DLL。blog
http://files.cnblogs.com/miao31/Discuz.Web.Admin.dll.rarip