반응형

전체 글 188

드림핵 XSS Filtering Bypass WriteUp

문제 설명 XSS Filtering Bypass에 대한 문제이다. 이를 통해 크로스 사이트 스크립팅 취약점을 이용하여 문제를 해결해야함을 알 수 있다. 메인페이지에 접속을 하면 vuln, memo, flag에 대한 페이지에 접근할 수 있다. 먼제 vuln에 대해 살펴보겠다. vuln 페이지 소스코드 @app.route("/vuln") def vuln(): param = request.args.get("param", "") param = xss_filter(param) return param vuln 페이지는 param이라는 인자를 받아 xss_filter함수를 통해 필터링을 진행한 후 그대로 출력해준다. xss_filter을 살펴보자!! xss_filter 함수 소스코드 def xss_filter(tex..

드림핵 web-ssrf Write Up

문제 설명 해당 웹 사이트는 flask 백엔드 프레임워크로 제작되었으며 SSRF 취약점을 이용하여 flag파일을 읽어내는 문제이다. 해당 웹사이트는 url 정보를 입력하면 해당 url의 이미지를 보여주는 사이트이다. 만약 내부망에서 일반 사용자들이 접근하지 못하는 기능들이 수행되고 있다면 SSRF 취약점이 도출될 수 있다. SSRF 취약점을 통해 url 파라미터 값을 통하여 내부망의 파일들을 접근할 수 있다. local_host = "127.0.0.1" local_port = random.randint(1500, 1800) local_server = http.server.HTTPServer( (local_host, local_port), http.server.SimpleHTTPRequestHandler ..

드림핵 file-download-1 Write Up

문제 설명 해당 서비스는 파일 다운로드 취약점이 존재하는 웹 서비스이며 flag.py 파일을 다운받으면 플래그를 획득할 수 있다. a.txt라는 이름으로 파일을 생성하고 클릭하면 파일의 내용을 읽을 수 있다. 우리는 flag.py 파일의 내용을 읽어야 하기 때문에 name 파라미터에 flag.py를 입력하면 문제가 해결될것이다. flag.py 파일이 존재하지 않는다고 한다. 이는 해당 디렉토리에 없다는 것이며 디렉터리 트래버셜을 이용하여 상위디렉토리에서 flag.py를 찾도록 하겠다. 디렉터리 트래버셜 기법을 이용하여 flag.py의 내용을 읽었다.

드림핵 image-storage Write Up

문제 설명 해당 문제는 php로 제작된 파일 저장 사이트를 파일업로드 취약점을 이용하여 /flag.txt 파일의 내용을 읽는 문제이다. php로 제작한 웹쉘을 해당 서버에 업로드한다. 파일 업로드를 완료하면 파일 업로드된 경로를 노출하고 있다. 해당 경로에 접속하여 웹 쉘을 실행할 수 있다. 웹 쉘에 접근하여 cat /flag.txt 명령어를 입력하면 flag값을 얻을 수 있다. php 웹쉘 코드

드림핵 command-injection-1 Write Up

문제 설명 flag.py에 플래그가 존재하니 command 명령어를 통해 flag.py 파일을 읽으면 문제를 해결할 수 있다. 문제 풀이 ping 페이지에 접속하면 host ip를 입력하는 페이지가 보여진다. 일단 8.8.8.8로 ping을 전송해보겠다. 그림 2는 8.8.8.8로 ping을 보낸 결과이다. 3번 ping을 보내는 것을 보면 ping -c 3 {사용자 입력} 이런식으로 코드가 이루어져 있다고 예상이 된다. 일단 소스 코드를 한번 살펴 보겠다. @APP.route('/ping', methods=['GET', 'POST']) def ping(): if request.method == 'POST': host = request.form.get('host') cmd = f'ping -c 3 "{h..

NoSQL Injection

MongoDB query 타입이 문자열로 지정되지 않은 경우에 문자열 외의 타입이 입력될 수 있다. $ne 연산자 : not equal의 약자로, 입력한 데이터와 일치하지 않는 데이터를 반환한다. ex) $ne 예시 ?uid[$ne]=a&upw[$ne]=a =>uid와 upw가 a가 아닌 데이터를 조회!! MongoDB 타입 공식 문서 https://docs.mongodb.com/manual/reference/operator/query/type/ MongoDB 연산자 공식 문서 https://docs.mongodb.com/manual/reference/operator/query/ $regex : 정규식을 사용해 식과 일치하는 데이터를 조회 db.user.find({upw: {$regex: "^a"}}) ..

OverTheWire Natas [Level10] - WriteUp

문제 정보 Username: natas10 Password: D44EcsFkLxPIkAAKLosx8z3hxX1Z4MCE URL: http://natas10.natas.labs.overthewire.org 그림 1은 natas10 사이트에 접속한 화면이다. natas10 사이트는 보안상의 이유로 특수 문자를 필터링하여 커멘드 인젝션 취약점을 보완하였다. 소스코드를 확인해 보겠다. 소스코드를 보니 preg_match함수로 ;, |, & 특수문자를 필터링하고 있다. 특수문자를 사용하지 않고 문제를 해결하면 될것이다. 해당 문제는 grep이라는 함수의 특징을 통해 문제를 해결하였다. grep a a.txt b.txt 이렇게 입력을 하면 a.txt에서 a를 찾고 b.txt에서 a를 찾아서 출력해준다. 해당 문제에..

OverTheWire WriteUp 2023.06.21

드림핵 simple_sqli Write Up

문제 설명 SQL injection을 통해 flag를 알아내면 된다. 문제 풀이 소스코드를 확인하면 admin으로 접속을 하면 flag를 출력한다. select * from users where userid="{userid}" and userpassword="{userpassword}" 위는 로그인시 SQL 쿼리문이다. 공격 방법 1 공격 코드 : select * from users where userid="admin" -- " and userpassword="{userpassword}" 위의 공격코드에서 admin뒤에 -- 주석을 넣어 뒤에 코드를 주석처리 하였다. 따라서 userid가 admin인 계정을 반환하므로 문제를 해결할 수 있을것이다.!! 공격에 성공하였고 flag를 출력하였다. 공격 방법 ..

SQL injection이란?

일상 생활에서 다양한 정보를 기록하기 위해 노트나 다이어리를 사용하듯이, 컴퓨터도 정보를 기록하기 위해 데이터베이스를 사용한다. 이러한 데이터베이스를 관리하는 시스템이 DBMS(데이터베이스 관리 시스템)이다. DBMS 종류 종류 대표적인 DBMS Relational(관계형) MySQL, MariaDB, PostgreSQL, SQLite Non-Relational(비관계형) MongoDB, CouchDB, Redis DBMS에서 관리하는 데이터베이스에는 회원 계정, 비밀글과 같이 민감한 정보가 포함되어 있을 수 있다. 공격자는 SQL injection 공격을 통해 해당 정보를 확보하고 악용하여 금전적인 이익을 얻을 수 있다. SQL injection이란 DBMS에서 사용하는 질의 구문인 SQL을 삽입하는 ..

OverTheWire Natas [Level9] - WriteUp

문제 정보 Username: natas9 Password: Sda6t0vkOPkM8YeOZkAGVhFoaplvlJFd URL: http://natas9.natas.labs.overthewire.org 그림 1은 natas9 사이트에 접속한 화면이다. 해당 사이트에 접속을 하면 단어들을 찾을 수 있다. apple을 입력하니 apple을 포함한 단어들을 웹에 표시해준다. 소스코드보기를 통해 해당 페이지는 어떻게 구성되어있는지 확인한다. 입력한 값을 key에 저장을 한 후 passthru함수로 grep 명령어를 수행한다. grep -i key값 dictionary.txt는 대소문자를 구분하지 않고 dictionary.txt에서 단어를 찾는다. 여기서 해당 취약점이 존재한다. 리눅스에서 ; 를 사용하면 해당 명..

OverTheWire WriteUp 2023.06.19
반응형