Wargame, CTF (113) 썸네일형 리스트형 Webhacking.kr 27번 SQL injection 소스를 보면 no값을 GET방식으로 받고 #, select, (, 공백, limit, =을 필터링하고 있다 쿼리문은 Select id from chall27 where id='guest' and no=() 저 괄호 안에 우리가주는 값이 들어가게 된다 쿼리문을 넘겨 admin이 나오면 클리어 admin은 2니까 1을 넣으면 guest가 나온다 이때 쿼리문은 Select id from chall27 where id='guest' and no=(1) querry error가 나온다 Select id from chall27 where id='guest' and no=(2) guest는 no=1이니까 거짓일 수 밖에 없다 admin을 꺼내오려면 조건문에서 id='guest' and no=.. LOS _darkknight pw에서 '(%27) no에서 '(%27), substr, 아스키코드와 =을 필터링했고 입력한 pw가 실제 admin의 pw와 일치해야 한다 Hint =필터링 우회 substr 대처함수 id 대신 admin을 뽑아 올 수 있는 파라미터 아스키코드 사용 우회 ...더보기 no 1은 guest이고 2가 admin인 것을 확인 admin의 pw가 8자리인 것을 확인 char함수 사용으로 아스키코드 우회 left 함수로 char를 사용해서 한글자씩 다오기 머리아파서 mid함수를 사용했다 substr과 똑같은 기능 import requests url="https://los.eagle-jump.org/darkknight_f76e2eebfeeeec2b7699a9ae976f574d.php?no=" cookie={"PH.. LOS_golem 두 번째 if문에서 or, and, substr(, =을 필터링 했다 그리고 입력한 pw와 실제 데이터 베이스에 있는 admin의 pw가 일치해야한다 Hint substr 대처함수 or, and 필터링 우회 =필터링 우회 ...더보기 =대신 like로 id에 admin을 가져온다 참을 만들기위해 =대신 >로 대처한다 pw의 길이는 8자리 substr 대신 left, rigth 등을 사용할 수 있다 left(pw, 3)->pw 왼쪽에서 부터 3자리 import requests url="https://los.eagle-jump.org/golem_39f3348098ccda1e71a4650f40caa037.php?pw=" cookie={"PHPSESSID":"qagfqnef3onon13vkcpmp4g8r3"} .. LOS _skeleton query를 id='guest' and pw=$_GET[pw] and 1=0으로 무조건 거짓으로 만들어놨다 Hint guest인 query를 거짓으로 만든후 id를 admin으로하고 주석 ...더보기 and연산자 우선이기 때문에 id가 guest이고 pw는 ''로 거짓으로 만들고 새로 id='admin' and 1=1로 admin인 구문은 참으로 만든다 마지막 #으로 뒷부분은 주석처리 LOS _vampire '(%27)를 필터링하고 admin을 ""(공백)으로 replace한다 HInt 00100에서 1을 공백으로 바꾸면 0000 ...더보기 LOS _troll '(%27)와 admin을 필터링한 모습 id가 admin이기만 하면된다 Hint mySQL 대소문자 구분 ...더보기 php에서 필터링이 빡쎈 preg_match대신 @ereg를 쓴데다 대소문자 구분 필터링을 하지않아 Admin ADmin ADMIN 등 으로 보내도 SQL에서는 admin과 똑같다 인식하여 클리어 LOS _orge 전에 darkelf와 같이 or과 and를 필터링하고 이번에는 데이터베이스에 있는 admin의 pw와 입력한 pw가 있치해야한다 or과 and 필터링을 우회하고 Blind injection을 시도하면 될거같다 ...더보기 pw의 길이는 8글자 import requests url="https://los.eagle-jump.org/orge_40d2b61f694f72448be9c97d1cea2480.php?pw=" cookie={"PHPSESSID":"qagfqnef3onon13vkcpmp4g8r3"} session=requests.Session() password="" for i in range(1,9): for j in range(33, 127): payload=session.get(url+"' || id.. LOS _dark elf 두 번째 if문에서 or과 and를 필터링하고 있다 Hint or 과 and 필터링 ...더보기 or은 || and는 &&지만 url인코딩을 한 상태로 보내야한다(%26%26) 이전 1 ··· 8 9 10 11 12 13 14 15 다음