파급력과 보안 전문가들의 관심도가 반드시 일치하지는 않는다.파급력이 크지만, 관심을 받지 못하는 공격 기법 한 가지에 대해서 다뤄보려고 한다. 그 전에 간단한 사실을 몇 개 짚어보자. HTTP 프로토콜은 Request와 Response로 나뉘어지고, Request와 Response는 헤더와 바디로 구분된다.Request 헤더가 너무 클 경우에 서버에서는 413 Request Entity Too Large, 400 Bad Request 등의 에러를 응답한다.크기 제한은 서버마다 다르지만 대체로 8kb가 넘어가면 대부분의 서버에서 에러를…
-
-
Side Channel Attack on WWW 2
이전 게시물에서 쿠키의 Samesite 속성이 Lax가 아닐 경우에 어떤 Side Channel Attack 공격이 가능한지 알아보았습니다.크롬이 80버전으로 업데이트되면서 Lax가 기본값이 되어 심각도가 충분히 떨어졌다고 생각하여 공개했는데, COVID-19때문에 해당 조치가 rollback 되었죠. 기왕 공개한거 해당 취약점을 여러 버그바운티 프로그램을 통해 제보한 결과를 보면서, 이 기술 부채의 심각성을 직접 느껴봅시다.각 사례가 어느 벤더인지는 명시하지 않겠습니다. 첫 번째 사례입니다.응답코드를 사용해서 권한 여부를 판별할 수…
-
Side Channel Attack on WWW
서문 약 2개월 전 크롬 80버전이 릴리즈 되었습니다.여러 변경이 있었지만 가장 중요한 패치는 역시 쿠키의 Samesite 옵션의 기본값이 Lax로 변경된 것이었죠.그런데 80버전이 릴리즈되기 전까지, 다시 말해 Samesite=Lax가 되기 전까지 셀 수 없을 정도로 많은, 우리가 아는 대부분의 웹사이트에 특정 종류의 취약점이 존재했습니다.과연 어떤 취약점이 존재했는지 알아보고, 그렇다면 Samesite=Lax 가 이 취약점으로부터 안전해지는 완벽한 대안인지 고민해봅시다. https://blog.chromium.org/2020/04/temporarily-rolling-back-samesite.htmlCOVID-19때문에 해당 조치가 rollback 되었습니다.이것은…
-
Host split attack
BlackHat, Defcon 시즌이 끝났습니다. 블랙햇 USA는 세계에서 가장 큰 해킹 컨퍼런스인만큼, 매년 흥미로운 발표가 있기 마련이죠. 올해에는 MS의 한 연구원이 Host split attack 이라는 발표를 내놓았는데 내용이 재미있어 정리해서 올립니다. 이 공격을 이해하기 위해서는 먼저 IDN(Internationalized Domain Name)에 대해서 이해를 해야합니다.IDN은 아스키코드가 아닌 다른 문자를 포함하는 도메인을 의미하는데, 가끔 보이는 어쩌구.한국 같은 도메인 역시 한글은 아스키코드가 아니므로 IDN입니다.이 IDN은 단지…
-
Webhacking Techtree
2019년 중순 기준으로 해킹의 분야 중에서 수 년 째 포너블의 강세가 계속되고 있습니다.그러나 실무에서는 웹해킹의 비중이 아직도 압도적으로 높습니다.모의해킹 업무를 나가면 90%는 웹이고 나머지 10%는 모바일이더라 라는 말도 있죠.정립된 웹해킹 공부 순서가 필요하다고 생각해 글을 작성합니다. 먼저 모든 해킹에 해당되는 말이지만, 해킹은 프로그래머의 실수를 잡아내는 학문이기에 프로그래밍 능력이 선결되어야 합니다.따라서 여러분이 첫 번째로 해야 할 일은 프로그래밍 능력을 기르기 위해…
-
Relative Path Overwrite
개요 Relative Path Overwrite (RPO) 는 브라우저와 서버가 상대경로를 해석하는 과정에서의 동작 차이를 악용한 최신 공격기법이다.이 기법을 이해하기에 앞서 URL의 상대경로와 절대경로의 차이에 대해 알아보자.절대경로는 프로토콜과 도메인 이름을 포함한 목적지 주소의 전체 URL을 의미한다.반면에 상대경로는 목적지의 프로토콜이나 도메인을 특정하지 않는다. 절대경로https://rubiya.kr/static/ 상대경로static/somedirectory 여기서 상대경로의 2가지 사용법이 존재한다.첫 번째로 우리는 현재 경로에서 “xyz”라는 디렉토리를 찾을 수 있다.두 번째로 directory traversal 기술을…
-
브라우저 XSS 필터 우회의 모든 것
이 글은 XSS Auditor, XSS 필터의 우회에 대해 다루고 있다.대상은 Chrome, Firefox, Edge, IE11, Safari, Opera 이다.만약 당신이 취약점 진단 업무를 하고있다면 XSS 필터의 우회가 가능하다는 사실을 널리 알리기 위해서 더 많은 우회 방법을 찾아서 알려주십시오.또한 이 글은 일반적인 상황에서 우회 가능한 케이스에 대해서만 다루고 있다.여기에서 다루지 않더라도 실제 상황에서는 더 다양한 방법이 있을 수 있다.당신이 보안 담당자라면 XSS 필터의…
-
strtoupper(<ſcript>)
해당 문서는 위의 트윗을 보고 추가적인 연구를 진행해 Theori 내부 세미나에서 발표한 결과물이다.(사장님 허락받고 올린다) (%C4%B1) 는 LATIN SMALL LETTER DOTLESS I를, (%E2%84%AA) KELVIN SIGN을, (%C5%BF) 는 LATIN SMALL LETTER LONG S를, (%C4%B0) 는 LATIN CAPITAL LETTER I WITH DOT ABOVE 를 의미한다. 그런데 자바스크립트 환경에서 %C4%B1를 touppercase() 하면 == “I”가, %c5%bf를 touppercase()하면 == “S”가 되고, %E2%84%AA 를 tolowercase() 하면…
-
RCE by lfi using php session file without angle bracket
개요 lfi는 local file include 의 줄임말로 공격자가 원하는 파일을 include 시킴으로써 소스코드를 leak하거나 임의의 코드를 실행시키는것이 목적이다. include를 통해 원하는 코드를 실행시키려면 payload가 담긴 파일이 서버내에 있어야 한다. ( 서버 외부에 있다면 remote file include 공격으로 분류하며 해당 기법은 서버 설정을 심하게 탄다. ) /proc/self/environ, access_log, error_log 등 다양한 방법이 제시되었으나 권한, 셋팅등의 이슈로 성공률이 희박해 좋은 대안이 되지…