SMALL

전체 글 117

[Webhacking.kr] Old - 32

[문제] [풀이] 문제에 접속하니 점수 별 리스트가 나열되어 있었다. 아무 이름이나 클릭을 했을 때 이미 투표했다는 팝업창이 뜬다. 소스코드에서 문제 풀이를 위한 것을 확인할 수 없어서 쿠키값을 확인하였다. 쿠키 값을 보니 vote_check에 ok라고 되어 있는데, 이미 투표가 진행되었다는 표시인 것 같아 이를 없애고 다시 눌러보았더니 점수가 1만큼 올라갔다. import requests URL = 'https://webhacking.kr/challenge/code-5/?hit=[id]' cookies = {'PHPSESSID': '[value]'} for i in range(100): requests.get(URL, cookies=cookies) [핵심] [출처]

카테고리 없음 2021.08.19

[Webhacking.kr - Old 25]

[문제] [풀이] 문제를 살펴보면 터미널 창의 파일 목록을 확인했을 때 볼 수 있는 결과 값을 확인할 수 있다. url을 살펴보면 file에 hello가 들어가 있는데, 문제를 통해 확인해보면 hello.php 가 hello로 변환되어 있다는 것을 볼 수 있다. http://webhacking.kr:10001/?file=hello 그렇다면 flag.php 파일 또한 flag로 입력하면 보일 것이라 생각되는데, 직접 실행해보면 다음과 같다. 이렇게 FLAG is in the code라는 문자열만 출력되고 flag를 획득할 수 없다. flag.php 소스코드를 읽어야 flag를 획득할 수 있는데 서버 내에 존재하는 flag.php 파일을 읽기 위해서는 LFI 취약점을 이용해야 한다. http://webhac..

[HackCTF] yes_or_no

[문제] [풀이] 바이너리를 실행해서 임의의 숫자를 입력하면 system+1094를 실행해보라는 메시지와 함께 종료된다. -> do_system+1094는 2.27 glibc 버전에서 system 함수 내에서 발생하는 오류 -> rsp 값이 16바이트로 채워져 있지 않으면 do_system+1094에 존재하는 명령어에서 오류 발생(gadget를 잘 넣어야 한다~~!) gdb 분석 전 보호 기법부터 확인해보면 다음과 같다. NX bit가 걸려있는 것으로 보아 쉘코드 삽입은 불가해보인다. 또한, RELRO 가 Partial이므로 data, stack, heap 영역이 읽기 권한만 가진다는 것을 알 수 있다. -> Got Overwrite를 떠올릴 수 있다! 그리고, ldd 명령을 통해 ASLR이 걸려있음을 ..

Wargame/HackCTF 2021.08.15
LIST