문제를 보자.
level9_users 테이블의 어떠한 유저의 username과 password를 얻으라고 한다.
딱히, Admin의 패스워드만을 원하는 것은 아닌거같다. 또한 blind sql injection 이 아니라는 힌트가 있다. 다른 방식으로 패스워드를 얻으라고 한다~
Autor가 RedTiger인 것으로 보아 RedTiger의 패스워드를 얻어야 하지 않을까란 생각으로 게임 Start !
밑에 보이는 Name과 Title 그리고 textarea에 test1, test2, test3 순서대로 적고 제출을 눌렀더니 아래와 같은 결과가 나왔다.
뭔가 셋 중 하나에 injection을 하여 password를 얻으면 될꺼같은 분위기~
하나씩 싱글쿼터를 넣어보다가 마지막 textarea에 싱글쿼터를 넣으니 아래와 같은 에러가 출력되었다.
따라서 text부분에 3')# 을 입력하면 아래와 같이 잘 출력된다.
이 문제는 샤워하다가 깨달았다 ㅋㅋㅋㅋ
버튼이 제출로 되어있고, 한가지 기사(?)는 이미 등록되어있는 상태로 나와 INSERT 포인트에서 SQL Injection하는 것이 아닐까란 생각을 하였다.
INSERT는 아래와 같은 형식이다.
INSERT INTO tablename ( col1,col2,col3 ...) VALUES ( val1, val2, val3, ... )
여기서 만약 여러 값을 삽입하고 싶다면
( val1, val2, val3 ),( val4, val5, val6 ) 식으로 진행하면 된다.
따라서 나는 이를 테스트하기 위해
autor=1&title=2&text=3'),('4','5','6
를 전송한 결과 아래와 같이 출력되었다.
예상대로 INSERT를 이용한 것이였다.
이제 아래와 같은 쿼리를 전송하였다.
autor=1&title=2&text=3'),((select+username+from+level9_users+limit+1),(select+password+from+level9_users+limit+1),'6
그 결과 위와 같은 결과를 얻었고 이를 넣어서 인증을 완료하였다 !
'Solve Problem' 카테고리의 다른 글
[RedTiger's Hackit] 올클리어 (0) | 2018.02.03 |
---|---|
[RedTiger's Hackit] 10번 문제 (0) | 2018.02.03 |
[RedTiger's Hackit] 8번 문제 (0) | 2018.01.29 |
[RedTiger's Hackit] 7번 문제 (0) | 2018.01.29 |
[RedTiger's Hackit] 6번 문제 (0) | 2018.01.29 |