web_security

robots.txt 란?

HawordFREAKEK 2020. 2. 15. 20:53

네 안녕하세요. Godhaword 입니다.


문제를 풀다가 bot이나 로봇 같은 힌트가 나오면 주소창에 아무 생각 없이 /robots.txt를 쳐보는 습관이 생겼습니다. 그렇게 하면 문제는 풀리더라고요. 하지만 그 원리나 robots.txt 가 무엇을 뜻하는 지는 아직도 몰라 이렇게 공부하며 글을 남겨봅니다.(ctf 기준 50~100점 문제에 로봇 문제가 있고, 그 문제는 그냥 robots.txt 넣으면 문제는 풀립니다.)


목차는

1. 정보노출 취약점이란?

2. 정보노출 취약점이 발생하는 이유

3. 정보노출 취약점을 공격하는 방법

4. 정보노출 취약점 공격 예제 (3번과 4번은 한 번에 설명해드리겠습니다.)

5. 정보노출 취약점을 보완하는 방법


순으로 가겠습니다.





1. 정보노출 취약점이란?


robots.txt 파일에 디렉터리가 노출되는 취약점입니다.

Q : robots.txt 가 그럼 뭔가요?

사이트에 웹 크롤러같은 로봇의 접근을 막기 위한 약속이라 합니다.

(이것 외에도 개발자 소스 창에 mysql 이나 flashplayer 버전 노출 같은 것도 있지만 이번 글에서는 robots.txt 위주로 설명하겠습니다.)


User-agent: * Disallow:/

형식을 대충 이런 식으로 되어있는데, 모든 로봇에게 문서 접근을 불허한다는 뜻입니다.

User-agent: * Allow:/


이건 모든 로봇에게 문서접근을 허가한다는 것이고

User-agent: googlebot Disallow:/godhaword/


위 같은 형식은 googlebot에게 godhaword라는 특정 디렉토리의 접근을 차단한다는 뜻입니다.





2. 정보노출 취약점이 발생하는 이유


대부분의 robots.txt 에는 중요한 정보가 없지만 만약 robots.txt에 관리자가 관리자 웹페이지 같은 정보를 띄우두게 올려두게 되면, 공격자는 쉽게 /robots.txt라는 공격문으로 관리자 웹페이지에 중요 정보를 볼 수 있게 됩니다.







3,4. 정보노출 취약점 공격 방법 및 예제


hackctf의 /라는 문제입니다.

다른 사이트에선 이런 유형의 문제를 bot이나 robot 같이 쉽게 유추 가능한 이름을 넣어서 짓습니다.

hackctf의 / 라는 이름은 최상의 경로라는 것을 담은 힌트라고 생각 됩니다.

일단 대놓고 로봇이라는 힌트가 이렇게 있네요.

뒤도 돌아보지 않고, /robots.txt를 쳐봅니다.



모든 로봇의 /robot_flag/ 접근을 불허한다 합니다.

flag네요. 제가 접근해 보겠습니다.

크으...  EZ

초보자 분들도 robots.txt 라는 개념만 있으면 간단한 ctf 의 기본문제는 하나 풀 수 있게 됩니다.


참고로 각 사이트 대표 봇 이름은

google 은 googlebot

naver 는 Yeti

Daum은 Daumoa

google image는 googlebot-image

등이 있습니다. 다른 봇들은 그 때 그 때, 검색해보심이 좋을 것 같습니다.





5. 정보누출 취약점을 보완하는 방법


1. 만약 관리자 웹 페이지가 있다면, 해당 웹 페이지는 특정 ip나 특정 권한 없이는 접근이 불가능 하게 막으면 robot.txt로 관리자 웹페이지를 획득해도 접근 못하게 막는 것도 방법입니다.






저도 tistory 블로그 운영하면서 메타태그나 googlebot 관련 단어를 좀 본 적 있는데 이게 이렇게 연관되어 있을지는 몰랐네요.


혹시 궁금하시거나 모르겠는 점은 댓글로 부탁드립니다.


'web_security' 카테고리의 다른 글

ntds.dit  (1) 2024.08.30
국산 토종 종갓집 웹쉘  (1) 2023.04.18
sql injection payloads  (0) 2021.07.20