Race Condition that could Result to RCE - (A story with an App that temporary stored an uploaded file within 2 seconds before moving it to Amazon S3)

링크:

요약:

  1. sql injection으로 내부 dashboard의 admin 권한을 얻음
  2. upload.php라는 기능에서 php 확장자를 필터링하지만 modify.php라는 이전에 올린 파일을 수정하는 기능에서는 php 필터링을 확장하지 않아서 쉽게 php 파일을 업로드하는 것이 가능했다. (웹쉘 업로드)
  3. 문제는 이 웹쉘 업로드한 것을 S3로 옮길 뿐더러 경로를 알 수 없다는 것. 이것을 우회하기 위해 modify.php에 여러번 리퀘스트 패킷을 발생시키니 레이스 컨디션이 발생하여 에러와 함께 파일의 풀경로가 출력됨
  4. 위의 얻은 경로를 계속 요청하며 파일을 업로드하면 S3로 옮기기 전에 파일이 남아있을 때 운좋게 접속하면 쉘 획득

Exploiting JSONP and Bypassing Referer Check

https://medium.com/bugbountywriteup/exploiting-jsonp-and-bypassing-referer-check-2d6e40dfa24

JSONP가 뭔가 해서 인터넷을 찾아봤는데 다음 링크가 가장 잘 나와있는 듯하다.

http://dev.epiloum.net/1311

SOP를 우회하기 위해 JSONP라는 기법을 이용하게 되는데, 문제는 이를 사용하는 서버에서 데이터를 유출할 수 있다는 점이다. 하지만 해당 서버에서 Referer header를 체크하는 보안 검증 기법이 있었고 단순하게 해당 속성을 no-referrer 로 주어서 해결하였다.