Webhacking.kr 8번 문제 풀이~


8번 문제 클릭



아래와 같이


USER-AGENT


done!(1/70)


이런식으로 페이지에 접속한 숫자만큼 숫자가 카운팅 된다



소스보기를 해보자



index.phps 를 볼 수 있게되어있다 한 번 보자



전달되는 USER_AGENT 값을 받아서 여러 문자를 필터링한다.


필터링한 USER_AGENT 값으로 db에 쿼리를 날려서 결과를 q에 저장하고


mysql_fetch_array에 그 값을 전달하여 ck에 저장한다.



ck에 저장된 결과가 admin이면 문제가 해결되는듯 싶다


ck에 저장된 값이 없다면 (if(!$ck)) 부분이 실행되어


insert into lv0(agent,ip,id) values('$agent','$ip','guest')") or die("query error"); 부분이 실행된다


insert into lv0(agent,ip,id) values('$agent', '$ip', 'guest') 부분에서


insert into lv0(agent,ip,id) values('agent1', 'ip1', 'id1'), ('agent2', 'ip2', 'id2') 이런식으로 한 번의 쿼리로


여러개의 값을 넣을 수 있다


$agent는 전달 받은 값이니 agent1 위치에 agent1', 'ip1', 'id1'), ('agent2


이런식으로 전달하면 원하는 값을 추가로 넣을 수 있을 것이다


그래서 아래와 같이 User-Agent: 값에


Lure', '1', 'admin'), ('2 를 넣어보았다



아래와 같이 나온다



이제 DB에 agent가 Lure이고 ip가 1, id가 admin으로 insert 되었을 것이다


이제 agent를 Lure(admin)로 하여 다시 페이지를 요청하면..



아래와 같이 문제가 해결된다



User_Agent.zip