전체 글

전체 글

    LOS-rubiya : dark_eyes

    query : {$query}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_dark_eyes where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("dark_eyes"); highlight_file(__FILE__);?>pw 찾는 문제다.sleep _ prob ) . () 필터링 당한다. 이번에는 참 거짓 찾기가 어렵다.select 1 union select 2 를 이용해서 해야될듯 길이부터 찾..

    LOS-rubiya : iron_golem

    query : {$query}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_iron_golem where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("iron_golem"); highlight_file(__FILE__);?>pw 찾는 문제다 -> 파이썬 파일을 이용해서 질의 해줄 것이고, 이전에 사용했던 파일 재사용해서 쿼리 부분만 바꿀 예정이다.sleep _ prob ) . () 필터링 당한다..

    LOS-rubiya : dragon

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("dragon"); highlight_file(__FILE__); ?>입력은 pw로만 주고있는데, 주석이 앞에 있다. 개행해서 입력해주면 되겠다.%0a 이용하자. ?pw=1' %0a or id='admin'%23 이렇게 하면 guest로 로그인 된다. ?pw='%0a and id='admin' or id='admin'%23앞부분을 false로 만들어주고 하면 된다.

    LOS-rubiya : xavis

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_xavis where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("xavis"); highlight_file(__FILE..

    Forensics : 잔상

    Forensics : 잔상

    이미지 파일이 두개 주어졌다. 언뜻보면 같아보이지만 다르니까 2개를 줬을꺼다. 일단 딱히 뭐 할게 없어서 HxD로 들여다 봤다. 보면 뭐가 다른지 알아야 하지 않겠지 싶어서 해당 기능을 이용해서 차이점을 봤다. 근데 다른 쌍을 하나씩 적어보니까. N / H Q / a I / c c / k ? / C ? / T ... 이런식으로 이어지드라. 누가봐도 flag형식이 아니냐 싶어서 일일히 찾아서 적어봤다. hex값이 보기가 더 편해서 hex 값을 옮겨온 다음 디코드 해줬다. 48 61 63 6b 43 54 46 7b 77 68 33 72 33 5f 40 72 65 5f 79 6f 75 5f 6c 30 30 6b 69 6e 67 3f 7d 디코딩 하면 HackCTF{wh3r3_@re_you_l00king?} 역..

    Pwnable : Random Key

    Pwnable : Random Key

    프로그램을 실행해 보았다. 이런 값이 나오네. gdb로 돌려보자. ㅇㅋ NX 걸려있다. 스택 실행권한 없다. 이제 어떤 함수가 있는지 보자. main문만 잘 보면 될것 같다. 볼까 아 랜덤함수가 눈에 들어온다. 아마도 rand 값이랑 일치하는 값을 찾아줘야 할 것 같다. IDA로 한번 더 볼까? int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { unsigned int v3; // eax int v4; // [rsp+0h] [rbp-10h] int v5; // [rsp+4h] [rbp-Ch] unsigned __int64 v6; // [rsp+8h] [rbp-8h] v6 = __readfsqword(0x28u); se..

    Pwnable : 1996

    Pwnable : 1996

    nc ctf.j0n9hyun.xyz 3013 한번 실행을 해보니 다음과 같이 나온다. 이렇게 입력을 해주면 환경변수 값을 출력을 해주는 것 같다. 대신 해당 이름의 변수가 없어서 출력이 안된 것 같네용 일단 보안옵션은 NX가 있습니다. 스택의 실행권한을 뺏는 옵션이죠 함수 종류도 확인해 보구용 눈에 띄는건 spawn_shell(), main 정도 있구요한번 봅시다잉 음 shell_spawn은 gdb로 안보인다. 이건 ida로 보자. int spawn_shell(void) { char *argv; // [rsp+0h] [rbp-10h] __int64 v2; // [rsp+8h] [rbp-8h] argv = "/bin/bash"; v2 = 0LL; return execve("/bin/bash", &argv,..

    challenge 57 (600pt)

    challenge 57 (600pt)

    입력창이 존재한다. 소스코드를 주었으니 한번 보면 되겠다.