본문 바로가기

모의해킹/Dreamhack

crawling

728x90

문제 정보

페이지를 보면 URL 주소를 입력을 했을 때, 그 주소에 대한 메인페이지를 크롤링해서 출력해 준다.

 

@app.route('/admin')
def admin_page():
    if request.remote_addr != '127.0.0.1':
    		return "This is local page!"
    return app.flag

소스 코드를 보면 /admin 경로로 이동을 할 때 127.0.0.1이 주소여야 하는 조건이 맞아야지 flag가 출력이 된다.

refere에 127.0.0.1로 수정을 하고 보내면 되겠다고 생각을 했다.

    ip = lookup(urlparse(url).netloc)
    if ip == False or ip =='0.0.0.0':
        return "Not a valid URL."
    res=requests.get(url)
    if check_global(ip) == False:
        return "Can you access my admin page~?"
    for i in res.text.split('>'):
        if 'referer' in i:
            ref_host = urlparse(res.headers.get('refer')).netloc
            if ref_host == 'localhost':
                return False
            if ref_host == '127.0.0.1':
                return False 
    res=requests.get(url)
    return res.text

소스 코드를 보면 referer 체크를 해서 이런 방법으로는 못 보낸다..

http://127.0.0.1:3333/admin을 보내려면 체크 부분을 우회를 해야 하는데,,, 생각나는 게 URL 단축해 주는 기능이다.

 

https://www.shorturl.at/ 사이트를 이용해서 해당 주소의 길이를 짧게 만들어주고 보내면 flag값을 얻을 수 있다.

'모의해킹 > Dreamhack' 카테고리의 다른 글

[wargame.kr] crack crack crack it  (0) 2023.11.20
[wargame.kr] dun worry about the vase  (0) 2023.11.18
Tomcat Manager  (0) 2023.11.14
funjs  (0) 2023.11.13
weblog-1  (0) 2023.11.11