본문 바로가기

Hacking/WebHacking.kr38

Webhacking.kr : old-27 (150 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. -> SQL INJECTION이라는 문구와 함께 source가 주어집니다. 코드를 보면 다음과 같습니다. -> GET 방식으로 no을 받습니다. -> no는 #, select , 공백, limit, =, 0x를 필터링합니다. -> 주석으로 admin의 no가 2임을 알려줍니다. 따라서 no의 값을 다음과 같이 작성하면 문제를 풀 수 있습니다. -2)%09or%09id%09like%09'admin'--%09 끝~~ 2021. 1. 25.
Webhacking.kr : old-25 (150 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. -> file의 값에 해당하는 파일을 읽어 주는 것 같습니다. 따라서 flag를 입력 해보았습니다. -> FLAG는 flag.php 코드에 있다고 하비다. -> 파일의 내용을 출력하는 것이 아니라 해당 php 파일을 실행하는 것으로 생각됩니다. 따라서 php Wrapper를 사용하면 flag.php 파일의 내용을 획득 할 수 있습니다. -> php://filter wrapper을 사용하여 flag.php의 내용이 base_64으로 나오게 됩니다. 이를 디코딩 하면 다음과 같이 flag를 획득하게 됩니다. 끝~~ 2021. 1. 25.
Webhacking.kr : old-19 (150 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. id 입력란의 기본 값이 admin으로 되어 있습니다. 제출을 클릭하면 you are not admin이라는 문구가 나타났다가 시간 좀 지나면 다시 해당 페이지로 돌아옵니다. F12 -> Elements 탭에서 코드를 확인해봤지만 정보를 쉽게 얻을 수 없었습니다. 따라서 임의로 guest라는 값을 넣고 제출해보았습니다. -> 해당 페이지에서 아무리 logout을 클릭해도 이전 페이지로 돌아가지 않았습니다. 따라서 쿠키를 확인해보았습니다. -> userid라는 쿠키가 생성되었습니다. 이때 해당 쿠키 값을 보면 %3D(=) 가 있는 것을 확인할 수 있습니다. base64으로 인코딩 되어 있다고 판단하였습니다. -> 예상에서 벗어난 값이 나왔습니다. (id is.. 2021. 1. 25.
Webhacking.kr : old-61 (200 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. -> 문제 페이지에는 아무런 힌트도 없어서 바로 source를 확인하였습니다. -> GET방식으로 id를 받습니다. 이때 id는 컬럼 이름입니다. -> 쿼리의 결과의 id가 admin이면 해결됩니다. 문제를 보고 바로 as(별칭)을 사용하면 된다고 생각하였습니다. 그 이유는 말로 설명하기 어렵고 다음 쿼리의 실행 결과를 보면 이해하시기 바랍니다. ** mysql 쿼리의 특성(?) ** 1) select 'admin' from test; => test 있는 데이터의 수만큼 컬럼의 이름이 admin이고 값이 admin이 출력됩니다. 2) select 'admin' admin from test; => test에 있는 데이터의 수만큼 컬럼의 이름이 admin이고 .. 2021. 1. 25.