본문 바로가기

분류 전체보기202

[Webhaking.kr] old 18번 처음 18번 문제에 들어가면 나오는 화면이다. 제출 버튼과 RESULT 부분이 보이고 소스 코드를 확인 할 수 있는 것을 볼 수 있다. 먼저 문제를 풀기 위해 소스 코드를 확인했다. 긴 소스코드 중 가장 유심히 봐야 할 부분을 캡처하였다. 눈에 띄는 코드 부분이다. 첫 줄을 보면 'no'를 GET 형식으로 받아야 소스가 실행되는 것을 볼 수 있다. 두 번째 preg-match 부분을 보면 no를 입력 받고 값에 공백, /, /, \(,\), \t, |, &가 있을 경우, exit에 의해 함수가 실행되지 않고 종료된다는 것을 알 수 있다. 그 다음은 mysql 데이터베이스에서 id가 quest이고 입력받은 no 값과 일치하는 id를 검색하여 q라는 변수에 저장한다는 것을 알 수 있다. 소스코드에서 주석으로.. 2020. 11. 5.
[리버싱 핵심 원리] 14장, 실행 압축 14장, 실행 압축 14.1_데이터 압축 데이터 압축 : 큰 용량을 작은 용량으로 적절한 압축 알고리즘을 사용하여 크기를 줄이는 것 - 데이터 손실 없이 100% 원래대로 복원할 수 있으면 비손실 압축, 원래대로 복원할 수 없다면 손실 압축이라고 한다. 1. 비손실 압축(Lossless Data Compression) : 파일 크기를 줄여서 보관 및 이동에 용이하도록 하여는 목적으로 사용 - 7-zip, 빵집과 같은 압축 프로그램을 이용하여 파일을 압축하는 경우 - 대표적인 비손실 압축 알고리즘 : Run-Length, Lempel-Ziv, Huffman 등 - 많은 알고리즘이 있지만 적어놓은 3개의 알고리즘만 이해하면 나머지는 쉽게 이해가 가능함 - ZIP, RAR 등도 근본 압축 개념은 결국 Run-.. 2020. 10. 31.
[Reversing.kr] Easy Keygen 압축을 해제하니 txt 파일과 exe 파일이 함께 압축되어 있었다. txt 파일을 확인해보니 위와 같은 문구가 적혀있었다. exe 파일을 실행시키면 input name, input serial이라는 문구가 뜬다. 이름과 serial을 입력하라는 뜻인 것 같다. 메모장에 있는 serial이 힌트인 것 같다. 메모장의 serial과 연관된 이름을 찾으면 문제를 해결할 수 있을 것 같다. exe 파일을 올리디버거로 분석하기 위해 넣어 보았다. [마우스 우클릭] - [Search for] - [All referenced text strings]를 눌러 string을 확인했다. All referenced text strings는 문자열을 검색하는 방법이다. Corret!와 Wrong이 보인다. 이 문구가 name.. 2020. 10. 4.
[Webhaking.kr] old 17번 14번과 동일하게 처음 17번 문제에 들어가면 하나의 입력창이 뜬다. 아무 값이나 눌러보니 "Wrong"이라는 창이 나온다. 소스코드를 확인했다. Onclick = sub( ) 부분을 확인해보니 클릭을 누르면 sub로 넘어간다. sub( ) 함수가 있는 자바 스크립트 부분을 보면 login.pw.value가 unlock과 같다면(입력창에 입력한 값과 unlock의 값이 같으면, unlock의 값이 같으면, unlock/10으로 이동한다. F12를 누르고 개발자 도구의 콘솔을 통해 계산을 했다. "7809297.1"이라는 값이 나온다. "7809297.1"을 넣고 check을 누르니 이러한 창이 나온다. 문제를 풀었다! 2020. 10. 2.
[Webhaking.kr] old 14번 14번 문제에 들어가자마자 입력창이 하나 뜬다. 아무 값이나 넣어봤더니 'Wrong'이라는 창이 뜬다. 소스 코드를 보니 script로 되어 있는 이 부분이 중요한 것 같다. ul이란 변수에 document.URL이 들어있다. document는 현재 내 페이지를 뜻한다. ul에 ul.indexOf(".kr")의 값을 넣을 것이라고 다음 문장에 적혀있다. 자바 스크립트 부분이기 때문에 찾아보니 indexOf는 문자열 안에 조건이 되는 문자열이 몇 번째 위치에 존재하는지를 확인하는 함수이다. 즉, ul = ul.indexOf(".kr")은 변수 ul에 들어있는 문자열에서 .kr이 시작되는 위치를 숫자로 표현하여 다시 ul에 저장시키고 그 숫자로 변환된 ul 값에 30을 곱하여 다시 변수 ul에 저장하는 것이.. 2020. 10. 2.
[Webhacking.kr] old 32번 문제를 보니 랭킹, ,사용자 이름, hit 개수로 적혀 있다. 아래로 내려보니 1241번으로 랭킹에 올라있는 것을 볼 수 있다. 내 아이디를 눌러보니 이렇게 이미 투표를 했다는 창이 뜬다. 쿠키를 보니 vote_check 부분이 눈에 띈다. 값에 있는 ok를 다른 값으로 바꾸면 투표가 진행될 것 같다. ok 값을 값으로 차단이라는 부분에 체크를 눌러 ok를 차단시켜 준다. ok 값을 차단하니 투표가 되는 것을 확인할 수 있다. 2020. 10. 1.