Webhacking.kr 29-file sql injection
정상적으로 파일이 업로드가 되면 Done이라는 문자열이 출력이 됩니다.
@mysql_query("insert into challenge35_list values('time','ip','file')
이런식으로 sql의 insert ~ values 구문이라고 생각했습니다.
저기서 catch 한 점은 time과 ip는 자동으로 넣어주는 것 같고....(파일만 업로드했기 때문에)
abc','abc','abc');# 을 파일명으로 한 파일을 업로드 시켰을 때 Done이 떳습니다.
여기서 생각없이 넣어봤는데 Done이 뜬걸보고
@mysql_query("insert into challenge35_list values('file', 'ip', 'time')
또는
@mysql_query("insert into challenge35_list values('file', 'time','ip')
라고 생각하게 되었습니다. 혹시나 ' 와 ( , ) 같은 것이 필터링이 되는지도 점검했는데 --(주석)은 필터링이 되는 것 같고 나머지는 딱히 필터링이 되어있는지 알지못했습니다.
abc',(select password from c29_tb), char(IP));#
이거 또는
abc',char(IP), (select password from c29_tb));#
IP는 .을 필터링해서 없애버리기 떄문에 0x나 char로 만들어줘야합니다.
ip를 굳이 제대로 맞춰야하나 해서 대충 아무값이나 넣었었는데 그렇게 되면 Done은 뜨지만 파일이 업로드가 된게 보이지가 않았습니다.
0 개의 댓글