이번 포스트에서는 Lord of SQLInjection의 darkelf문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, .,(, ), or, and를 필터링한 것을 알 수 있다. 또한 id값이 admin일때만 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 먼저, 원래의 쿼리문을 무효화 시키고 id값이 admin이 되도록 만들어본다. ### 사용할 공격문 : pw=' or id='admin ### 실행 결과 : 예상했던 대로 "OR"이 필터링된 것을 확인할 수 있다. 그럼 문자로 된 OR말고 OR연산자의 기호를 통해 공격문을 작성해보겠다. 참고로 OR연산자의 기..
이번 포스트에서는 Lord of SQLInjection의 wolfman문제에 대해 다루도록 하겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., (, )와 스페이스바를 필터링 한 것을 알 수 있다. 또한 id값이 admin이 되어야 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 먼저 쿼리문을 참으로 만들어보겠다. ### 사용할 공격문 : pw='or'1 ### 실행 결과 "Hello guest"가 출력된 것을 확인할 수 있다. 이어서 해당 쿼리문을 거짓으로 만든 다음에 id값이 admin이 되도록 만들어보겠다. ### 사용할 공격문 : pw='or id='admin ###..
or이번 포스트에서는 Lord of SQLInjection의 orc문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match를 통해 prob, _, ., (, )를 필터링하고 있다. 또한 id값만 있는 경우 "Hello admin"이 출력되고, pw값이 있어야지 문제를 해결할 수 있는 것을 알 수 있다. ## 문제 풀이 : Blind SQL Injection 기법을 통해 풀어보고자 한다. pw를 알아야 하기 때문에 먼저 pw의 길이를 알아야한다. 이는 다음 구문을 통해 알 수 있다. ### 사용할 공격문 : pw=' or id='admin' and length(pw) = 1 # ### 실행 결과 : 실제 계산한 ..
이번 포스트에서는 Lord of SQLInjection의 goblin문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match를 통해 prob, _, ., (, ), ', ", ` 를 필터링 한 것을 알 수 있다. 즉 우리는 따움표 등을 사용할 수 없다는 뜻이다. 또한 해당 문제의 풀이 조건은 id값이 admin이 되어야 한다는 건데, 쿼리문을 살펴보면 다음과 같다. select id from prob_goblin where id = 'guest' and no = {$_GET[no]} 즉, 우리가 입력할 수 있는 란이 no인 것을 알 수 있다. ## 문제 풀이 : 먼저 no에 1을 넣어본 결과는 다음과 같다. #..
이번 포스트에서는 Lord of SQLInjection의 cobolt 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 이전 문제인 gremlin과 비슷하니 다른 부분만 짚어서 보겠다. 여기서 우리가 주목해야 할 부분이 if($result['id'] == 'admin')이다 위 코드를 통해 우리는 admin이라는 ID로 로그인해야 문제를 풀 수 있는 것을 알 수 있다. ## 문제 풀이 : ID란에 admin을 추가한다. SQL 쿼리문이 참이 될 수 있도록 해준다. ### 사용할 공격문 : id='admin'or'1&pw= ### 실행 결과 : ## 추가 해석 : 쿼리문 : select id from prob_cobolt w..
이번 포스트에서는 Lord of SQLInjection의 gremlin 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 여기서 우리가 주목해야할 줄은 preg_match('/prob|_|\.|\(\)/i', $_GET[id])이다. preg_match('/prob|_|\.|\(\)/i', $_GET[id]) : preg_match는 php의 필터링 함수이다. 형식은 다음과 같다. ### preg_match('/필터링할 문자/', '입력할 문자') 해당 문제에서는 prob, _, ., (, )를 필터링 한 것을 알 수 있다. 뒤에 붙어 있는 i는 대소문자 구별하지 않겠다는 뜻이다. 즉, 해당 문제는 prob과 _를 필터링함으로써 특정 ..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 Mango를 함께 풀어볼 예정입니다. Mango Description 이 문제는 데이터베이스에 저장된 플래그를 획득하는 문제입니다. 플래그는 admin 계정의 비밀번호 입니다. 플래그의 형식은 DH{...} 입니다. {'uid': 'admin', 'upw': 'DH{32alphanumeric}'} Reference Serv dreamhack.io 문제 정보를 살펴보면 플래그는 admin 계정의 비밀번호라고 합니다. 또한 해당 문제의 이름을 통해서 MangoDB를 사용한다는 것도 추측해낼 수 있습니다. 워게임 사이트에 접속해 보면 아래와 같이 uid와 upw의 정보가 담긴 페이지가 로딩될 겁니다. 이어서 소스코드를 분석해보겠습니다. 9번째 코드를 보..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 devtools-sources를 함께 풀어볼 예정입니다. devtools-sources 개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. Reference Tools: Browser DevTools dreamhack.io 문제 정보를 살펴보면 개발자 도구의 Sources 탭 기능을 활용하면 된답니다. 문제 파일을 다운로드하고 압축 풀면 다음과 같이 4개의 html 파일이 들어가 있는 것을 확인할 수 있습니다. 모든 html 파일을 열어보면 각각 다음과 같습니다. 이번 문제는 소스 코드가 그닥 중요하지 않아서 바로 문제 풀이로 넘어가겠습니다. 크롬을 이용하여 아무 페이지에 접속한 후, 원도우는 F12, 맥OS는 option + co..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 xss-2를 함께 풀어볼 예정입니다. xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference ClientSide: XSS dreamhack.io 문제 정보를 살펴보면 해당 워게임은 XSS(Cross-Site Scripting)취약점을 이용하면 된다고 합니다. 워게임 사이트에 접속해 보면 아래와 같은 페이지가 로딩될 겁니다. 메인 화면에 vuln(xss) page, memo, flag 이렇게 총 3개의 링크가 있는데 하나 씩 클릭해서 확인해보면 각각 다음과 같습니다. vuln 페이지를 확인해보면 아무것도 출력이 안..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 csrf-2를 함께 풀어볼 예정입니다. csrf-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. Reference Client-side Basic dreamhack.io 문제 정보를 살펴보면 해당 워게임은 Cross-Site Request Forgery취약점을 이용하면 된다고 합니다. 워게임 사이트에 접속해 보면 아래와 같은 페이지가 로딩될 겁니다. 메인 화면에 vuln(csrf) page, flag, login 이렇게 총 3개의 링크가 있는데 하나 씩 클릭해서 확인해보면 각각 다음과 같습니다. 먼저 vuln 페이지는 아직 뭐가 뭔지 감이 안 잡힌 것 같습니다. flag 페이지는 ..