워게임
-
처음에 Username과 Password를 통해서 인증을 받아 flag값을 추출하는 문제인줄 알고 인젝션을 시도해보았는데 되질 않았다,,, 소스보기를 통해서 봐보자,,, 소스에 별다른 힌트는 없는듯 보이고 맨 아래 부분에 cresponse라는 id 값이 보인다. 이 id 값을 넣으면 flag 값을 얻을 수 있는건가? 바로 확인해보자. cresponse라는 값을 넣어보니 사진과 같이 나왔는데 의심스러운 문자열이 보인다 'dumbh4ck5' 이 값도 한번 넣어보자. 사진과 같은 값이 나왔다. 한번 id에 dumbh4ck5, password에 XorIsNotSooS3cur3를 넣어보자. 그렇게 되면 flag 값을 구할 수 있었다... 생각보다 간단하게 타고 들어가면 풀리는 문제였다. 쩝.
[HackCTF] Web - Auth3ntication 풀이처음에 Username과 Password를 통해서 인증을 받아 flag값을 추출하는 문제인줄 알고 인젝션을 시도해보았는데 되질 않았다,,, 소스보기를 통해서 봐보자,,, 소스에 별다른 힌트는 없는듯 보이고 맨 아래 부분에 cresponse라는 id 값이 보인다. 이 id 값을 넣으면 flag 값을 얻을 수 있는건가? 바로 확인해보자. cresponse라는 값을 넣어보니 사진과 같이 나왔는데 의심스러운 문자열이 보인다 'dumbh4ck5' 이 값도 한번 넣어보자. 사진과 같은 값이 나왔다. 한번 id에 dumbh4ck5, password에 XorIsNotSooS3cur3를 넣어보자. 그렇게 되면 flag 값을 구할 수 있었다... 생각보다 간단하게 타고 들어가면 풀리는 문제였다. 쩝.
2021.08.21 -
클라이언트 Obfuscation 3문제 풀이 시작해보도록 하겠습니다. 위에 두 문제 정도는 시간이 좀 걸릴 것 같아 다음에 풀이법을 작성하여 보겠습니다~ 1. 문제 이번에도 동일하게 패스워드를 푸는 문제가 되겠네요~ 2. 문제풀이 처음 문제에 접속하게 되면 패스워드 입력하는 곳이 등장하여, test라는 임의의 문자를 입력하여보았습니다. 확인 버튼을 누르니 잘못된 패스워드라며 비웃어버립니다. 우선 힌트를 보기 위해 요청 패킷을 잡아보았습니다. 패킷의 pass를 보면 숫자가 뜬금없이 존재하며, ASCII코드의 숫자 값과 관련이 있지 않겠나 라는 추측을 해 보았습니다. 이후 숫자를 ASCII코드의 숫자와 대조해 보니 FAUX PASSWORD HAHA라는 값이 나오게 되었습니다. 코드를 분석하여 결과값을 토대로..
[Root-Me]/Web Client/Javascript - Obfuscation 3클라이언트 Obfuscation 3문제 풀이 시작해보도록 하겠습니다. 위에 두 문제 정도는 시간이 좀 걸릴 것 같아 다음에 풀이법을 작성하여 보겠습니다~ 1. 문제 이번에도 동일하게 패스워드를 푸는 문제가 되겠네요~ 2. 문제풀이 처음 문제에 접속하게 되면 패스워드 입력하는 곳이 등장하여, test라는 임의의 문자를 입력하여보았습니다. 확인 버튼을 누르니 잘못된 패스워드라며 비웃어버립니다. 우선 힌트를 보기 위해 요청 패킷을 잡아보았습니다. 패킷의 pass를 보면 숫자가 뜬금없이 존재하며, ASCII코드의 숫자 값과 관련이 있지 않겠나 라는 추측을 해 보았습니다. 이후 숫자를 ASCII코드의 숫자와 대조해 보니 FAUX PASSWORD HAHA라는 값이 나오게 되었습니다. 코드를 분석하여 결과값을 토대로..
2021.08.19 -
공격 백터 : id, pw 입력 값에 대한 검증 id : prob, _, . 필터링, ', \ 필터링 if(preg_match('/prob|_|\./i', $_GET[id])) exit("No Hack ~_~"); if(preg_match('/\'|\\\/i', $_GET[id])) exit("No Hack ~_~"); pw : prob, _, . 필터링, ', \ 필터링, addslashes() if(preg_match('/prob|_|\./i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/\'|\\\/i', $_GET[pw])) exit("No Hack ~_~"); $_GET[pw] = addslashes($_GET[pw]); $_GET[pw] = adds..
[Lord of SQLInjection] Blue Dragon Write UP공격 백터 : id, pw 입력 값에 대한 검증 id : prob, _, . 필터링, ', \ 필터링 if(preg_match('/prob|_|\./i', $_GET[id])) exit("No Hack ~_~"); if(preg_match('/\'|\\\/i', $_GET[id])) exit("No Hack ~_~"); pw : prob, _, . 필터링, ', \ 필터링, addslashes() if(preg_match('/prob|_|\./i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/\'|\\\/i', $_GET[pw])) exit("No Hack ~_~"); $_GET[pw] = addslashes($_GET[pw]); $_GET[pw] = adds..
2021.08.19 -
공격 백터 : id, no 입력 값에 대한 검증 id : prob, _, . 필터링, 7 이하 길이 제한 if(preg_match('/prob|_|\./i', $_GET['id'])) exit("No Hack ~_~"); if(strlen($_GET['id']) > 7) exit("too long string"); no : 숫자가 아닌 경우 1로 설정 $no = is_numeric($_GET['no']) ? $_GET['no'] : 1; $query = "select no from prob_red_dragon where id='admin'"; // if you think challenge got wrong, look column name again. $result = @mysqli_fetch_array(..
[Lord of SQLInjection] Red Dragon Write UP공격 백터 : id, no 입력 값에 대한 검증 id : prob, _, . 필터링, 7 이하 길이 제한 if(preg_match('/prob|_|\./i', $_GET['id'])) exit("No Hack ~_~"); if(strlen($_GET['id']) > 7) exit("too long string"); no : 숫자가 아닌 경우 1로 설정 $no = is_numeric($_GET['no']) ? $_GET['no'] : 1; $query = "select no from prob_red_dragon where id='admin'"; // if you think challenge got wrong, look column name again. $result = @mysqli_fetch_array(..
2021.08.18 -
you are not local이라고 메시지가 나오는 것을 보아하니 local로 접속하는 방법을 찾아봐야 할듯싶다. 일단 하이퍼링크에 들어가보자. 들어가보니 사용자에 대해 검색을 할 수 있는 것 같다. 검색시도를 해봅시다! 소스코드를 보니 userName을 입력하여 입력 값이 op.gg 페이지와 연결되나 보다. 여기서 이용해야할 취약점은 SSRF(Server Side Request Forgery)이다. SSRF는 Server Side Request Forgery의 약자로 유사한 이름을 가진 CSRF(Cross Site Request Forgery) 와는 다르게 클라이언트 측의 요청을 변조시키는 것이 아닌 서버 측 자체의 요청을 변조하여 공격자가 원하는 형태의 악성 행위를 서버에 던져주면 서버가 검증 없이..
[HackCTF] Web - LOL 풀이you are not local이라고 메시지가 나오는 것을 보아하니 local로 접속하는 방법을 찾아봐야 할듯싶다. 일단 하이퍼링크에 들어가보자. 들어가보니 사용자에 대해 검색을 할 수 있는 것 같다. 검색시도를 해봅시다! 소스코드를 보니 userName을 입력하여 입력 값이 op.gg 페이지와 연결되나 보다. 여기서 이용해야할 취약점은 SSRF(Server Side Request Forgery)이다. SSRF는 Server Side Request Forgery의 약자로 유사한 이름을 가진 CSRF(Cross Site Request Forgery) 와는 다르게 클라이언트 측의 요청을 변조시키는 것이 아닌 서버 측 자체의 요청을 변조하여 공격자가 원하는 형태의 악성 행위를 서버에 던져주면 서버가 검증 없이..
2021.08.15 -
공격 백터는 id와 pw가 있으며, select id,pw from prob_green_dragon where id='{$_GET[id]}' and pw='{$_GET[pw]}'에 사용이 된다. 똑같은 쿼리문이 2개가 작동하는데 첫번째 쿼리문의 id 결과 값이 있어야만 두번째 쿼리문이 작동되는 시스템이다. id와 pw에 대한 검증은 prob, _, ., ', "이 필터링 되는 거 빼곤 없다. 그래서 일단 문자형 데이터를 삽입할 땐 hex값으로 넣어야 할 것으로 판단된다. 나는 id를 admin으로 만들어주기 위해 /**/를 사용하여 id=‘/*’ and pw=‘*/admin’이라는 쿼리문을 생각했지만, /**/은 ’, “ 안에서 사용 시 문자열로 인식되어 주석처리가 되지 않는다. 다른 방법으로 \를 사용..
[Lord of SQLInjection] Green Dragon Write UP공격 백터는 id와 pw가 있으며, select id,pw from prob_green_dragon where id='{$_GET[id]}' and pw='{$_GET[pw]}'에 사용이 된다. 똑같은 쿼리문이 2개가 작동하는데 첫번째 쿼리문의 id 결과 값이 있어야만 두번째 쿼리문이 작동되는 시스템이다. id와 pw에 대한 검증은 prob, _, ., ', "이 필터링 되는 거 빼곤 없다. 그래서 일단 문자형 데이터를 삽입할 땐 hex값으로 넣어야 할 것으로 판단된다. 나는 id를 admin으로 만들어주기 위해 /**/를 사용하여 id=‘/*’ and pw=‘*/admin’이라는 쿼리문을 생각했지만, /**/은 ’, “ 안에서 사용 시 문자열로 인식되어 주석처리가 되지 않는다. 다른 방법으로 \를 사용..
2021.08.14