본문 바로가기

워게임5

Union Select SQL injection,주석,addslashes 우회,공백 우회,url encoding 50번 문제의 view-source는 위와 같았다. 문제를 풀어보니, 크게 5가지 내용에 대해 공부할 수 있었다. 1. Union Select SQL Injection 2. 주석 /**/와 #, -- 3. 띄어쓰기 우회 4. addslashes 우회 (EUC-KR을 UTF-8로 인코딩 할때) 5. url encoding 첫째, Union Select SQL Injection과 관련해서, $result = mysqli_fetch_array(mysqli_query($db,"select lv from chall50 where id='{$_GET['id']}' and pw=md5('{$_GET['pw']}')")); 이 코드를 주목할 필요가 있다. 위 SQL 문에 Union Select SQL injection.. 2021. 2. 3.
SQL injection, MD5 raw 간단한 문제였다. sql injection의 기본과 해시 구하는 문제? 사실 검색을 해서 해시 값을 직접 구하지 않고 해결해서 비교적 쉬웠지만, 정석대로 이전에 내가 sha1함수를 활용해 rainbow table을 만들고 sql injection을 위한 query문을 직접 만드는 방식이었다면 굉장히 오래걸렸을 것이다. 51번 문제는 위와 같이 누가봐도 sql injection 인 것 같은 문제 화면이다. view_source를 눌러 php 코드를 확인해보자. select id from chall 51 where id='{$input_id}' and pw='{$input_pw}' 부분을 집중적으로 보면, '{$input_pw}' 부분에 임의의 값' or '1(0아닌 값) 을 삽입하는 sql injectio.. 2021. 2. 2.
레이스 컨디션 (race condition) 공격이란? 이젠 webhacking.kr에서 300점 문제도 엄청 어렵진 않다~최근에 푼 문제중에 가장 빨리 풀었다ㅋㅋ이번 문제는 버프 슈트로 레이스 컨디션 공격을 해서 풀었다! 일단 view-source를 클릭해보자. 앞에 나와있는 페이지에는 Your idx is 33434라는 문구와 함께, Access Denied가 적힌걸로 보아 is_numeric($_COOKIE['PHPSESSID']) 함수를 만족하지 못해서 그런 것 같다. PHPSESSID 쿠키 값에 숫자가 아닌게 포함되어 있어서 그렇단 말인데, EditThisCookie를 열어 직접 쿠키 값을 확인해보니, 알파벳도 섞여 있었다. 그래서 임의의 숫자로만 이루어진 쿠키값으로 바꿔주고, 새로고침후 다시 로그인을 해보았다. 버프슈트로 옮겨 작업해 보았다. Co.. 2021. 1. 27.
Burp Suite Intruder, SQL injection 350점짜리 8번 문제다. hi guest라고 적혀있고, 밑엔 view-source가 있다.소스를 살펴보자. Sql injection을 활용하게 될 것 같다. 일단 코드를 해석해보면, 1) 접속자의 User agent와 ip를 변수에 저장하고2) agent 변수에 "from"이라는 문자열이 포함되어 있으면 "Access Denied" 된다.3) id의 컬럼 개수는 count_ck 변수에 저장한다.4) count_ck의 값이 70 이상이면 (컬럼 개수가 70개보다 크거나 같으면) 테이블을 삭제한다.5) 접속자의 User agent를 agent 컬럼에서 조회해 일치하는 agent의 id를 반환한다.6) 접속자의 User agent가 이미 agent 컬럼에 존재한다면 hi id 를 출력한다.6-1) 만약 id.. 2021. 1. 25.