[Webhacking.kr] Old - 13 Write Up
2021. 6. 16. 20:37
워게임/webhacking.kr
어떤한 기능을 가진 페이지인지는 한번에 파악을 못 했지만, 힌트로 SQL Injection 문제라고 알려주고 있다. HTML 코드를 살펴봤지만 힌트로 보이는 것은 없었다. 그래서 나는 일단 값을 보내서 어떤 결과를 출력하는지 살펴봤다. 1을 보내니, Result 값으로 1이 출력되었다. 1말고 다른 정수들을 넣어봤지만, 결과는 0이 출력되었다. 아마 False 값으로 0이 출력되는 듯하다. True로 만들어서 보내니, 1이 출력되었다. 일단 직접 확인한 테이블 안에 있는 no는 1밖에 없는 것으로 보인다. SQLi을 진행하기 전에 필터링되는 문자들을 찾아봤다. 직접 손으로 테스트를 해보니, 공백, =, like, >, >>', columnName) return columnName url = 'https:..
[Webhacking.kr] Old - 9 Write Up
2021. 6. 14. 18:26
워게임/webhacking.kr
Webhacking.kr Write Up Old - 9 패스워드와 페이지 넘버가 있었다. 문제를 파악하기 위해 각 페이지를 확인을 해봤다. No 3번 페이지에서 힌트가 주어졌다. 컬럼이 id와 no이 있다는 것이다. 그리고 no 3의 id는 password라는 중요한 단서를 주어졌다. 위 정보를 활용하여 no 파라미터에 SQLi를 삽입하여 no 3의 id를 찾아보도록하겠다. 일단 필터링되는 문자를 찾아보도록 하겠다. 직접 값을 넣어보면서 확인해보니, ', 공백, Select, From, =, >,
[Webhacking.kr] Old - 57 Write Up
2021. 6. 12. 12:13
워게임/webhacking.kr
이상한 페이지가 나왔다. 일단 어떤 기능을 가진 페이지인지 확인과 SQL 에러가 출력되는지 확인하기 위해 '를 넣어봤다. Done이 출력되었다. HTTP는 GET 메소드로 msg, se 파라미터를 서버에 전송하고 있었다. msg는 message이고, se는 라디오 버튼이다. 대충 페이지를 파악을 했으니, 코드를 살펴보겠다.
[Webhacking.kr] Old - 45 Write Up
2021. 6. 11. 05:43
워게임/webhacking.kr
어디서 많이 본 페이지가 나왔다. 디폴트 값을 Get 메소드로 서버에 보내니, id가 출력되었다. 코드가 주어져서 확인을 해봤다. if($_GET['id'] && $_GET['pw']){ $db = dbconnect(); $_GET['id'] = addslashes($_GET['id']); $_GET['pw'] = addslashes($_GET['pw']); $_GET['id'] = mb_convert_encoding($_GET['id'],'utf-8','euc-kr'); if(preg_match("/admin|select|limit|pw|=|/i",$_GET['id'])) exit(); if(preg_match("/admin|select|limit|pw|=|/i",$_GET['pw'])) exit();..
[Webhacking.kr] Old - 44 Write Up
2021. 6. 9. 23:55
워게임/webhacking.kr
무슨 기능을 하는 페이지인지 모르겠어서 일단 이름을 넣어서 서버에 보내봤다. 입력한 이름을 ‘hello!’에 이름을 붙어서 출력하는 기능인 페이지로 확인됐다.
[Webhacking.kr] Old - 40 Write Up
2021. 6. 8. 06:20
워게임/webhacking.kr
문제 페이지에 들어가니, 3개의 파라미터로 로그인을 하는 페이지가 나왔다. Input의 Value가 지정되어 있어서 값들이 채워져 있다. 디폴트 값을 확인해보니, type이 Password라서 안보였던 값이 볼 수 있었다. 디폴트 값인 No = 1, Id = guest, Pw = guest로 로그인을 시도하니, Get 메소드로 파라미터가 전달되고 ‘Success - guest’가 출력된 후 로그인 페이지로 리다이렉트되었다. 나는 순서상 No이 가장 먼저 있어서 쿼리문에 들어가는 것도 No가 먼저 들어갈 거라는 추측으로 다양한 시도를 해봤다. 그 중 하나로 no의 값을 1말고 다른 숫자를 넣어봤지만, Failure이 출력되었다. 많은 숫자들 중에서 오직 0만 아무 출력도 되지 않고 그대로 리다이렉트를 하였..
[Webhacking.kr] Old - 28 Write Up
2021. 6. 7. 18:13
워게임/webhacking.kr
파일 업로드 페이지가 나왔다. Flag가 안 나올 것을 알지만, flag.php 파일을 클릭하여 출력해봤다. 새 하얗다… 아무것도 출력이 안됐다. 아마도 PHP 코드 안에 flag가 있는데 PHP가 실행되어서 아무것도 나오지 않는 듯 하다.. “그렇다면, 웹쉘을 업로드하면 웹쉘이 작동될까?”라는 생각을 하고 웹쉘을 업로드하였다. PHP가 실행되지 않고, 읽기 모드로 브라우저에 출력되었다. flag.php는 실행되면서, 내가 올린 파일은 실행도 안된다는 것에 한탄을 하면서 flag.php의 php 비활성화 방법을 찾아봤다. 1시간이 넘는 시간 동안 인터넷에 검색과 내가 알고있는 방법을 동원해도 통하지 않아서, 결국 다른 사람의 풀이 참고하였다. 다른 사람들은 .htaccess를 통해 간단하게 php 비활성..
[Webhacking.kr] Old - 22 Write Up
2021. 6. 7. 18:11
워게임/webhacking.kr
Admin으로 로그인하는게 이번 문제의 미션이다. 혹시 guest 계정도 있을 것을 같아서 guest/guest로 로그인 시도하니, Login Fail이 출력되었다. admin/admin으로 로그인을 시도하니, 이번 역시 Login Fail이 출력되었다. 이번엔 SQLi를 시도하니, 패스워드가 틀렸다고 출력되었다. False를 삽입하면 어떻게 되는지 궁금하여, admin' and 1=0#를 넣어서 시도하였다. True의 값과 다른 출력을 볼 수 있었다. 이것을 이용하여 Blind SQLi를 시도할 수 있을 것 같다. 로그인이 성공하면 어떤 결과가 나오는지 궁금하여, Join 페이지에 들어가서 lrtk/lrtk으로 계정을 만들었다. 로그인을 해보니, 패스워드의 해시값이 출력됐다. 해당 해시의 길이가 32 ..