목록sql (5)
무기는 끈기

SQL injection에는 union - , error based -, blind - , time - 등이 있다. 곧이어 찾아온 SQL injection 난항 error based, blind는 너무 재밌고 노가다가 들어갔어도 즐거웠지만, 취약점을 찾기 위한 가장 기본이자 첫 단계인 SQLi 포인트 찾는 감이 오지 않아 고민이 많았다. 더불어 union 수업 때는 몸살에 노트북 방전으로 수업까지 좀 놓쳐서 혼자 더듬더듬 공부해도 완전하게 이해가 되지 않는 부분이 많았다. 오프라인으로 보충 수업을 들을 수 있는 기회가 생겨 바로 신청하고 듣고 왔다. 넘넘 좋았고,, 고민이 많았던 SQLi 포인트를 찾는데에 자신감을 갖게 됐고, ctf 문제를 처음부터 끝까지 오랜시간 헤매더라도 스스로 힘으로 풀 수 있게 ..
SQL Injection 주입 루트를 이것저것 연구해보던 중 이건?저건?되나?왜 안되나? 하던 중 AND가 연달아 나오고, 항등원이 들어갈 경우 논리연산자의 우선순위로 인한 궁금증이 생겨 정리하려고 한다. 인증 우회(Authentication Bypass) - 식별/인증 동시 케이스 SELECT * FROM member WHERE id='___' AND pass='___' 우선 기본적인 SQL 쿼리문이다. 해당 쿼리문에 만약에 이렇게 들어갔다면? 연산 우선순위가 어떻게 될까 적용했을 때의 쿼리 모습 : 빨간 부분이 입력한 내용이다. SELECT * FROM member WHERE id='doldol' AND '1'='1' AND pass='asdfasdf(아무거나 친것)' 일단 논리 연산자 AND, OR..

웹 해킹 분야엔 다양한 공격 기법이 있다. 세계에서 늘(거의) 1위를 차지하는 공격 기법은 바로 SQL Injection 이다. 이유는 대부분의 곳이 DB를 사용하기도 하고, 가장 쉽게 치명상을 입힐 수 있는 취약점이기 때문이다. 식별/인증은 동시로 관리하기도 하고, 분리해서 관리되기도 한다. (식별/인증 관련 내용 링크 참고: https://yubi323.tistory.com/70) 이번 글에선 식별/인증 동시 쿼리문에서 인증 우회를 하는 경우 중 ID만 알고 있는 케이스에 대해 간단하게 살펴볼 것이다. (추후 다양한 쿼리문 주입해보는 게시글 따로 업로드 예정) 인증 우회(Authentication Bypass) - 식별/인증 동시 케이스 SELECT * FROM member WHERE id='___..

이번 시간엔 로그인 기능과 관련된 학습을 했다. 로그인에는 다양한 로직이 있다. 만들어낸다면 무궁무진한 로직이 존재하게 될 수도 있을 것이다. 그 중 가장 대표적인 로직 2개, 그리고 그 2개를 HASH 처리한 로직 총 4개를 알아보겠다. 1. 식별/인증 동시 해당 로직은 로그인할 때 아이디와 비밀번호를 SELECT 한 줄에 몽땅 때려넣어서 동시에 처리하는 방식이다. // sudo $sql = "select * from member where id='$user_id' and pass='$user_pass'" $ret = $sql.execute() if($ret){ // 로그인 성공 }else{ // 로그인 실패 } 2. 식별/인증 분리 해당 로직은 식별 과정과 인증 과정을 분리해서 처리하는 방식이다. /..

SQL Injection은 웹 애플리케이션 보안에서 중요한 주제 중 하나입니다. 이 기사에서는 SQL Injection 공격에 대한 기본 개념, 어떻게 발생하며 어떻게 방어하는지에 대해 설명합니다. SQL Injection이란? SQL Injection은 공격자가 악의적인 SQL 쿼리를 웹 애플리케이션으로 주입하여 데이터베이스에 액세스하거나 조작하는 공격 기술입니다. 이러한 공격은 웹 애플리케이션이 사용자 입력을 안전하게 처리하지 않을 때 발생합니다. 작동 원리: SQL Injection은 사용자 입력을 적절하게 검증 또는 이스케이핑하지 않을 때 발생합니다. 공격자는 일반적으로 웹 양식 또는 URL 매개변수를 통해 악의적인 SQL 쿼리를 삽입합니다. 이 쿼리는 데이터베이스에 실행되어 사용자 데이터 유출,..