[webhacking.kr] 14번 문제 이번에는 100점인 14번 문제를 풀어보자. 첫 화면은 값을 입력할 수 있는 태그가 보이고, 개발자 도구를 통해 소스코드를 확인해보자. 해당 페이지의 URL을 ul변수에 저장하고, indexof(".kr")를 이용하여 URL의 ".kr"의 index번호를 찾는 것이다. 그리고 index값에 30을 곱한 숫자를 제출하면 문제가 해결된다. 우리가 입력해야 할 값은 540 이다. 해당 값을 입력하면 정상적으로 문제가 해결되는 것을 확인할 수 있다. CTF & WarGame/webhacking.kr 2020.03.05
[webhacking.kr] 13번 문제 이번엔 1000점인 13번 문제를 풀어보자. 질의 보내기 부분에 값을 입력해 반응을 살펴본다. 1을 넣었을 때는 result에 1이 출력되고, 그 외 나머지는 0이 출력된다. 또 injection에 사용되는 특수문자 등은 필터링 된다. 문제를 해결하기 위해, DB 명 / 테이블 명 / 컬럼 명 / Flag 값 까지 구할 수 있는 파이썬 코드는 다음과 같다. import requests import string import re requests.packages.urllib3.disable_warnings() URL = "https://webhacking.kr/challenge/web-10/?no=" def str2bin(string): return '0b'+''.join(format(ord(x), 'b').. CTF & WarGame/webhacking.kr 2020.03.04
[webhacking.kr] 12번 문제 이번엔 250점인 12번 문제를 풀어보도록 하자. 첫 화면은 "javascript challenge"문구만 뜨게 된다. 개발자 도굴에 들어가 소스를 확인해보면 javascript가 난독화되어 있는 것을 볼 수 있다. 난독화를 unpack 하기 위해 해당 사이트를 이용했다. https://lelinhtinh.github.io/de4js/ de4js JavaScript Deobfuscator and Unpacker lelinhtinh.github.io 인코드 방식을 AAencode로 체크한 후 해독해보면 아래와 같은 소스코드를 확인할 수 있다. 소스코드를 해석해 보면 URL의 "="문자부터 문자열을 잘라서 ck변수에 저장한다. for문에서는 아스키 코드의 1~121 까지의 문자를 enco변수에 저장한다. e.. CTF & WarGame/webhacking.kr 2020.03.03
Ubuntu 18.04 한글 입력 설정 우분투 설치 후 한글 입력이 안될 것이다. 설정을 통해 한글 입력에 대해 알아도록 하자. - Settings -> Region&Language -> Manage Installed Languages -> Install/Remove Language - 리부트하기 (reboot) - ibus-setup -> Input Method -> Add -> Korean(Hangul) 추가 - settings -> Region&Language -> Add an Input Source -> Korean(Hangul) - Shift+space 눌러서 한글 정상 입력 확인. IT 생활지식 2020.03.02
[webhacking.kr] 11번 문제 이번에는 300점인 11번 문제를 풀어보도록 하자. 첫 화면은 다음과 같고, view_source를 클릭해 코드를 살펴 힌트를 얻도록 하자. 해당 문제를 풀기 위해서는 $pat 변수에 담겨있는 정규표현식을 이해하면 된다. [1-3] : 1~3 사이의 문자 중 하나 [a-f]{5}_ : a ~ f 문자 중 5번 반복하는 문자를 찾고 마지막에 "_"를 붙힌다. .*$_SERVER[REMOTE_ADDR] : 웹서버에 접속한 접속자의 IP가 0번 이상 반복(존재)한다면 문자를 찾는 정규표현식 .*\tp\ta\ts\ts : \t는 탭을 의미함으로 (탭)p(탭)a(탭)s(탭)s를 찾는 정규식표현, 하지만 문제에서는 GET방식으로 val변수에 값을 넣어 전달하므로 tab을 url 인코딩해야 한다. \t를 인코딩하게되.. CTF & WarGame/webhacking.kr 2020.03.02
[webhacking.kr] 10번 문제 이번엔 250점인 10번 문제를 풀어보도록 하자. 문제에 들어가면 첫 화면은 다음과 같다. 페이지를 살펴보니 별다른 힌트는 회식에 O라고 쓰여있는 부분에 마우스 커서를 올리면 yOu로 변한다는 점이다. 개발자 도구로 들어가 HTML 소스코드를 확인해보도록 하자. 마우스를 클릭했을 때는 onclick 부분에 1px씩 늘어나고, 1600px이 됬을 때 문제가 해결될 것으로 보인다. 우선 테스트를 위해 정상적으로 클릭할 때마다 1px씩 늘어나는 지 확인해보자. 정상적으로 동작하는 것을 확인했으니, 문제 해결을 위해 left에 담겨있는 픽셀을 1599px로 수정한 후, 마우스 클릭을 해보도록 하자. 이번 문제는 비교적 간단히 풀 수 있는 문제였다. CTF & WarGame/webhacking.kr 2020.03.02
[webhacking.kr] 9번 문제 이번에는 점수가 900점인 9번 문제를 풀어보자. 처음 화면은 다음과 같고, 1,2,3을 각각 눌러보자. challenge/web-09/?no=1 challenge/web-09/?no=2 challenge/web-09/?no=3 URL의 파라미터 no에 값을 변경함에 따라 페이지가 변하는 것을 볼 수 있다. 테스트를 위해 인자값에 sleep(3)함수를 입력 해본 후 3초 뒤에 응답되는 것을 확인했으며, SQL Injection 시도가 가능할 것으로 판단된다. no=3 페이지에서 컬럼에는 id,no가 있고 passowrd는 id에 있다고 한다. 그럼 우리는 문제를 풀기 위해 id=password이고 no=3인 값을 가져와야 한다. 먼저, id의 길이를 알아내기 위해 쿼리문을 작성해보자. 쿼리문 : no=i.. CTF & WarGame/webhacking.kr 2020.03.01
[webhacking.kr] 8번 문제 이번엔 350점인 8번 문제를 풀어보도록 하자. 첫 화면은 다음과 같고 view-source를 클릭해 소스코드를 확인해보도록 하자. CTF & WarGame/webhacking.kr 2020.02.29
[webhacking.kr] 7번 문제 이번에는 300점인 7번 문제를 풀어보도록 하자. 페이지에 들어가면 첫화면은 이렇게 나온다. auth 버튼을 눌러봐도 Access_Denied! alert창만 뜨게 된다. view-source를 클릭하여 소스코드를 확인해보자. CTF & WarGame/webhacking.kr 2020.02.28
[webhacking.kr] 6번 문제 100점인 6번 문제를 풀어보도록 하자. 문제에 들어가게 되면 현재는 문제를 풀어버려서 admin/nimda 계정으로 변환되어 있지만, 원래는 guest/123qwe로 표시되어 있다. view-source를 클릭하게 되면 힌트가 되는 코드를 확인할 수 있다. 코드를 해석해보면 id=admin, pw=nimda 값을 20번 base64 인코딩하여 값을 user와 password 쿠키의 값으로 입력하면 해결되는 것을 알 수 있다. 이제 20번의 base64인코딩을 위한 파이썬 코드를 작성해보자. import base64 id = "admin" pw = "nimda" for i in range(0, 20): i = i + 1 id1 = id.encode("UTF-8") id2 = base64.b64encode.. CTF & WarGame/webhacking.kr 2020.02.27