
바로 소스코드가 열린다.information, schema, user를 제외하고는 아무 필터링도 없다.대신 Loose Comparisons이 아니고, 컬럼 명도 다 변수화되어 있다.우선, 컬럼 수를 알아보면 5개임을 알 수 있고, 두번째 컬럼이 출력되는 점을 알 수 있

1. Description 2. Write-Up 3. FLAG

접속하면 규칙 등을 알려준다.베스킨라빈스31 게임은 1:1 대결 시 필승 수(마지막으로 말하는 숫자)의 법칙이 존재한다.해당 법칙을 다음과 같이 list로 구할 수 있다.이를 해당 게임에 적용하면 FLAG를 획득할 수 있다.가끔 magic_numbers0 보다 max_

ID에는 자신의 공인 IP가 박혀있고 PW를 입력하여 로그인하는 문제이다.우선 FLAG를 얻을 수 있는 로직을 확인해 보자.t_user라는 테이블에서 user_id, ps, type을 기준으로 데이터를 뽑고, error 확인t_user라는 테이블에서 id, ps를 기준

htpasswd파일을 크랙하라고 한다.파일을 열어보면 shadow 파일 형식임을 알 수 있다.shadow는 다음과 같은 형식을 가진다.id는 다음과 같은 규칙이 있다.encrypted는 다음과 같은 규칙이 있다.문제에서 패스워드의 일부분(G4HeulB)과 나머지의 힌트

패스워드를 찾으라고 한다. 일단 다운받자.파일의 기본적인 정보를 확인하고, 해쉬값도 일치한다..Net으로 작성된 프로그램이니, dotPeek으로 디컴파일 후 Main을 본다.Main을 보면 name과 password를 Console을 통해 입력받고, name이 "Blu

파일 하나를 다운받아 보자.qemu-system-i386 -fda Disk.img로 Disk.img로 부팅한 가상 이미지는 띄워본다.\-fda 옵션은 floppy disk를 사용한다는 옵션이다.패스워드 같이 비교문인것같은데, ida를 이용하여 원격 GDB로 붙혀본다.\

USER를 입력하라고 나온다.javascript를 확인하면 admin으로는 하지 말라고 한다.Admin으로 입력하면 들어가지지만, 딱히 중요한건 없다.USER를 / 로 입력하면 다음과 같이 db/wkrm\_/.db를 찾을 수 없다고 에러가 출력된다.http:/

3\. FLAG

ID/PS가 guest/guest로 value로 박혀있고, Login하라고 나온다.로그인 하면 main.php로 이동되고 admin session을 얻으라고 나온다.정보가 없으니, 얻을 수 있는건 최대한 얻어보자. Cookie를 확인하면 L0g1n이라는 변수에 데이터가

3\. FLAG

nc로 접속하면 바이너리 파일을 주고 답을 5초안에 달라고 한다.데이터의 시그니처를 보면 ELF파일임을 알 수 있다.ELF파일의 CPU 구조는 0x12 Offset에서 확인할 수 있다.우선 ELF파일을 까보자, 바로보이는 건 데이터 길이를 확인한다. 아무래도, 매 라운

click me! 버튼을 클릭해야 하는 문제인 것 같다.하지만 마우스 포인터를 이동하면 position이 변경되면서 클릭할 수 없게 한다.div안에 input태그를 살펴보면 클릭 시 GET method로 key변수에 c29b를 전달한다.다음과 같이 url를 넣어 직접참

비행기 모양의 이미지가 초록색 네모 모양의 이미지(이하 벽)에 닿지 않게 쭉 진행하는 게임이다.몇 점 얻지 않고 벽에 부딪히면 다음과 같이 31337점을 얻으라고 한다.javascript game이라 하니 javascript를 보면 난독화가 되어 있다.JS 자동 정렬를

code라는 것을 찾으라고 한다.문제에서 이미지를 복구하라고한다. 이미지를 다운 받아본다.HxD로 열어보고 처음 바이트 보고, 본능적으로 맨 끝 바이트로 가보았다.Japng라는 키워드가 핵심인것 같다. (웬만하면 다른 사람의 라업은 보지 않겠다는 자존심)japng를 검

접속 아이피에 대한 테이블이다.admin login을 눌러서 다음과 같이 기본적인 SQLi를 시도해보지만 login fail이라고 한다.테이블 중 한 행을 클릭하면 idx에 해당 idx번호를 넘겨 POST로 전달한다.다음과 같은 Python script로 검증을 해본다

javascript alert로 swp파일이 힌트라고 한다..index.php.swp을 받아서 열어보면 no에 GET method로 넘겨받아custom_firewall 함수를 통해 필터링한 뒤 쿼리를 한다.여기가 SQLi 포인트로 생각하면 될것 같다.no에 GET me

패스워드를 찾기위한 PE파일을 다운받는다.프로그램의 흐름 및 힌트 문자열을 확인하기 위해 아무거나 입력 후 AUTH 버튼을 누른다.wargame.kr의 EASY_CrackMe와 마찬가지로 틀렸다는 문자열을 찾는다.해당 함수를 볼 수 있다.그 위를 보면 바로 조건 식을

login하라고 나온다.get source를 클릭하면 다음과 같이 로직을 확인할 수 있다.id가 guest이거나 blueh4g이면 block된다고 나온다.맨 밑에는 block된 계정들을 확인할 수 있다.MySQL에서는 문자열에 대한 대/소문자 구분이 없다.따라서 gue

또 로그인이다.FLAG를 얻을 수 있는 로직을 확인해보면 POST에 user, ssn, pass변수가 있어야하고pass와 get_password함수의 리턴 값과 같아야고 user가 admin이여야 한다.공격의 핵심부인 get_password함수를 보자.mysql_rea

