Webhacking.kr 8번
HTTP_USER_AGENT와 나의 IP가 쓰임 agent에서 from이필터링 select id from chall8 where agent ='나의 브라우저' 해서 나오는 값으있으면 계정정보를 출력하고 없으면 새로운계정을 만든다 insert into chall8(agent, ip, id) values('agent', 'ip', 'guest') 결국에 agent를 조작해서 나오는값이 admin이면 클리어 insert into chall8(agent, ip, id) values('bbq', '내아이피', 'admin'),('abc', 'ip', 'guest') 이렇게 해서 2개의 계정을 한번에 만든다 벞스를 사용해 User-Agent를 수정 user-agnet를 bbq로 했을 때 admin으로 되게했으니까 ..
Webhacking.kr 29번
파일을 올리면 time, ip, file의 이름이 뜨는 것을 볼수있다 이걸로 파일을 제출할 시 INSERT INTO 테이블 VALUES() 구문이 쓰이고 우리에게 보여지는 화면은 select time, ip, file from 테이블 구문으로 되어있는걸 추측할 수 있다 일단 파일이름으로 injection을 시도할건데 VALUES()안에서 파일이 어디에 위치하는지를 먼저 알아내야한다 경우 1(파일 이름이 첫번째에 위치하는 경우) file, ~~, ~~ 이런 경우에는 ', ~~, ~~),(injection, ~~. ~~)-- -로 한다 INSERT INTO 테이블 VALUES('', ~~, ~~),(injection, ~~, ~~)-- -', ~~, ~~) 경우 2(파일 이름이 중간에 위치한 경우) ~~, ..
Webhacking.kr 35번
phone과 id를 GET방식으로 전달받음 필터링 phone에서 | * | / | = | select | - | # | ; | id에서 id값이 5글자보다 많으면 안됨 admin이 포함되면 안됨 쿼리문 insert into chall35(id,ip,phone) values('id','아이피',phone) 이게 우리가 날리는 쿼리이고 select ip from chall35 where id='admin' and ip='내 아이피' 이 쿼리로 나오는 값이 내 ip와 같다면 클리어 mysql에서 한번에 insert를 여러개 할 수 있음 insert into 테이블명(컬럼1, 컬림2) values('값1', '값2'), ('값1', '값2'), ('값1', '값2') 그래서 id값은 그대로 두고 phone에서 ..