WriteUp/Webhacking.kr

webhacking.kr : challenge 8

vared 2020. 9. 11. 22:47

돌아가는 순서를 파악해 보고 뭐를 할지를 생각해 보자

 

      1. agent 변수에  웹사이트를 접속한 CPU 웹브라우저 정보를 저장
      2. ip 접속자의  ip정보를 저장
      3. agent 변수에 from 이라는 값이 있으면 필터링.

-> access denied

      1. db 변수에 db연결정보저장
      2. count_ck 변수에 array 가져온거 저장
      3. 배열의 0번째 인덱스의 크기가 70 이상이면

-> delete from chall8

지운다는 건지 모르겠다.

      1. result 변수에 query 저장
      2. ck 변수에 result 대한 arr 가져옴
      3. ck 변수의 값이 존재한다면

hi _____ 출력

ck[0] admin이면 문제 해결

      1. ck 변수에 값이 들어있지 않다면

done! 출력

q 변수이용해서 정보 집어넣거나, query error 띄움.

 

 

결론적으로 값을 넣을수 있는 변수를 찾아보면 ,,,,,,,,,,, 아이피 정보를 바꿔야지 풀수 있는 문제 같다.

SERVER['HTTP_USER_AGENT'] 값을 변조 있는지 찾아보자

 

 

insert into chall8(agent,ip,id) values('{$agent}','{$ip}','guest')"

이부분을 이용해서 우리가 원하는 값을 넣어줄 있을꺼같다.

지금 default 값으로 guest 들어가 있는거 같으니,

 

insert into chall8(agent,ip,id) values('{$agent},'{$ip}','admin'),('{$agent}','{$ip}','guest')"

 

이런 꼴로 넣어주면 되겠다

넣어주야 하는 값은

{$agent},'{$ip}','admin'),('{$agent} 이부분이다.

done! 나왔다.

vared','1.1.1.1','admin') # 이렇게 맘대로 값을 만들어주고, 테이블을 채워주고, (70)

-> ck[0]까지를 덮어써줘야하니까,

user-agent 값으로 vared 보내주면 문젝 풀린다.