전체 글

webhacking.kr

[webhacking.kr] old-53 (sqli -> procedure)

문제에 접속하니 소스만 있어서 바로 소스를 분석해봤다. 1. answer 파라미터 값이 $hidden_table과 같으면 문제 클리어 2. val 파라미터에 select , by 가 들어가면 프로그램 강제종료 3. sql 쿼리를 실행해서 val 값이 $hidden_table 이라는 테이블에 존재하면 화면에 출력 결론적으로 문제를 해결하기 위해서는 쿼리가 실행되는 테이블의 이름($hidden_table)을 알아내야 한다. DB에서 테이블 이름에 접근하기 위해서는 메타데이터 영역에 접근해야 하는데 문제는 select를 사용할 수 없어서 메타데이터에 접근할 수 없을 것 같다. 그렇다면 어떻게 해야 테이블 이름을 알아낼 수 있을까?? 여기서는 테이블 이름을 알아낼 수 있는 다른 방법인 procedure 함수의 ..

webhacking.kr

[webhacking.kr] old-51 (md5)

문제분석 & 풀이 Admin page에 로그인창이 있다. 이번 문제는 admin 계정으로 로그인하는 문제인 것 같다. 오른쪽에 보니 소스가 있어서 소스를 분석했다. 1) id, pw 값을 POST로 받는다. (2번줄) 2) id의 경우 addslashes() 를 통해 이스케이프 처리를 하고 pw는 md5()로 암호화 한다. 3) sql 쿼리를 실행하여 결과 값을 받고 결과값이 존재하면 문제가 클리어된다. 결과값이 존재만 해도 되는 것으로 봐서는 예상대로 admin 계정으로 로그인하는 문제다. 2)번 설명을 보면 id는 이스케이프 처리되기 때문에 인젝션이 불가능 할 것 같다. 이어서 pw는 md5()로 암호화가 되는데 특이점은 5번줄을 보면 md5() 안에 true라는 인자가 추가되어있다. 그렇다면 md5..

webhacking.kr

[webhacking.kr] old-50 (sqli → 주석)

문제분석 & 풀이 sql inejection 문제다. 간단한 로그인 창이 구현됐다. 코드를 분석해보자.

keyme
keyme - Security Study