본문 바로가기

전체 글

(226)
로그인 우회 CTF 풀이 #4 또 똑같은 로그인 창이지만 어떤 로그인 로직을 가지고 있을지는 알 수가 없다 사실 주석이나, 개행처리를 예상하지는 않았다 3번에서도 안되었고 그걸 출제의도로 냈을 것 같지 않았기 때문에 해시함수를 의심했다 또, 식별 / 인증 동시 CASE라면 주석 처리 한 방에 해시함수가 날라가므로 식별 / 인증 분리 CASE일 것이라 추측했다 근데 어떤 해시함수를 썼을지를 일단 알 수가 없다는 것이었다 크게 사용하는 해시함수는 두가지이다. MD5 와 SHA256 구글링을 하면 원하는 문자열을 해시화할 수 있다. 저기서 우리가 주입할 비밀번호를 해시화해두자 둘 중에 찍어서 MD5를 먼저 실행해보았다 일단 기본 틀은 SELECT password FROM member WHERE id=''; 일 것이고 password는 사용..
[3주차] 회원가입 페이지 구현 #2 - 아이디 중복 체크 여태까지 만들어놨던 로그인 창이다. 여기에 회원가입 버튼을 만들어 회원가입 기능을 구현해볼 것이다. login_proc.php로 보내는 로그인 부분과는 별도로 새로운 form 태그를 열어준다. 그리고 그 form 태그는 enroll.php로 데이터를 POST형식으로 전송한다. test.php test.php 코드 저장하고 브라우저를 보면 회원가입 버튼이 생긴 것을 볼 수 있다. 회원가입 버튼이 빨간 건 test.css파일을 생성해서 input 버튼에 부여한 enroll id에 css코드를 입력해서 그렇다. 코드는 다음과 같다. test.css #enroll { color : red; } 회원가입 버튼을 누르면 회원가입 페이지 (enroll.php)로 이동한다. 현재까지는 주소 검색 기능이 없고 중복체크 ..
[4주차] 회원가입 페이지 구현 #1 - 주소 검색 기능 만들기 회원 가입 페이지 란에 주소 검색 기능을 추가할 것입니다 우체국 사이트로 접속해줍니다. 구글에 우체국 사이트를 검색했을 때 통합검색 우편번호 란을 클릭하면 바로 들어갈 것 같습니다. 우편 번호 내려받기 탭에 지역별 주소 DB 파일을 제공하고 있습니다. 다운받아줍니다. 다운은 금방 완료되고, 지역별로 주소가 모인 txt 파일이 압축파일로 다 담겨있습니다. 이번에 서울시를 기준으로 구현해볼 예정이므로 서울특별시.txt 파일만 클릭해서 압축을 풀어줍니다. 한번 클릭해서 보니 어지럽습니다. 너무 많네요 여는 것도 시간이 꽤 걸립니다 window에서 되는지를 테스트해본 것이므로, 이 파일을 ubuntu로 옮겨줍니다. 그리고 경험상 이름이 한글인 것도 문제가 될 수 있기 때문에 1.txt로 바꿔줍니다. 그리고 my..
[4주차] 스터디 정리 - Union Based, Error Based SQL Injection * 웹 개발 -> 백엔드 코드가 더 중요함 -> bootstrap이란 좋은 사이트도 있음 -> 문제풀이 write-up 1) 만든 사이트 2 ) flag : 정답만큼은 모자이크하는 게 좋음 -> CTF 문제. : 정답보지 않는다. ------------------------------------------------------------------------------------ ** Review > 로그인 인증 - 식별 / 인증 > SQL Injection : 공격자 SQL 삽입하는 공격 : 데이터 추출도 가능함 ( SELECT ) * SQL Injection 데이터 추출 1 ) SQL 질의문이 화면에 보이는 곳 ex ) 게시판, 회원정보 (마이페이지), 주소 검색, 검색 페이지 등등... -> UNI..
[3주차] 가능한 로그인 로직 연구 - 식별과 인증 식별 사용자가 본인의 신원정보를 밝히고 확인하는 행위 ( ID ) 인증 (Authentication) 보호된 리소스에 접근하는 것을 허용하기 이전에 등록된 유저의 신원을 입증 (validating)하는 과정 --------------------------------------------------------------------------------------------------------------------------------------------- 우선, 로그인에 관해 배울 때 처음 보게되는 ID = 'BOKYU' and PWD = '1111' 같은 지정형 로그인 로직은 패스하도록 하자 너무 간단하기도 하고 사실 분석할 건덕지가 없으니..! 1 ) 식별 / 인증 동시 SELECT * FROM u..
환경변수, 컴파일러, 인터프리터 컴파일러 언어 : 프로그래머가 짠 코드를 컴파일러가 기계어나 또는 중간언어로 번역하여 최종 기계로 보내서 소프트웨어가 동작하도록 만드는 언어, 코드를 미리 번역해서 출시하는 게 특징 인터프리터 언어 : 프로그래머가 쓴 코드를 그대로 가져가서 실시간 번역을 실행하는 언어, 다른 말로 스크립트 언어라고도 함, 실행할 때마다 번역함, 프로그래밍 코드가 그대로 보여지기 때문에 쉽게 누출되기도 함 ex ) 자바스크립트, 파이썬, 루비 등 환경 변수 '환경'이란건 소프트웨어가 동작하는 공간을 의미 '환경 변수' 라는 건 소프트웨어가 깔린 컴퓨터마다 지정된 값 환경 변수의 사용처 : 어떤 파이썬이나 자바 프로그램이든 컴퓨터마다 설치된 위치를 적어넣어서 실행할 수 있게 만드는 것, 오픈소스로 남들에게 공개되는 코드들에..
Websocket 개념 정리 학교 동아리에서 수기로 일일히 출석체크를 하는 시스템이 빡세다고 운영진 측의 의견이 있었다. 그래서 서버 측에서 서버를 열면, 그 시간 동안 들어온 클라이언트들이 출석번호같은 문자를 입력하고, 출석을 인증하는 웹앱을 만들고 싶었다. 그 때, 같이 작업하던 친구가 사용했던 방식이 웹소켓이었다. 웹소켓에 대한 개념이 전무했기 때문에 새로 공부하며 그에 대한 내용을 여기 정리하려고 한다. 웹소켓 (WebSocket) 웹소켓 프로토콜은 HTTP와는 다른 통신 프로토콜로 웹 서버와 웹 브라우저가 서로 실시간 메시지를 교환하는 데에 사용된다. 웹소켓 연결을 맺기 위한 첫 번째 핸드쉐이크를 주고받은 이후에 지속적으로 연결이 유지되어 추가적인 HTTP 연결 요청을 보낼 필요가 없어 빠르고 효율적이다. 예를 들어, 웹 ..
성공적인 SQL Injection을 위한 SQL 문법 - ORDER by 절, 레코드 출력 개수 제한 ORDER BY 절을 이용한 정렬 기본 형태 => SELECT COLUMN1, COLUMN2 FROM TABLE ORDER BY COLUMN [ASC/DESC] ASC : 오름차순 (ASCENDING) DESC : 내림차순 (DESCENDING) 오름차순과 내림차순의 기준? 오름차순은 처음 오는 컬럼이 작은 수가 온다. 그 후 점점 커지는 순서 내림차순은 처음 오는 컬럼이 큰 수가 온다. 그 후 점점 작아지는 순서 ex ) select * from member order by seq; 이 명령어를 입력하면 seq 컬럼에 대해서만 정렬이 된다. select * from member order by seq, name; 이 명령어를 입력하면 seq와 name 컬럼에 대해서 모두 정렬이 된다. ** 숫자도 사용..