웹셸을 업로드하면 되는 문제이다. 예전에 리눅스에서 사용하던 webshell.php파일이 있어서 올려봤더니 올바르지 않은 파일 형식이라고 떴다. 그러면 .php를 .PHP로 바꿔서 해봤는데 리눅스에선 업로드가 되었다! 근데 윈도우에서 업로드하면 안돼서 찾아보니 원래 안되는게 맞다.. 웬만하면 정석으로 문제를 푸는게 맞기에 버프스위트를 이용해서 풀어보기로 했다. flag를 읽는 웹셸 파일을 만들고 버프스위트에서 image/png 파일로 형식을 숨겨서 보내줬다. 그 후 아래와같은 화면을 얻을 수 있는데 url을 클릭해보면 flag를 획득했다!
분류 전체보기
readme 파일을 클릭하면 access denied가 뜬다 대충 readme 파일에 flag가 있는거 같다. hi 파일에는 hello~ 라는 문자만 있고 해서 search에 hello를 쳐봤는데 guest 테이블 밖에 안나왔다. 그래서 flag{ 도 쳐봤는데 admin테이블만 나왔다. 그럼 flag{ 뒤의 문자열을 무차별 대입해서 찾아내기만 하면 된다! 버프스위트의 인트루더 기능을 사용해보고 싶었는데 시간이 너무 오래 걸리고 사용법도 익숙치 않아서 파이썬으로 넘어왔다. from requests import post host = "https://webhacking.kr/challenge/web-33/" password ="flag{" str = "acdefghiklmnostuy_" isStr = Fals..
스택 프레임이란 ESP(스택 포인터)가 아닌 EBP(베이스 포인터) 레지스터를 사용해 스택 내의 로컬 변수, 파라미터, 복귀 주소에 접근하는 기법이다. ESP레지스터의 값은 수시로 변경되기 때문에 스택에 저장된 변수나 파라미터 등을 ESP를 기준으로 하면 프로그램을 만들기 힘들 수 있다. 따라서 어떤 기준 시점의 ESP 값을 EBP에 저장하고 이를 함수 내에서 유지시켜주면, ESP가 변한다 한들 EBP를 기준으로 안전하게 접근 할 수 있다. PUSH EBP ; EBP 사용 전에 기존 값을 스택에 저장 MOV EBP, ESP; 현재 ESP를 EBP에 저장 .... MOV ESP, EBP; ESP를 정리(함수 시작때의 값으로 복원) POP EBP; 리턴되기 전 원래 EBP 값으로 복원 RETN
ESP는 스택을 나타내는 스택 포인터이다. PUSH를 이용하여 스택에 값을 넣으면 스택 포인터는 위로 움직이고 (스택 포인터의 값이 감소하고) POP을 이용하여 스택에서 값을 빼면 스택 포인터는 아래로 움직인다. (스택 포인터의 값이 증가한다)
명령어 단축키 설명 Restart Ctrl+F2 처음부터 디버깅 시작 Step Into F7 하나의 Op Code 실행(CALL 명령어 만날 시 함수 내부로 진입) Step Over F8 하나의 Op Code 실행(CALL 명령어 만날 시 함수 내부로 진입X) Execute till Return Ctrl+F9 함수 코드 내에서 RETN 명령어까지 실행 Go to Ctrl+G 원하는 주소로 이동 Execuite till Cursor F4 Cursor 위치까지 실행 Show the previous Cursor - 직전커서 위치를 다시 보여줌 (뒤로가기) Show the current EIP * 현재 EIP 위치를 보여줌 Set/Reset BreakPoint F2 BP 설정/해제 View-Breakpoints..