Webhacking.kr 13번
참일 때 거짓일 때 필터링 =, , and, ||, &&, 공백, 0x, -, /, *, like, left, right, mid, ascii, hex, where, limit, union, order 등 되는 것 or, select,0b, ', substr, sleep,^,ord, if, database(), information, in, reverse 등 필터링과 되지 않은 것들은 더 있을 것인데 중요한 것만 추렸다 데이터베이스명 알아내기 no=(0)or(if(length(database())in(7),1,0)) ord(?)=99 'c' 아마 chall13이지 싶음 이제 테이블을 찾아야하는데 우선 테이블명의 길이부터 알아낸다 테이블명의 길이를 알아내는 쿼리문으로는 if((select(length(mi..
Webhacking.kr 9번
no=3의 id값이 password라고 함 쿼리문은 아마 no의 값으로 id를 꺼내오는 단순한 구조인거같음 select id from 테이블 where no=1 이런구조? no의 값에서 injection을 해야하는 것 같은데 필터링된게 엄청 많음 =, , ||, &&, or, and, /**/, 공백, char, hex, select, left, ', ", # 더 있는거같다 그래도 필터링을 우회하여 injection이 먹히긴 함 공백은 괄호를 적당히 사용하면 될거같음 0은 없는 것 같으니 이걸로 씀 no=if(length(id)like(5),1,0) id의 길이가 5이면 no=1이되고 아니라면 0번페이지를 호출할 거임 근데 하다보니 신기한 거였는데 if문의 참일 경우 반환되는 값에 따라 id가 no=1의..
Webhacking.kr 57번
se가 secret체크박스의 값임 message와 secret에 addslshes함수 적용 se에서 select, and, or, not, &, |, benchmark 필터링 쿼리문은 insert into chall57(id,msg,pw,op) values('{$_SESSION['id']}','{$_GET['msg']}','{$flag}',{$_GET['se']}) se에서 sql함수를 사용가능해 보임 일단 이문제에서 볼수있는건 메세지를 보냈을 때 Done 밖에 없음 그래서 time based injection이 생각나 해보기로함 msg=1&se=if(length(pw)>0, sleep(2), 0) 이런식으로 해서 작동되는지 보니까 sleep이 먹힌다 msg=1&se=if(length(pw)=24, sl..