ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Hackerfactory 초급 7번 문제풀이
    webhacking/Hackerfactory 2018. 11. 12. 00:50
    반응형

    10시간 한참 넘게 풀었다.

    sql injection인줄 알았다.

    암호화한 값이랑 비교해서 원래 값을 전송한다.

    한참동안 삽질했다 & 비트연산자를 다시 되돌리려면 어떻게 해야하는지

    그러다가 이 코드를 돌려서 원하는 값이나올때까지 돌리자고 생각하게됐다 // 한 10시간 이상삽질하고 깨달음

    코드를 돌려서 BestOfBestHackerFacto 까진 나왔는데 그 이후 문자열은 게싱으로 ry붙여서 입력했더니 풀렸다.

    뿌.듯


    BruteForcing SourceCode:

    #include<stdio.h>

    #include<string.h>


    /*

    i : 16번째

    R : 38번째

    A : 21번째

    J : 51번째

    H : 29번째

    a : 4번째

    T : 61번째

    R : 38번째

    i : 16번째

    R : 38번째

    A : 21번째

    J : 51번째

    H : 29번째

    a : 4번째

    L : 33번째

    L : 33번째

    F : 24번째

    B : 54번째

    O : 45번째

    w : 37번째

    r : 28번째

    X : 36번째

    o : 25번째

    L : 33번째

    F : 24번째

    6 : 55번째

    j : 17번째

    2 : 47번째

    r : 28번째

    S : 39번째

    X : 36번째

    C : 64번째

    */

    int main()

    {

    char arr[66] = "DUYZabcVWdQefGghijklmAnEFopqrHstKLuvXwRSxyz0IO12M34JN5B6789+PT/=C"; // 암호 키

    char enc[25] = "iRAHaTiRAHaLFBOrXoF6jrSX";

    char var[500]="", solve[4]="", chr1, chr2, chr3, enc1, enc2, enc3, enc4;

    int dec[30] = {0,};

    int i,j,k=0,o=0,p=0;

    int sum=0;

    /*

        enc1 = chr1 >> 2;

        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);

        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);

        enc4 = chr3 & 63;

        // iRAJ HaTR iRAJ HaLL FBOw rXoL F6j2 rSXC //

        1. Bes

        2. tOf

    3. Bes        BestOfBestHackerFactory

    4. t H a

    5. c k e

    6. r F a

    7. c t o

    8.

    r : 28번째

    S : 39번째

    X : 36번째

    C : 64번째

    */

    for(char a='A'; a<='z'; a++)

    {

    for(char b='A'; b<='z'; b++)

    {

    for(char c='A'; c<='z'; c++)

    {

    if((((a >> 2) == 28) && (((a&3) << 4) | (b >> 4) == 39) && (((b & 15) << 2) | (c >> 6) == 36) && ((c & 63) == 64)

    {

    printf("%c %c %c\n",a, b, c);

    var[k++] = a;

    var[k++] = b;

    var[k++] = c;

    p++;

    }

    }

    }

    }

    printf("\n\n\nSolve====");

    i=0;

    while(i<p)

    {

    chr1 = var[o++];

    chr2 = var[o++];

    chr3 = var[o++];

        enc1 = chr1 >> 2;

        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);

        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);

        enc4 = chr3 & 63;

        

        solve[0] = arr[enc1];

        solve[1] = arr[enc2];

        solve[2] = arr[enc3];

        solve[3] = arr[enc4];

        

        if( solve[0]=='r' && solve[1]=='S' && solve[2]=='X' && solve[3]=='C')

        {

        printf("%c %c %c",chr1, chr2, chr3);

    }

    i++;

    }

    return 0;

    }


    반응형
Designed by Tistory.