8번 문제에 들어가니 어서오라고 한다.
코드를 보아하니 이 문제의 admin이 되는것이 목표인 모양이다.
그런데 맨 위쪽을 보니 IP와 User-Agent를 수집하고 있다.
(이쯤에서 대충 User-Agent로 SQL 인젝션 할것 같다는 감이 왔다.)
위와같이 생각하던 찰나, 다음 코드를 발견하게 된다.
User-Agent값과 IP를 활용하여 등록을 하는 모양인데, Prepared statement등의 별다른 요소가 없는것을 보아 SQL 인젝션이 가능할것이라고 가늠할 수 있었다.
User-Agent값이 담기는 $agent에 인젝션 구문을 삽입하고 SQL의 주석인 #을 활용하여 뒷부분을 비활성화 시켜주면 될 것 같다.
따라서 다음과 같은 구문을 생각해내었다.
qwert', '[아이피]', 'admin'
우선 피들러로 패킷을 잡고,
잡은 패킷의 User-Agent 값을 내가 작성한 SQL 구문으로 변경해주었다.
위와 같이 값을 변경해준 뒤, 보냈더니 done이 출력되며 사용자 추가(?)가 완료된다.
그럼 이제 우리가 추가한 qwert를 User-Agent로 담아 요청을 보내보자.
보내면 우리가 선언한 admin으로 로그인되며 문제가 풀리게 된다.
'보안공부 > Webhacking.kr 풀이' 카테고리의 다른 글
Webhacking.kr old-07 풀이 (1) | 2024.09.25 |
---|---|
Webhacking.kr 36번 문제 풀이 (0) | 2019.09.17 |
Webhacking.kr 60번 문제 풀이 (0) | 2019.09.15 |
Webhacking.kr 48번 문제 풀이 (0) | 2019.09.14 |
webhacking.kr 44번 문제 풀이 (0) | 2019.09.13 |