이상한 테이블 표가 나온다.소스를 보면 sort라는 변수에 POST로 데이터를 실어보낸다.쿼리 결과가 row2까지 있는 걸 보니, 적어도 3개의 컬럼이 존재하는 것을 알 수 있다.ORDER BY절에 사용자 입력 값이 들어가는 데컬럼 수를 변경하여 쿼리 실패, 성공에 대

password를 입력하라고 나온다.소스를 보면 md5 해쉬함수에 2번째 인자로 true주었다.PHP MD5에서 확인해보면 true를 주면 hex string값이 binary로 취급하여 반환된다는 점이 있다.너무 막막하기 때문에 검색을 통해 한 블로그로에서 외국에서 2

VALUE 1과 VALUE 2를 입력하고 chk버튼을 누르는 것 같다.view-source를 보면 chk가 true가 되어야 함을 알 수 있다.첫번째 chk 조건문은 v1은 모두 문자(A-Za-z)여야 한다.PHP ctype_alpha두번째 chk 조건문은 v2는 숫자

소스 파일을 다운받을 수 있다.mini_TBR\\modules_system\\functions.php에서 get_layout함수에서 인자로 받은 2개의 값을 이용하여쿼리를 한 후 결과 중 path컬럼의 값이 hacked이면 FLAG를 획득할 수 있다.get_layout

접속하면 D1, D2를 입력하라고 나온다.get source를 클릭하면 다음과 같은 코드가 나온다.p7.c코드를 컴파일하여 해당 프로그램의 리턴 값과 비교하니 해당 소스를 본다.argv1은 d1의 int로 형변환 된 값이고, 그 값이 0 미만이여서는 안되고\+5 하였을

nc로 접속하면 다음과 같은 문제가 나온다.여러개의 다항식을 통해 해를 구하는 문제이다.z3 라이브러리를 이용하여 계산하자.아니 Submit format -> a,b,c,d,,,(Ascending order)이러고만 써놓고, 만약 해가 a=1, b=5, c=2라면1,2

00시 마다 FLAG가 바뀐다고 한다.소스를 보면 Let's go!버튼을 누르면 내가 웹에 접속한 IP:31337 TCP로 password : 라는 글자를 보내고40글자까지 읽은 뒤, 가지고 있는 password랑 비교하면서 한 글자당 2초 씩 sleep한다.다음과 같

현재 서버의 시간과 pyc파일을 준다.decompyle3으로 디컴파일을 시도하려 했지만, python2로 컴파일되었던 파일인것으로 보인다.easy python decompiler를 사용하여 소스코드를 추출한다.python 코드는 다음과 같다.현재 시간을 이용하여 see

javascript 연습 페이지라고 한다.뭔가를 입력하고 데이터를 전달할 만한 곳은 to JSMaster밖에 없다.전송되는 데이터는 cont와 mail과 type이라는 변수 뿐이다.문제에서 Insert query를 이용한 SQLi라고 한다.type에 sleep함수를 이

어떤 QR코드를 6x6으로 나눠서 무작위로 배치하였다.원본 QR코드로 조립하여 QR코드를 인식하면 FLAG를 획득할 수 있을 것같다.QR코드의 원본 이미지를 소스상에서 바로 확인할 수 있었다.해당 url로 접속하면 원본 QR코드를 확인할 수 있다.온라인 QR Decod

그냥 게시판같은 페이지이다.소스 중 Board class의 read함수를 보면 idx변수에 대해 해당하는 게시글을 읽는다.idx변수는 GET method를 통해 전달됨을 알 수 있다.read함수는 sql query전 read_chk라는 함수를 호출하는 데, 쿠키에서 /

password를 입력하라고 나온다.view-source를 클릭하면 언어는 php이고 strcmp로 password를 비교하는 걸 알 수 있다.다음과 같은 2가지를 이용하여 password가 뭔지 몰라도 우회할 수 있다.strcmp는 문자열과 array()를 인자 값으

Sign in에서 admin으로 로그인 해야하나 보다.문제에 테이블 구조에서 id 컬럼 타입이 char형태이다.insert할 때 공백을 넣으면 공백이 제거되서 들어간다.회원가입 시 ID에서 maxlength를 33글자 이상으로 수정하고1을 33번 넣고 PS를 1을 7번

무엇인가를 입력하라고 나온다.view-source는 참지 않는다.클릭하면 다음과 같은 소스 코드가 주어진다.json->key == key가 true가 나와야 FLAG를 얻을 수 있다.우선 gen_key함수의 리턴 타입은 문자열이란 것을 알 수 있다.그렇다면, Loose

ID를 입력하라고 나온다.join버튼을 누른 뒤 나오는 화면은 채팅과 같은 형식이다.개발자 도구의 Network탭을 보면 초마다 chatlog.php?t=1을 접속하고채팅을 하면 catlog.php?data=입력한 값을 보내고chatView.php?t=1&ni=숫자 에

Start 버튼을 클릭 후 나오는 페이지에서 source_code.ws를 누르면 source_code.ws라는 파일을 다운로드 할 수 있다.열어보면 space, tab, newline의 조합으로 이루어져 있다.그런데 이게 소스코드란다. brain fuck이라고 바로 느

adm1nkyj 문제와 비슷한 문제이다.다만, 괄호를 사용할 수 없게 되고, where, = 문자도 필터링 대상이다.이전에는 id를 구할 때 1=1을 하였지만, =가 필터링 대상이므로 True를 사용하여 구한다.pw_column은 이전과 같이 구한다.temp_pw는 그