Webhacking.kr 13번
·
Webhacking.kr
빈 칸에 입력하면 "no" 파라미터로 전송 됨 삽질을 좀 해보면 "like", 공백, limit 등이 필터링 됨 like 필터링 우회는 "in", 공백 우회는 "%0a" 사용하면 됨 그리고 조건을 참으로 만들면 result 컬럼의 리턴 값이 '1' 조건을 거짓으로 만들면 result 컬럼의 리턴 값이 '0' 리턴 값을 기준으로 인젝션 쿼리의 참/거짓을 판별할 수 있음 서브 쿼리 사용 여부를 테스트 하기 위해 위 사진과 같이 입력하면 참을 의미하는 '1' 리턴 됨 힌트를 보면 flag 컬럼을 "prob13password"에서 가져오는데 해당 컬럼의 데이터가 몇개 인지 모름 따라서 개수를 알아보기 위해 "count" 함수를 이용하여 위 사진과 같이 개수가 '1'인지 확인 => 거짓을 의미하는 '0'이 리턴되..
Webhacking.kr 12번
·
Webhacking.kr
WorkTimeFun 변수가 뭔가 복잡하게(난독화) 되어있다. * String.fromCharCode(x) 함수는 인자 값으로 들어온 x 정수값을 ASCII 문자로 변경한다. * eval(x) 함수는 인자 값으로 들어온 x를 실행시킨다. WorkTimeFun 전체를 크롬 콘솔에 복붙하면 자동으로 난독화가 풀린다. alert(Password is ~~~) 문자열 윗 부분이 바로 Password 값을 난독화 하는 부분이다. 크롬 콘솔에 복붙하면 복호화 된다.
Webhacking.kr 11번
·
Webhacking.kr
$pat 변수에 정규식이 대입되어 있다. preg_match 통해 GET 메소드로 입력 받은 val 파라미터 값과 $path을 비교하여 일치해야 문제가 클리어 된다. 정규식의 의미는 아래 표와 같다. 정규식 의미 [1-3] 1 ~ 3 사이의 정수값 [a-f] a ~ f 사이의 알파벳 {5} 이전 정규식을 5번 반복 * 모든 문자 \t Tab (탭) * Tab => URL Encoding => %09