반응형
webhacking.kr old 08번 문제풀이(Writeup)
문제를 들어가면 위와 같이 출력된다. 이번에도 admin 계정으로 로그인이 필요해 보이는 문제이다. 코드를 확인해보자.
문제풀이의 핵심은 HTTP_USER_AGENT 값이 admin이 되어야 한다. 따라서 마지막 if문에 mysqli_query에서 user-agent값을 변경해서 admin으로 로그인하는 것이 중요하다.
이 문제도 지금까지 문제와 마찬가지로 SQL Injection으로 풀어야 하는 문제이다.
PHP getenv() 함수 설명
getenv()는 내장함수로, 인자의 값에 따라 해당되는 환경변수 값을 알려주는 함수이다.
getenv 사용방법
getenv("http_host") | 홈페이지 주소값을 얻을 때 |
getenv("http_referer") | 전 페이지 주소값을 가져올 때 |
getenv("request_method") | 데이터 전송방식(method)확인할 때 |
getenv("remote_addr") | 웹사이트에 접속한 컴퓨터의 ip 주소 출력 |
getenv("document_root") | 서버 디렉토리 경로 |
getenv("temp") | temp폴더 경로 |
getenv("http_user_agent") | 웹 사이트를 접속한 컴퓨터의 웹브라우저 정보 |
getenv("sever_software") | 웹서버의 소프트웨어 |
getenv("server_port") | 사용중인 포트 |
먼저 이 문제는 HTTP-USER-AGENT를 변경이 필요한 문제이므로 먼저 Burp Suite를 켜서 진행했다.
먼저 User-Agent 값을 바꿔서 아무 값이나 넘기니 query error가 출력된다. query error 는 insert할 때 쿼리가 잘못되면 나오는 문장이다.
insert into chall(agent, ip, id) 중에 우리가 바꿀 수 있는 것은 agent 부분이다. 따라서 뒤를 생략한다고 했을 때
insert into chall8('agent', 'ip', 'admin')#, ip, id)
위 문장의 형태로 SQL Injection이 진행되면 된다. 따라서 아래와 같다.
insert into chall8('hacker', '123', 'admin')#, ip, id)
위와 같이 SQL Injection 문을 만들어서 입력했다.
query error 없이 성공했다. 이제 hacker로 접속해보자.
hacker로 User-Agent를 변경해서 입력하니 admin으로 접속이 되었다.
728x90
'웹해킹 > webhacking.kr' 카테고리의 다른 글
webhacking.kr old 12번 문제풀이(Writeup) (0) | 2022.10.13 |
---|---|
webhacking.kr old 10번 문제풀이(Writeup) (0) | 2022.10.12 |
webhacking.kr old 07번 문제풀이(Writeup) (0) | 2022.10.10 |
webhacking.kr old 05번 문제풀이(Writeup). 디렉터리 리스팅 취약점 설명 및 응용 (0) | 2022.10.09 |
webhacking.kr old 22번 문제풀이(Writeup) (0) | 2022.10.08 |