분류 전체보기
-
[정리] 23.02.../정리 2023. 3. 2. 02:48
블로그에 작성한 글을 토대로 23년 2월, 한 달 동안 공부한 내용을 정리해보자. [Wargame] Webhacking.kr : Challenge 8 pwnable.kr : Level 4 *블로그에 없는 개인 공부* SQL : Programmers 새로 추가된 문제(완) PortSwigger LAB(8개) - 아마 더 이상은 안 할 것 같다.. (뒤로 갈수록 PRO를 사용하는 정답이 있다.) Suninatas 4147점 달성 H4C 1025점 달성 Root-Me 205점 달성 Overthewire - leviathan, krypton(완) 이번 달은 저번 달보다도 글 작성을 더 못했다. 다양한 사이트의 다양한 문제들을 보면서 공부할 것들이 늘어나고 있지만, 착실히 수행 중이다. 블로그에 wirte-up을..
-
[Webhacking.kr] Challenge 8Wargame/Webhacking.kr 2023. 2. 27. 02:17
Challenge 8을 풀어보자. 문제 화면을 보면 hi guest라는 문구와 view-source 링크가 있다. 힌트를 보기 위해 소스 페이지로 가보도록 하자. 이번 문제는 db에서 select로 id를 불러오고, 그 id가 admin이면 문제가 해결된다. select의 조건인 where 구문을 보면, 접속한 User-Agent에 따라 id를 조회하는 것 같다. 특별히 어려운 부분은 없으니, 문제에 대한 해석은 이쯤하면 될 것 같다. Burp Suite으로 해결을 하면 쉽겠지만, 공부를 하면서 알게 된 새로운 도구를 사용해보도록 하자. 크롬의 확장 프로그램 중 ModHeader라는 것을 사용해보도록 하겠다. 요청과 응답의 헤더 부분을 조작할 수 있는 프로그램이다. 아래와 같이 User-Agent를 만들..
-
[pwnable.kr] Level 4 - flagWargame/pwnable.kr 2023. 2. 5. 08:09
Level 4 - flag를 풀어보자. 문제를 보면 리버싱이 필요하다는 것을 알 수 있다. 우선은 파일부터 다운로드받고 시작해보자. Kali에 접속해 wget으로 flag 파일을 다운로드 받았다. 리버싱을 해보기 위해 실행 파일이 되어야 할 것 같은데 유저의 허가권에 실행 권한이 없다. chmod로 실행 권한을 추가해주고, flag 파일을 실행하니 문구가 한 줄 나타난다. flag를 어떤 곳에 malloc 하고, strcpy 할 것이니 가져가라는 뜻인 것 같다. gdb로 분석을 하면 간단하게 알 수 있을 것 같다. 그런데, gdb로 main 함수를 분석하려고 하면 symbol이 없다고 하며 분석이 되지 않는다. 사진에는 없지만, 구글링을 통해 다른 몇 가지 방법들도 사용해 봤지만 flag 파일은 분석이 ..
-
[정리] 23.01.../정리 2023. 2. 4. 23:08
블로그에 작성한 글을 토대로 23년 1월, 한 달 동안 공부한 내용을 정리해보자. [Wargame] L.O.S : Level 29 ~ Level 31 Webhacking.kr : Challenge 4 ~ Challenge 7 pwnable.kr : Level 1 ~ Level 3 *블로그에 없는 개인 공부* SQL : Programmers 새로 추가된 문제(완) PortSwigger Server Side Topics LAB(56개) Lena-Reversing 시작 Suninatas 1616점 달성 H4C 685점 달성 Root-Me 110점 달성 이번 달은 블로그에 글 작성을 거의 하지 못했다. 할 수는 있었지만, 안 했다고 하는게 맞을 것 같다. 워게임을 풀어 나갔지만 막히는 부분들이 다소 나왔고, 개..
-
[Webhacking.kr] Challenge 7Wargame/Webhacking.kr 2023. 1. 14. 17:53
Challenge 7을 풀어보자. 문제 화면을 보면 Admin page라는 문구와 auth 버튼, view-source 링크가 있다. 바로 auth 버튼을 눌러보았지만, Access_Denied! 라는 알림창이 뜬다. 힌트를 보기 위해 소스 페이지로 가보도록 하자. 지금은 정체되어 있지만, LOS 문제를 풀어본 덕에 SQL Injection 문제라는 것을 보자마자 알 수 있었다. 코드의 내용은 val 파라미터를 받아 문자열 필터링을 우회해 lv에 2를 넣어주면 된다. 특히, 문자열 필터링 부분에서 \s는 공백을 의미한다. (저걸 못 보고, 공백을 넣어서 시간이 조금 걸렸다..) rand를 1로 생각하고 쿼리를 작성해보자. chall7 테이블의 lv 컬럼에 없을 만한 숫자를 where로 넣고 union s..
-
[Webhacking.kr] Challenge 6Wargame/Webhacking.kr 2023. 1. 14. 01:12
Challenge 6을 풀어보자. 점수에 맞게 비교적 난이도가 쉬운 문제이다. 문제 화면을 보면 ID와 PW가 있고, view-source의 링크가 있다. 특별히 힌트가 될 부분은 없어 보이니, 소스 코드를 보도록 하자. 소스 코드를 보면, 쿠키가 없을 때 "guest"의 id와 "123qwe"의 pw를 가지게 된다. 그 후 base64로 인코딩을 20번 반복하고, 1 ~ 8까지의 숫자는 특수 문자로 변환한다. 그리고 그 두 값을 user와 password의 이름으로 쿠키 값으로 갖도록 한다. 아래에 코드가 잘려 있지만, 그 과정을 반대로 거친 후 문제 페이지에 해당 값을 ID와 PW로 보여준다. 먼저 쿠키 값을 확인하기 위해 크롬의 개발자 도구에서 Application 탭을 봤다. user와 passw..
-
[Webhacking.kr] Challenge 5Wargame/Webhacking.kr 2023. 1. 13. 00:56
Challenge 5를 풀어보자. 몇 가지 개념들이 필요하긴 하지만, 쉽게 해결이 가능한 문제이다. 문제 화면을 보면 Login과 Join이라는 두 개의 버튼이 보인다. 그 외에는 검은 바탕밖에 없으므로 소스 코드를 보도록 하자. 소스 코드를 봐도 별다른 내용이 없다. 단지 login.php 페이지로 이동할 뿐인데, 자세히 보면 Join 버튼을 누르면 요청이 거부되고 있다. 여기에 무엇인가가 있을 것 같은 생각이 든다. login.php 페이지로 와 아무 내용이나 입력해 봤지만, 역시나 정상적인 접속은 되지 않는다. 이곳에는 무엇인가 힌트가 있을까해서 소스 코드를 봤지만 아무 내용이 없다. 앞에서도 생각했지만 Join 버튼을 이용해야만 해결할 수 있을 것 같다. 어떻게 Join 버튼을 이용할 수 있을까?..
-
[Webhacking.kr] Challenge 4Wargame/Webhacking.kr 2023. 1. 12. 11:57
Challenge 4를 풀어보자. 어떻게 풀어야 하는지는 알고 있었지만, 도무지 코드를 짤 수가 없어서 오래 걸린 문제이다. 결국 비효율적으로, 출제자의 의도와는 다르게 풀어 아쉬운 문제이다. 문제 화면을 보면 긴 문자열이 있고, Password를 제출하는 칸이 있다. 문자열만 나와있는 것을 보니 아마도 hash 값을 나타내는 것 같다. 문제 페이지에는 별다른 힌트가 없기 때문에 소스 코드를 보도록 하자. sha1 해시 알고리즘이 적용되어 있다. 천만 단위의 수에 salt_for_you라는 salt 값을 붙여 500 번의 sha1 해시 알고리즘을 적용한다. 문제 페이지의 Password 입력값을 key로 받고, 그 값이 알고리즘을 적용한 hash 값과 같으면 해결된다. 문제를 해결하는 건 간단하다. 알고..