반응형

WEB hacking 79

[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..

[Lord of SQL Injection] wolfman 문제 풀이

문제 정보 문제 이름 : wolfman 문제 설명 id가 admin일때 문제를 해결할 수 있다. id가 guest로 정해져있는데 어떻게 admin으로 바꾸지?? 라는 생각이 들텐데 pw파라미터에 id값을 admin으로 정의를하면 문제 해결이 가능하다. pw값에다가 '||id='admin를 입력하면 where id='guest' and pw=''||id='admin'가 된다. id='guest' and pw='' 이 부분에서 거짓이 되고 거짓 ||id='admin' 이 부분에서는 참이되므로 id가 admin이라고 성립이 되어 문제를 해결할 수 있다. payload는 아래와 같다. ?pw=%27||id='admin

[Lord of SQL Injection] orc 문제 풀이

문제 정보 문제 이름 : orc 문제 설명 위 소스코드에서 mysqli_fetch_array함수에서 id와 pw를 DB의 내용과 비교해 참일경우 Hello admin을 반환한다. 아래 코드는 result['pw']가 참이고 result['pw']와 우리가 입력한 pw가 같으면 문제를 해결할 수 있다. 필터링이 많이 안되어있기 때문에 blind injection으로 비밀번호를 추출할 수 있다. 앞에 id= admin and pw부분을 거짓으로 날리고 거짓 or id=admin으로 참으로 성립한다음 참 and length(pw)=8#으로 pw의 길이가 참일경우 Hello admin이 출력하도록 진행하였다. 이로 인해 pw의 길이가 8임을 알 수 있다. 패스워드의 값을 하나씩 추출하기 위해서 mysql에서 문..

[Lord of SQL Injection] goblin 문제 풀이

문제 정보 문제 이름 : goblin 문제 설명 필터링이 싱글 쿼터, 더블쿼터, 백 쿼터까지 되어있다. 문제를 해결하기 위해서는 id가 admin이 되면 된다. mysql where절에서 '문자열' 대신 문자열을 hex값으로 표기해도 인식이된다. w3school 사이트에서 실습을 진행하였다. https://www.w3schools.com/mysql/trymysql.asp?filename=trysql_select_where 그림 2는 Customers 테이블에서 Country='Mexico'인 모든 칼럼들을 출력하는 sql문이다. 하지만 'Mexico'대신 hex로 변환한 0x4D657869636F값을 넣어도 성립을 한다. 위의 예시처럼 이 문제도 admin을 hex로 변환하여 입력을하면 mysql문을 처..

[Lord of SQL Injection] cobolt 문제 풀이

문제 설명 preg_match함수로 prob, _, ., () 의 문자들이 필터링 되어있다. id값이 admin이면서 pw가 맞으면 문제를 해결할 수 있다. 먼저 id값에 admin을 넣어보자 id값에 admin을 입력하였는데 문제가 해결되지 않았다. 왜냐하면 뒤에 and 구문이 성립하지 않았기 때문이다. 이문제를 해결하기 위해서는 비밀번호를 알아야한다. 하지만 우리는 비밀번호를 알기 힘들다. 어떻게 하면 문제를 해결할 수 있을까?? 쿼리문을 보자. select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}') 첫번째 방법 쿼리문에 mysql의 주석인 #이 필터링이 되어 있지 않기 때문에 id 파라미터에 id = admin'#을 넣..

드림핵 xss-2 (Level1) Write up

문제 설명 https://dreamhack.io/wargame/challenges/268/?writeup_id=6566 xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. Reference ClientSide: dreamhack.io 위 사이트에서 해당 문제를 풀 수 있다. XSS를 이용하여 flag를 확인하면 되는 문제이다. /vuln 사이트에 script 공격이 막혀있다. 이것을 우회해서 문제를 풀면 될 것이다. 을 사용하여 XSS 취약점을 도출 하였다. 이것을 바탕으로 payload를 짜면 아래와 같다. payload 해당 페이로드를 /fl..

드림핵 xss-1 (Level1) Write up

문제 설명 https://dreamhack.io/wargame/challenges/28/ xss-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. Reference Client-side dreamhack.io 위 사이트에서 해당 문제를 풀 수 있다. XSS를 이용하여 flag를 확인하면 되는 문제이다. #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver import urllib import os app = Flask(__nam..

XSS(크로스 사이트 스크립팅)

XSS 스크립트 예시 쿠키 및 세션 탈취 공격 코드 # "hello" 문자열 alert 실행 # 현재 페이지의 쿠키(return type: string) # 현재 페이지의 쿠키를 인자로 가진 alert 실행 # 쿠키 생성(key: name, value: test) # new Image() 는 이미지를 생성하는 함수이며, src는 이미지의 주소를 지정. # "공격자 주소/?cookie=현재페이지의쿠키 " 주소를 요청하기 때문에 공격자 주소로 현재 페이지의 쿠키 요청함 페이지 변조 공격 코드 # 이용자의 페이지 정보에 접근 # 이용자의 페이지에 데이터를 삽입 # 새 창 열기 Cross Site Scripting (XSS): 클라이언트 사이드 취약점, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 ..

반응형