SMALL

분류 전체보기 117

[CodeEngn] Basic RCE L05

[문제] [풀이] 파일을 다운하여 임의의 문자열을 넣을면 오류 메시지가 출력된다. IDA를 열어 start 함수를 보면 UPX로 패킹되어 있는 것을 알 수 있다. 이에 윈도우 cmd 창에서 upx 언패킹을 하여 ollydbg로 분석해보았다. ollydbg로 [Searchfor] - [All referenced text strings]를 확인하면 프로그램 속의 문자열만 추출하여 보여준다. 여기서 Enter a Serial! 아래에 Registered User와 GFX-754-IER-954가 위치하였고, 이 다음 성공 메시지를 출력하고 있었다. 해당 값들이 실제 정답인지 확인하고자 코드를 확인하였다. 코드를 보면 Registered User 아래에 조건 분기문으로 00440F8C로 분기하는 것을 볼 수 있는..

Wargame/CodeEngn 2021.07.29

[Webhacking.kr] Old 17

[문제] [풀이] 문제의 소스코드를 확인하니 unlock에서 계산된 값을 login.pw.value와 비교하여 get 방식으로 ?unlock/10을 보내고 있었다. 태그를 보면 login의 pw가 우리가 입력하는 입력 창임을 알 수 있다. 따라서 Console 창에서 unlock 변수에 들어갈 값을 계산해보면 7809297.1이 된다. 즉, 이 값을 입력 창에 입력해주면 되는 것이다! https://webhacking.kr/challenge/js-4/?780929.71 url 또한 unlock/10의 값이 파라미터로 연결된 것을 볼 수 있다.

[Webhacking.kr] Old 16

[문제] [풀이] Challenge 16 * 문제의 스크립트를 확인해보니 if(cd==??) 문 중에서 if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it! 부분만 다른 부분과 달랐다. 주석으로 do it이 있는 것으로 보아 해당 부분이 문제 풀이의 힌트가 될 것 같다. String.fromCharCode() 함수에 대해서 찾아보았는데, 와 같이 hex 값을 유니코드로 바꿔준다고 한다. 해당 값을 Console 창에서 실행해보면, |.php 파일을 나타내면서 flag를 출력한다. url 주소창을 보면 https://webhacking.kr/challenge/js-3/%7C.php 로 변경되어 있음을 확인할 수 있고, 7C가 | 로 변경되..

[리눅스] Bandit level 30 -> level 31

[문제] [풀이] /tmp/sik 폴더를 만들어 문제에서 주어진 파일을 다운하였다. 다운한 파일의 repo 폴더 속의 README.md 파일을 확인하니 password에 관한 정보를 얻을 수 없었다. 로그와 branch 또한 문제 풀이에 도움이 될만한 정보는 없었다. ls -al로 폴더를 확인해보면 .git 디렉토리가 존재한다. 압축된 태그를 확인하면 refs/tags/secret이라는 태그를 확인할 수 있다. 해당 폴더에서 태그를 확인해서 내용을 읽으면 password를 구할 수 있었다. 또한, 태그를 리스트를 확인해봐도 secret 태그를 확인해볼 수 있다. [핵심] git 태그(Tag)란 git에서 태그란 우리가 알고 있는 것처럼 무언가 표시를 해두기 위한 태깅 기능을 위한 것으로, 특정 커밋을 태..

Wargame/bandit 2021.07.26

드림핵(dreamhack) 6강 - NX bit의 등장

NX bit? -> No-eXecute bit로 NX bit가 설정되어 있을 경우에는 쓰기 권한과 실행 권한이 동시에 있는 메모리 영역이 존재하지 않음. - 공격자의 코드를 메모리에 저장할 수 없어 메모리 내부의 실행 권한이 있는 영역에 존재하는 코드만 사용해야 함. RTL(Return To Libc) : 리턴 주소를 라이브러리 내에 존재하는 함수 주소로 변경해 NX bit를 우회하는 공격 -> 메모리에 미리 적재된 공유 라이브러리를 이용해 바이너리에 원하는 함수가 없어도 공유 라이브러리에서 원하는 함수르 사용할 수 있는 공격 기법 libc.so.6 라이브러리에 포함된 함수 - execve - execlp - execvp - system - popen 등등 프로그램을 실행할 수 있는 함수들 존재함. *s..

카테고리 없음 2021.07.26

[HackCTF] BOF_PIE

[문제] [풀이] 문제 파일을 실행해보니 j0n9hyun 의 주소를 알려주고 종료가 되고 있다. 또한, 일정 값 이상 입력 시 버퍼 오버플로우가 발생하고 있다. 그런데, 주소 값이 계속해서 바뀌고 있으며 주소의 뒷자리 0x909는 고정되고 있었다. 이에 ida로 분석해보니 j0n9hyun 함수는 0x890이었지만, welcome 함수가 0x909인 것으로 보아 프로그램 실행 시 제공되는 주소는 welcome 함수의 주소인 것을 알 수 있다. checksec으로 보호기법을 확인해보니 문제 이름 처럼 PIE 보호 기법으로 인해 주소 값이 랜덤으로 바뀌는 것을 알 수 있다.(ASLR과 유사) gdb를 통해 함수를 확인해보니 j0n9hyun, welcome, main함수에 집중하여 보면 될 것 같다. main ..

Wargame/HackCTF 2021.07.26
LIST