CTFHub의 스킬 트리가 -Web- 파일 업로드를 절단 -00


당신이 cnblog 저자의 carr0t2 기사로이 표시되지 않는 경우, 그것은 원래의 페이지 레이아웃에 더 나은 접근 할 것을 권장합니다, 이미지 경험

이름



여기에 웹 페이지 코드는

if (!empty($_POST['submit'])) {
    $name = basename($_FILES['file']['name']);
    $info = pathinfo($name);
    $ext = $info['extension'];
    $whitelist = array("jpg", "png", "gif");
    if (in_array($ext, $whitelist)) {
        $des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext;
        if (move_uploaded_file($_FILES['file']['tmp_name'], $des)) {
            echo "<script>alert('上传成功')</script>";
        } else {
            echo "<script>alert('上传失败')</script>";
        }
    } else {
        echo "文件类型不匹配";
    }
}

사고

  • 00 잘린 컨텐츠를 검색
  • C 언어 중등 학교는 마찬가지로, 문자열의 끝의 끝의 표시로 00의 문자열을 가지고있는 $des연결이 전면에 연결되어 $_GET['road']있지만 $_GET['road'],이 인수는 우리가 지정한 편집 할 수 있다는 것입니다,이 00 절단을 구성 할 수있다 이는 URL 인코딩 된 콘텐츠를 포함
  • 추천 도서
    https://zhuanlan.zhihu.com/p/27739315
    https://www.seebug.org/vuldb/ssvid-89630

수단

1. 중국어 개미 칼
2.bp

해결

1, 개방형 프록시, 사진을 업로드 및 도청 말을 비점

2 구조 00 컷 업로드

3. 중국어 칼 연결 개미, GET 플래그

추신

이러한 변수는 업로드 후 자신의 PHP 코드에 덜 가능성이있다, 그래서 자신의 디버깅에, 나는 상황을 발견

자신의 컴퓨터를 디버깅, 그것은 00퍼센트는 \ 0으로 해석됩니다 발견 한 후 거의 종이있다가 위에서 설명한 알고

우리는 지금 두 가지 조건이 덜 5.3.4 이상 버전의 PHP와 magic_quotes_gpc의 상태 해제를 위해 떨어져 00퍼센트 컷을 사용하는 것을 알고있다. magic_quotes_gpc의 다음 우리는 다음에 변경됩니다 00% 백 슬래시로 이스케이프되기 때문에 그것은 magic_quotes_gpc의 끈 후, 차단 될 수 없다

추천

출처www.cnblogs.com/carr0t/p/12622236.html