반응형

웹 해킹 53

Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data

This lab contains a SQL injection vulnerability in the product category filter. When the user selects a category, the application carries out a SQL query like the following SELECT * FROM products WHERE category = 'Gifts' AND released = 1 To solve the lab, perform a SQL injection attack that causes the application to display details of all products in any category, both released and unreleased. T..

드림핵 simple-web-request Write Up

문제 설명 STEP 1과 2를 거쳐서 FLAG 페이지에 도달하면 플래그를 출력할 수 있다. 일단 먼저 / 페이지를 보면 index.html 을 렌더링 하고있다. index.html 페이지를 보면 STEP1, STEP2, FLAG 페이지가 존재한다. step1 페이지의 코드를 보자 step1 소스코드 @app.route("/step1", methods=["GET", "POST"]) def step1(): #### 풀이와 관계없는 치팅 방지 코드 global step1_num step1_num = int.from_bytes(os.urandom(16), sys.byteorder) #### if request.method == "GET": prm1 = request.args.get("param", "") prm..

드림핵 csrf-2 (Level1) Write up

문제 설명 https://dreamhack.io/wargame/challenges/269/ csrf-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. Reference Client-side Basic dreamhack.io 위 사이트에서 해당 문제를 풀 수 있다. CSRF 취약점을 이용하여 플래그를 획득하면 된다. login 하라고 한다. 먼저 코드를 분석해보자!! users = { 'guest': 'guest', 'admin': FLAG } user의 id와 password가 주어져있다. admin의 password는 flag라고 되어있으니 guest로 로그인을 진행한다. guest로 로그인을 진행하니 admin이 아니라고 한다. adm..

드림핵 csrf-1 (Level1) Write up

문제 설명 https://dreamhack.io/wargame/challenges/26/ csrf-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. Reference Client-side Basic dreamhack.io 위 사이트에서 해당 문제를 풀 수 있다. CSRF 취약점을 이용하여 플래그를 획득하면 된다. 사이트에 접속을 하면 vuln(csrf) page, memo, notice flag, flag 페이지가 있다. vuln(csrf) page는 파라미터에 스크립트를 삽입하여 취약점을 실습을 할 수 있는 페이지이고 memo는 request를 받은것을 메모해주는 페이지이다. notice flag는 admin만 접근이 가능하다. flag..

[Lord of SQL Injection] GOLEM 문제 풀이

문제 정보 문제 이름 : GOLEM 문제 설명 or, and, substr(, = 등이 필터링 되어있다. substr()함수 대신 substring()함수나 mid()함를 사용하여 문제를 해결할 수 있다. admin의 pw값을 구하면 문제를 해결할 수 있다. import requests url = 'https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php' cookies={'PHPSESSID':'세션값'} password = '' # # password length 파악 # for length in range(1,20): # params = {'pw':f"' || id like 'admin' && length(pw) like {leng..

[Lord of SQL Injection] skeleton 문제 풀이

문제 정보 문제 이름 : skeleton 문제 설명 이 문제는 쿼리 뒤에 and 1=0이 추가가 되었다. 딱보니 연산자 우선순위 문제 인것같다. php에서 and연산이 or연산보다 먼저 수행된다. pw에 아래의 값을 넣으면 문제를 해결할 수 있다. ' or id ='admin' or '1'='1 이 값을 넣으면 select id from prob_skeleton where id='guest' and pw='' or id ='admin' or '1'='1' and 1=0 이와 같이 된다. 1. select id from prob_skeleton where id='guest' and pw='' or id ='admin' or '1'='1' and 1=0 빨간색 부분이 false가 된다. 2. select i..

[Lord of SQL Injection] troll 문제 풀이

문제 정보 문제 이름 : troll 문제 설명 admin을 필터링 하고 있다. 하지만 i옵션을 주지 않아서 대소문자를 구분하지 않는다. 테이블을 생성할 때 VARCHAR로 생성하면 대소문자를 구분하지않아 where절에서 id 파라미터 값을 대소문자의 관계없이 출력한다. 그래서 Admin이라는 값을 넣었더니 문제를 해결하였다. 데이터베이스에서 VARCHAR로 컬럼을 생성한 것 같다.

[Lord of SQL Injection] orge 문제 풀이

문제 정보 문제 이름 : orge 문제 설명 or 과 and가 대소문과 상관없이 필터링되었다. ||과 &&(%26)으로 우회가 가능하다. 그리고 우리가 입력한 pw와 result의 pw가 같아야지 문제를 해결할 수 있다. import requests url = 'https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php' cookies={'PHPSESSID':'세션값'} password = '' # # password length 파악 # for length in range(1,20): # params = {'pw':f"' || id='admin' && length(pw) = {length} #"} # req = requests.get(u..

반응형