분류 전체보기23 게시판 만들기 ( DB설정 ) Union SQL Injection, Error Based SQL Injection 을 공부하기 위해 게시판을 만들기로 했다. 일단 디비/테이블 설정은 다음과 같이 했다. create table boardList ( number int unsigned not null primary key auto_increment, title varcha(150) not null, content text not null, id varchar(20) not null, pw varchar(20) not null, date timestemp, hit int unsigned not null default 0 ); 2021. 11. 4. 로그인 식별/인증 동시 sql문 개행방식 SQL Injection 공격을 하다 보면 뒤를 -- 나 # 으로 주석 처리해서 인증 우회하는 경우가 많다. 하지만 sql 쿼리문을 작성하는 개발자들은 코드의 가독성 때문인지, 성능 때문인지 sql문을 개행(엔터) 처리 해서 많이 작성하곤 한다. 그래서 개행 처리된 로그인 인증에도 인증 우회가 가능한지 알아보기로 했다. 이전의 동시방식에서 개행 처리한 코드 sql 문을 개행 처리해도 쿼리문이 정상 작동하는지 로그인이 잘 되었다. if ($result = $mysqli->query("select * from member where id='".$userId."' and pw ='".$userPw."';")){ while ($row = $result->fetch_object()) { $Exist = "1"; .. 2021. 11. 3. SQL Injection 식별/인증 Hash처리(인증 우회) 해킹에 대한 인식이 이전보다 많이 높아진 지금은 아마 웬만한 사이트들 비밀번호는 저장할 때 해시 처리해서 보관하고 있을 것이다. 또한, 비밀번호를 암호화해서 보관하지 않으면 법적으로도 문제 된다고 알고 있다. 이전에 인증 우회 공부할 때 식별 인증 동시, 분리 방식 두 가지를 했는데 오늘은 그 두 방식에 비밀번호를 해쉬 처리하는 로그인 방식에 대해서 인증 우회를 테스트를 해볼 것이다. 일단 가장 많이 쓰인다는 2가지 해시들을 간단하게 알아보았다. MD5 MD5 (Message-Digest algorithm 5) MD5는 메시지 축약 알고리즘으로써, 파일 무결성 검사 용도로 많이 쓰이고 있습니다. 128bit의 해쉬를 제공하며, 암호 와와 복호화를 통하여 보안용 도로도 많이 쓰입니다. 하지만 암호화 결함이.. 2021. 11. 1. SQL Injection ( 인증 우회 ) 식별/인증 분리방식 이전 글( 식별/인증 동시 방식 )과 다르게 유저가 입력한 아이디에 대한 패스워드를 가져와 코드 안에서 if 문으로 비교하였다. 동시 방식에서 사용했던 ' or '1 , ' or '1 우회방법을 대입해보니 실패 두 번째 참으로 만들고 뒤를 주석 처리해 버리는 ' or 1=1# 그러나 아무 아이디만 넣었을 때와 다르다는 건 아이디에 대해서는 우회가 되는 것 같다. 따라서 추측해보면, 코드 아래에서 if 조건을 우회하려면 단순히 참, 거짓이 아니라 내가 아이디에 임의로 패스워드에 입력할 값을 주입시켜야 할 것 같았다. 지금까지 지식에선 SQL문에 내가 원하는 값을 주입하는 것은 이전 강의에서 들었던 union이 전부였고, 그래서 union을 사용해서 우회해 보았다. 처음에 컬럼의 개수를 파악해 보려고 adm.. 2021. 10. 31. 이전 1 2 3 4 5 6 다음