본문 바로가기

전체 글

(156)
[Lord of SQLInjection] los 10번 skeleton write up 싱글쿼터 탈출 후 주석처리 ㄱㄱ..
[Lord of SQLInjection] los 9번 vampire write up admin을 필터링하고 있지만 str_replace로 대체만 하고 있기 때문에 admiadminn으로 우회
[Lord of SQLInjection] 8번 troll write up 문제 코드이다. 문제 해결 조건으론 쿼리문의 결과로 id가 admin일 경우 해결된다. 필터링은 두 가지다 1. 싱글쿼터 -> 우회 불가능 -> 싱글 쿼터 탈출 안됨;; 2. admin -> 우회 가능 경우의 수는 두 가지다. 싱글쿼터를 탈출해서 id='admin'을 만든다. 또는 싱글쿼터 안에서 id='admin'을 만든다. 전자는 내가 가진 지식으론 불가능인 것 같다. 후자로 접근 ㄱㄱ 싱글쿼터 탈출 x char()함수나 concat() 등을 이용하면 싱글쿼터 탈출이 안 돼서 함수를 문자열로 인식한다.. 시도 1 null 바이트 삽입 널 바이트 삽입을 통해 우회를 시도했다. 결론은 실패. query에는 admin으로 들어가 있으나 admi까지만 문자열로 인식하는 것 같다. 정규표현식을 자세히 보니 i..
[Dreamhack] File Vulnerability Advanced for linux write up 드림핵 웹해킹 로드맵 마지막 문제다 .. 드디어 먼저, 코드를 보자 import os, subprocess from functools import wraps from flask import Flask, request app = Flask(__name__) API_KEY = os.environ.get('API_KEY', None) def key_required(view): @wraps(view) def wrapped_view(**kwargs): apikey = request.args.get('API_KEY', None) if API_KEY and apikey: if apikey == API_KEY: return view(**kwargs) return 'Access Denied !' return wrappe..
[Dreamhack] Apache htaccess write up 위는 바로 문제 서버 접속 화면이다. 서버 분석 Choose a file을 누르면 파일을 선택할 수 있고 위와같이 파일이 올라간다. submit을 누르면, 에러를 반환한다. 아마도 php파일이라서 그런거 같다. 이걸 우회하는게 문제인듯. 다른 파일을 올려보자. 파이썬 파일을 올리니 제대로 올라간걸 볼 수 있다. 이제 코드를 분석해보자.. index.php Online File Box Choose a file... No file uploaded index.php파일이다. 별다른 코드는 없고 자바스크립트 쪽을 보면 파일이 선택 되었을 때, 표시된 부분을 바꾸는 것 같으므로 넘어간다. upload.php
[Webhacking.kr] old-45 write up sqli문제로 55점 짜리다 ㄷㄷ.. 풀어보자 코드 분석 먼저 문제는 쿼리문 결과로 반환된 id값이 admin일 경우 해결된다. 쿼리문은 다음과 같다. select id from chall45 where id='($_GET['id'])' and pw=md5('$_GET['pw']') 쿼리문을 보면 pw는 md5 해시화되어 전송되기 때문에 pw에서 건들건 없어보인다. 필터링을 보자. id, pw 모두 addslashes함수를 적용시키고 있다. 그러나 convert_encoding을 통해 utf-8로 인코딩 중이기 때문에 싱글쿼터는 멀티바이트 삽입으로 충분히 우회가 된다. 먼저 싱글쿼터 탈출이 제대로 되는지 확인해보자. 멀티 바이트 삽입 후 뒤 강제로 쿼리문을 1로 만들었더니 hi guest가 나온다. 제대..
[Dreamhack] Command Injection Advanced write up 다음은 문제 코드이다. Online Curl Request URL GET요청의 url변수에 전달된 값을 가져오고 있다. strpos 함수를 통해 http가 포함된 문자열만 허용하고 있으며 받은 문자열을 shell_exec의 인자로 넘기고 있다. 문제 서버에 접속해보자. 해당 입력폼에 전달 시 GET 요청이 전송되는 것 같다. 이 문제에서는 escapeshellcmd 함수로 전달 받은 문자열을 필터링하고 있기 때문에 쉘 메타문자를 사용할 수 는 없다. 따라서 curl 명령어의 옵션만을 이용할 수 있다. 문제로 제공된 폴더를 보면 flag.c가 존재함을 알 수 있다. Dockerfile을 보면 flag.c 파일은 컴파일 되어 flag파일만 남고 사라짐을 알 수 있으며 파일 경로는 서버의 루트 경로 바로 밑에..
[Webhacking.kr] old-43 write up 웹쉘을 올리고 cat /flag하면 flag를 얻을 수 있어 보인다. 웹쉘을 선택 후 제출을 해봤다. "wrong type"이라는 문자열이 나오며 실패했다. 서버측에서 확장자를 필터링하는 거 같아 확장자를 우회하려 했지만 실팼다. 구글링하다가 Content-Type을 수정하라는 글을 봤다. 버프 슈트로 패킷을 잡아봤다. Content-Type이 text/php로 되어 있어서 이미지로 수정 했더니 잘 올라갔다. 파일에 접근하니 잘 실행된걸 볼 수 있따.