3번문제이다. 3번문제는 id가 guest로 고정되어 있고 no에 따라 결과 값을 출력해주는 코드이다. 근데 아이러니한 것은 id가 amdin일 경우 문제가 해결된다고 한다. 일단 no값에 1을 집어 넣어보았다. 다음과 같이 hello guest라는 문구가 출력된다. 다음으로 or 1=1#이라는 injection 공격 코드를 집어 넣어보았다. 다음과 같이 hello guest라는 문구가 출력된다. 이제 no=1뒤에 admin이라는 id를 집어 넣어보았다. -> ?no=1 or id ='admin' '를 사용하지 말라는 경고 표시가 뜬다. '를 필터링 하였기 때문에 '를 사용하지 않고 '를 사용해야 한다. 다음과 같이 '를 우회하기 위해 아스키 코드를 사용하였다. 아스키 코드표 아스키 코드표를 확인하면 a..
다음 문제는 id변수와 pw 변수를 받는데 pw를 md5 해시 함수를 돌려 값을 저장한다. 일단 값이 어떻게 들어가는지 확인하기 위해 id 변수와 pw 변수에 값을 집어 넣어 보았다. 다음 사진은 id, pw 변수에 값을 집어넣은 결과이다. 다음으로 ' or '1=1#을 집어 넣어 보았다. 공격이 먹히지 않는다. 어떻게 해야 고민을 하다가 & 연산자를 통해서 다음 변수로 넘겨준다는 것을 알았다. 그래서 & 연산자를 쓰지 않고 pw 변수를 불러와 받으면 될 것 같다고 생각했다. -> id=admin' pw=' 'or '1=1# 다음과 같이 입력해 보았다. 문제를 해결하였다.
문제를 들어가면 다음과 같은 페이지가 나온다. get source를 눌러 소스를 보았다. D1: D2: get source 코드를 햇거하면 tmp/p7 파일이 존재하지 않으면 p7.c 파일을 컴파일 하여 p7이라는 파일을 만들고 첫번째 값을 p7이라는 실행파일에 집어넣고 실행한 값을 result라는 변수에 저장한 후 result 값이 1이 아니고 d1하고 d2 값이 동일하면 flag 값을 출력하고 그렇지 않으면 try again이라는 문구를 출력하라는 것이다. 이제 p7.c라는 코드를 확인해보자 http://wargame.kr:8080/php_c/p7.c 불러오는 중입니다... 다음과 같이 입력하면 p7.c 코드가 나온다. #include #include void nono(); int main(int a..
문제를 해석하면 PNG 이미지 파일을 복구하라고 한다. 하지만 이게 진짜 PNG 파일이냐고 물어본다, (스테가노그래피는 아니고 포렌식 챌린지 문제이다) 이제 start를 누르면 ptsd가 올 것같은 사진과 함께 find the code!!라는 문제가 있다. 뒤에 있는 사진을 복구하면 되는 것 같다. 개발자 도구를 누르면 pattern pattern이라는 파일이 있다. 이 파일을 다운 받은 후 HXD를 키고 다운 받은 파일을 열면 맨밑에 .tEXtSoftware.Japng r119라는 글자가 있다. 인터넷에 Japng라고 검색을하면 java apng라는 것을 알 수 있다. apng 파일은 .gif 파일처럼 애니메이션을 구연하였지만 기존 PNG 파일과의 호환성을 유지한 파일이다. 쉽게 말해서 png파일이지만..
type confusion 문제를 눌러보면 start를 누르면 view-source를 누르면 view-source 다음과 같은 코드가 나오는데 여기서 중요한 코드만 해석해보면 if (isset($_POST['json'])) { usleep(500000); require("../lib.php"); // include for auth_code function. $json = json_decode($_POST['json']); $key = gen_key(); if ($json->key == $key) { $ret = ["code" => true, "flag" => auth_code("type confusion")]; } else { $ret = ["code" => false]; } die(json_encode..