본문 바로가기

분류 전체보기

(157)
Lord of SQL injection 03 3번 goblin 1, 2 번처럼 했더니 저렇게 떴다. 우선 no= 값을 구해보자. ?no=0 ?no=1 guest의 no 값은 1이다. 그런데 문제를 clear하려면 id에 guest가 아닌 admin이 필요하기에 no 값은 0를 사용하겠다. 그럼 입력해야할 값은 ?no=0 or id='admin' 엥? 쿼리문의 No Quotes ~_~ 부분을 잘 살펴보니 ' 과 '' 를 쓰면 안된다고 한다. 그렇다고 ?no=0 or id=admin 를 입력하면... 문자열 admin을 인식하지 못한다. 그럼 admin 을 16진수 (hex) 로 바꾸어서 넣는 수밖에 없다. 아래 사이트는 문자열을 16진수로 바꾸어주는 사이트이다. swiss converter tool | percederberg.net swiss con..
Lord of SQL injection 01, 02 Lord of SQL injection https://los.rubiya.kr/ Lord of SQLInjection los.rubiya.kr 해당 사이트에서 실습을 진행한다. 초록색 [enter to the dungeon] 누르고 가입 후 로그인하면 끝! 이제 이 사이트에서 뭘 해야하냐면... id admin / pw password 로 로그인 시 wrong 문구가 출력되고 id guest / pw guest 로 로그인 시 hello guest 가 출력되는데 이는 admin 계정의 암호는 dict 형태로 16진수 난수 형태로 생성되기 때문이다. 파이썬 코드에는 db.execute(finsert into users(userid, userpassword) values ("guest", "guest"), (..
[SWING] Web Hacking 05 SQL injection 대응 방안 입력 값에 대한 검증 SQL Injection 에서 사용되는 기법과 키워드는 엄청나게 많아서 사용자의 입력 값에 대한 검증이 필요하다. 서버 단에서 화이트리스트 기반으로 검증해야 한다. 블랙리스트 기반으로 검증하게 되면 수많은 차단리스트를 등록해야 하고, 하나라도 빠지면 공격에 성공하게 되기 때문이다. 공백으로 치환하는 방법도 많이 쓰이는데, 이 방법도 취약한 방법이다. 예를 들어 공격자가 SESELECTLECT 라고 입력 시 중간의 SELECT가 공백으로 치환이 되면 SELECT 라는 키워드가 완성된다. 공백 대신 공격 키워드와는 의미 없는 단어로 치환되어야 한다. Prepared Statement 구문사용 Prepared Statement 구문을 사용하게 되면, 사..
[SWING] Web Hacking 04 과제 1 Server Server 네트워크에서 클라이언트로 여러 가지 서비스를 제공(serve) 서비스 : 카카오톡, 인스타그램 등 인터넷을 통해 제공받는 모든 정보 네트워크 : 서버와 클라이언트가 서로 통신할 수 있게 다리 역할을 하는 기술 Web Server 클라이언트가 서버에 페이지 요청 시 정적 컨텐츠를 제공하는 서버 정적 컨텐츠 (.html, .png, .css) ex) 보이는 부분에서 기기나 시점에 따라 변하지 않는 부분으로 네이버 검색창의 로고나 메인 페이지 검색창과 같은 부분. 1) HTTP 서버 (소프트웨어)가 있는 컴퓨터로 구성 2) 서버가 파일을 요청한 브라우저에게 전송 동적 컨텐츠 (JSP) ex) 로그인한 유저에 따라 다르게 보이는 프로필 창과 같은 부분. 1) 클라이언트 요청에 ..
[Rev] Matrix Lab 1 다운받은 파일을 열어보니 이상한 문자들이 나온다. Olly Dbg 등 리버싱 툴에 넣어봤는데 달리 열리거나 뭔가 나타나지 않았다. 여기서 뭘 더 어떻게 해야할지 몰라 Write Up을 참고하였는데, 리버스 엔지니어링과 자바를 사용해야한다고 한다. 제공된 파일이 .class Java이었던 모양이다. java class decompiler online을 사용하면 되는 모양이지만 아직 자바를 안배워서 생소하다. public class Sekai { private static int length = 6; public static void main(String[] arrstring) { Scanner scanner = new Scanner(System.in); System.out.print("Enter the f..
[Dreamhack] CSRF-2 csrf-2 | 워게임 | Dreamhack csrf-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. Reference Client-side Basic dreamhack.io 문제 파일을 다운받고 접속 정보에 링크 클릭. 첫번째 vuln(csrf) page 클릭하면 나오는 화면. 두번째 flag 클릭하면 나오는 화면. 세번째 login 클릭하면 나오는 화면. 파일 코드. #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium import webdriver import urllib imp..
[SWING] Web Hacking 03 웹 리소스 / 웹 구성요소 웹 클라이언트 (Web Client) 웹을 사용하는 고객으로 필요한 데이터를 웹 서버에 요청(request)하는 주체이다. HTTP (Hyper Text Transfer Protocol) 웹에서 브라우저와 서버 간에 데이터를 주고 받는 약속, 즉 프로토콜이다. OSI 7계층에서 7계층인 응용 계층 (Aplication)에 해당한다. 사용자와 가장 밀접하며 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 프로토콜 중 하나이다. 암호화되지 않은 평문을 전송하기 때문에 모니터링만 하면 정보를 탈취할 수 있어 sniffing 공격에 취약하다. 웹 브라우저 (Web Browser) 클라이언트의 요청을 받아 request를 웹 서버에 전달하고, 웹 서버로부터 응답받은 res..
[Dreamhack] XSS-2 xss-2 | 워게임 | Dreamhack xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference ClientSide: XSS dreamhack.io 문제 파일을 다운받은 뒤 접속 정보의 파란 링크를 클릭. 버튼 세개가 뜨는 것을 볼 수 있다. 첫번째 버튼 vuln 클릭. 두번째 버튼 memo 클릭. 아까 막 들어갔을 땐 hello가 하나였는데 접속할 때마다 hello가 늘어나는 모양이다. memo가 flag를 반환해 출력한다는 것이다. 세번째 버튼 flag 클릭. XSS 필터링이 걸려있어서 input에 입력값을 넣고 XSS 우회를 진행해야 한다고 한다. 구글에 XSS..