ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [취약점분석] dbfile.co.kr Cookie 취약점
    0x04 Security/vulnerabilities 2010. 10. 28. 10:45

    =============================================


                          dbfile.co.kr Cookie Vulnerability 

                                                                                by j0ker 

    =============================================


    DBfile 사이트는 웹하드방식의 사이트이다.

    그러나 이사이트에는 쿠키인증취약점이 숨어있다. 



    쿠키값을 보게되면 다음과같다. 


    =============== [  View Cookie ] =================


    ID : test  인경우 


     36478754c7023054f291ec39b489451c=WW0xYWNHSkhWVDA9

     046dd99d5c62a46485c88ba0022a8fa7=WW0xYWNHSkhWVDA9

     07099283cfc31f2d473bf5b4628ab3a6=WW0xYWNHSkhWakJhV0U0dw%3D%3D


    _dwiF=d-Dg2|d|-|-|-|-|-|-|-|-|-|-|

    _dwiV=d-Dg212|1267102364|319|4|

    _dwiC=d-Dg212|45752ef8|1267102045|1267102045|1267102045|1|

    _dwiN=d-Dg2

    PHPSESSID=885473327ec1181b33d4f57027313545


    ===============================================


    이 쿠키값을 보자면 다음과 같다. 

    ① base64 방식으로 "nfile"이라는 문자열을 3번 Encode
    ② base64 방식으로 "nfile"이라는 문자열을 3번 Encode
    ③ 사용자의 세션 = "nfile"+"사용자의아이디" 를 3번 Encode 

    이런패턴으로 정의가 되는것을 알수가있다. 

    이 패턴을 이용한 PHP Source는 다음과 같다. 



    =========[Code 분석]============

    1. PHP세션을 세팅한다. 
    2. dbfile 게시판주소로 소켓을 열어 접속을 시도한다. 
    3. 게시판 에있는 회원아이디 목록을 파싱한다.
    4. 파싱한 아이디의 갯수만큼 for문을 돌면서 정액제인지 아닌지 체크한다.
    5. 만약 정액제 방식의 아이디라면 idEncode함수를 거쳐 아이디를 반환해준다.

    =======================================


    해결방안.
    이러한 인증방식을 이용한다는것이 참 위험한거같다. 
    이러한 인증방식을 사용하려면 복호화가 가능한 base64가 아닌 
    md5방식이나 다른 암호화 방식을 사용하는게 더 안전하지 않을까 생각해본다.


    현재 위의 방법은 패치 되었으므로 현재는 먹히지 않는 방법입니다.  
Designed by Tistory.