Webhacking.kr 29번 문제
안녕하세요. 솔직히 요즘 워 게임관련해서 포스팅을 하고싶어도 귀차늠과 시간핑계로 둘러대다가 오늘 포스트를 작성합니다. 뭐 매번 같은 패턴인 것 같네요. 29번 문제는 400 스코어 문제이며 난이도는 전의 문제들에 비해 조금 있는 편입니다. 몇번의 삽질을 좀 하셔야 할 수 도있습니다. 해당 문제에 들어가면 힌트라면서 던져주는 것들이 쿼리문과 사이드쪽에 필터링 코드입니다. 추가로 *“blind sql injection으로 풀이하실경우 정답이 출력되지 않습니다. 더 간단한 방법이 존재하니 그 방법을 이용해주세요.” 라는 메모가 있습니다. 파일 폼이 보이니 일단 파일 업로드 후 서버로 요청을 해봅니다. select password from c29_tb$file_name=str_replace(".","",$file_name); 업로드가 성공적으로 잘 된것같네요. 파일을 업로드하면 Time,Ip,File(파일명)이 3가지의 정보가 보여집니다. 파일 업로드 정보를 따로 DB에 저장해두는 것 같습니다. 좀 전에 업로드한 파일로 다시 업로드를 해봅니다. 이번에는 이미 존재하는 파일이라고하네요. 파일명을 바꿔서 요청해볼까요? 등록되었네요. 동일한 파일명이 없다면 업로드 시간,아이피,파일명 세개를 기록(insert into c29_tb(time, ip, file) values(‘시간’,’ip’,’파일명’))하는 것 같습니다. 해당 아이피 기준으로 검색하여 결과값을 리턴(where ip=request ip )해주는것이라 간단하게 프로세스를 유추해볼 수 있습니다. 파일명을 통해서 직접적으로 쿼리한다고 생각하면됩니다. 즉, 파일명은 전체 쿼리문의...