😃 안녕하세요. 휴먼스케이프 loowin입니다. 😃
오늘은 휴먼의 공통 교양책인 [웹 해킹과 시큐어코딩]의 Part2 A4 - 취약한 접근 제어(Broken Access Control)에 대해 알아보겠습니다.
A4-취약한 접근 제어(Broken Access Control)란?
취약한 접근 제어는 인증된 사용자가 수행할 수 있는 것에 대한 제한이 제대로 적용되지 않는 것을 의미합니다.
공격자는 이러한 취약점을 악용하여 사용자의 계정 액세스, 중요한 파일 보기, 사용자의 데이터 수정, 액세스 권한 변경 등과 같은 권한 없는 기능, 또는 데이터에 액세스할 수 있습니다.
이러한 취약한 접근 제어 유형 중에 파일다운로드, 파일업로드, URL파라미터 조작 우회 방법에 대해 알아보겠습니다.
파일 다운로드
SQL 파라미터를 조작하여 시스템파일 등에 접근하는 공격기법을 의미합니다.
널바이트 인젝션 — C/C++에서 널바이트 문자열(%00, 0x00)은 문자열의 끝을 의미하기 때문에 특정 확장자를 숨기기 위한 목적으로 사용될 수 있습니다.
test.png를 호출하는 경우,
http://xxx.xxx.xxx/bbs.php?file=./test.png
널바이트를 삽입하여 호출하게 되면
http://xxx.xxx.xxx/bbs.php?file=./log.txt%00test.png
test.png를 무시하기 때문에 같은 위치에 있는 log.txt파일을 읽을 수 있게 됩니다.
php.ini의 설정 값 중, magic_quotes_gpc = On으로 설정하면 널바이트 공격에 대한 대비를 할 수 있습니다.
파일 업로드
게시판 업로드 기능에서 파일 확장자에 대한 검수가 수행되지 않는 경우 취약점이 발생하게 됩니다.
Content-Type값 변조 — 일반적으로 확장자 검사를 통해 파일업로드 공격을 막고 있습니다. 그러나 파일타입 변조를 통해 우회 공격을 시도해볼 수 있습니다.
Content-Type
application/octet-stream -> image/jpeg로 변조하여 다시 웹 서버로 전송하면 업로드 우회공격이 가능합니다.
Zero-Day 관련 업로드 취약점 — 매일매일 다양한 신규 취약점이 릴리즈되고 있는데요, 이러한 부분도 함께 매일 체크하면서 대응하는 것도 좋은 방법입니다.
“file upload vulnerability” 구글 검색을 통해서도 다양한 취약점을 확인할 수도 있습니다.
ex) CVE-2017–7695
CVE-2017–7695
파일업로드 시 xxx.php[space]를 이용하면 우회가 가능한 오류가 발견되었었습니다.
널바이트 인젝션 — 위의 파일다운로드 널바이트 인젝션과 같은 방식으로 우회 업로드가 가능합니다.
URL 파라미터 조작
타인 비밀글 보기 — URL파라미터 조작으로 비밀글로 등록되어 볼 수 없는 비밀글을 우회하여 보는 방법이 가능합니다.
자신이 쓴 비밀글의 수정페이지의 글 번호를 확인 후 수정하여 어떻게 변경되는지 추적을 해봅니다.
http://xxx.xxx.xxx/xxxxxxx.xxxxxx?seq=13
이렇게 글번호를 11로 변경한 후 비밀글 접근가능여부를 확인해볼 수 있습니다.
http://xxx.xxx.xxx/xxxxxxx.xxxxxx?seq=11
공지사항 글 변조 — 관리자만 접근 가능한 공지사항 등은 일반적으로 보기기능 밖에 제공되지 않기 때문에, 주소 및 파라미터 값을 변조하여 접근을 시도해볼 수 있습니다.
페이지에서 사용되는 cmd파라미터의 값을 변경해봅니다.
http://xxx.xxx.xxx/xxxxxxx.xxxxxx?cmd=view&no=13
view -> write로 변경한 후 접근가능여부를 확인해볼 수 있습니다.
http://xxx.xxx.xxx/xxxxxxx.xxxxxx?cmd=write&no=13
2. 페이지 주소에 view키워드를 이용한 페이지가 있다면 페이지 주소를 변경해 봅니다.
http://xxx.xxx.xxx/bbs/notice_view.asp?xxxxxxxx
view -> write로 변경한 후 접근가능여부를 확인해볼 수 있습니다.
http://xxx.xxx.xxx/bbs/notice_write.asp?xxxxxxxx
지금까지 OWASP에서 선정한 웹 취약점 A4 — 취약한 접근 제어(Broken Access Control)에 대하여 알아보았습니다.
다음 포스팅에서는 A5 — Security misconfiguration 에 대한 소개가 계속될 예정이니 기대해주세요.😃 감사합니다. 😄
[출처]
웹 해킹과 시큐어코딩 [탐지 수정 실습가이드]
Get to know us better! Join our official channels below.
Telegram(EN) : t.me/Humanscape KakaoTalk(KR) : open.kakao.com/o/gqbUQEM Website : humanscape.io Medium : medium.com/humanscape-ico Facebook : www.facebook.com/humanscape Twitter : twitter.com/Humanscape_io Reddit : https://www.reddit.com/r/Humanscape_official Bitcointalk announcement : https://bit.ly/2rVsP4T Email : support@humanscape.io