네이버 오디오클립(AudioClip) SQL Injection 취약점

네이버 오디오클립 서비스는 팟캐스트와 비슷한 인터넷 라디오 서비스이다. 1. 취약점 오디오클립 서비스에서 클립을 가져올 때 sortType 을 지정할 수 있는데 이 파라미터를 가공하지 않은 형태로 SQL Query를 실행하여 발생하는 취약점이다. sortType에 사용자가 입력한 대로 SQL Query에 들어갔는데, 이는 ASC를 aSc로 입력해본다는가, ASC, 1 로 입력해보는 등의 행위로 추측할 수 있었다. 결정적으로 ASC, 32908492834 를 입력했을 때 Error가 뜨며 화면이 나오지 않는 것을 보아 SQL Injection 공격에 취약함을 알아차렸다. 2. Exploit 익스플로잇 코드는 다음과 같다. #!/usr/bin/env python3 # coding: utf-8 import r..

백준 1018번 체스판 다시 칠하기 write-up

#!/usr/bin/env python3 # coding: utf-8 def set_plate(): n, m = map(int, input().split()) plate = [] for i in range(n): row = list(input()) plate.append(row) return n, m, plate def get_repaint(plate): result = [] row = [ ['W', 'B'] * 4, ['B', 'W'] * 4 ] for i in range(2): repaint = 0 for j in range(8): check = row[(i + j) % 2] for k in range(8): if plate[j][k] != check[k]: repaint += 1 result.app..

SuSec CTF 2020 'Roll dice' write-up

CTF 도중에는 어떻게 푸는지 정말 감을 못잡아서 결국엔 끝날 때까지 못풀었는데, CTF가 끝나고 Defenit 팀에서 어떻게 푸는 문제인지 알려주어서 나중에야 풀 수 있었다. 해당 문제에서는 소스를 제공해주는데, Python 이기도 하고 무엇보다 eval() 을 통해서 사용자로부터 입력된 표현식을 실행시키는 방식이기 때문에 Python Jail임을 확신했다. I couldn't solve this challenge during the CTF, but I resolved later with the help of the Defenit team. Thanks to team Defenit. I was sure that it is a sort of 'Python Jail' because of eval() fun..

SuSec CTF write-up

Sorry for my bad English foreigners lol :0Webweb0 We can get the source which use nodejs express engine. There's some mechanism which compare 'first' and 'second' in post method. As send Array in 'first' and 'second', you can get the flag! Microservice We can access to very simple web service. You can Login, get Flag, and change the Theme of the service. After many tries in JWT Token Attack, I f..

wargame.kr QR CODE PUZZLE write-up

문제에 접속해보면 QR코드로 추정되는 사진이 퍼즐게임과 같은 조각으로 나뉜 것을 볼 수 있다. 예전에 주니버네이버에서 해봤을 법한 게임이다. 소스를 보면 QR코드를 어떻게 불러왔는지 알 수 있다. /**/ 에 jQuery의 attr() 함수를 통해 QR 코드를 불러옴을 확인할 수 있다. QR코드의 주소는 URL Encoding 형태로 인코딩되어 있는데 이것을 다시 디코드해보면 QR코드의 경로가 './img/qr.png' 인 것을 알 수 있다. http://wargame.kr:8080/qr_code_puzzle/img/qr.png QR코드 리더기로 불러오면 'http://wargame.kr:8080/qr_code_puzzle/Give_M3_th7_F1aG.php' 로 이동한다. 그리고 플래그를 얻을 수 있다.

b01lers CTF, Scrambled write-up

약간 게싱?이기도 하면서 스크립트 짜면 쉽게 풀 수 있었던 문제같다. 문제 사이트로 들어가면 다음과 같은 화면을 볼 수 있다. [*] url : http://web.ctf.b01lers.com:1002/ 이렇게 캡처 사진만 보면 별게 없어보이지만, html 소스를 보면 더 별게 없다. 이게 끝이다. 보통 이런 경우 robots.txt 에 숨겨진 디렉터리가 존재하거나, Cookie에 무언가 값을 넣어두거나, .git, index.php~ 등의 소스유출을 의도하는게 대부분이다. 이 문제에서는 쿠키에 이상한 값을 넣어놓았다. 쿠키를 보면 알 수 없는 값들이 존재한다. 뭔지 영문을 알 수가 없는 이 값 때문에 '게싱'으로 푸는 문제임을 직감하고 그냥 넘어가려고 했지만, 이런 ㅈ밥문제는 내가 뚝배기를 깨버려야 한..

CONFidence CTF 2020 Teaser write-up

Web Cat web XSS 풀자마자 왜 이런 벡터를 생각을 못했는지 자책을 하기도 했던 문제이긴 하지만, 풀이 자체는 깔끔하고 공격 연계 벡터도 내가 생각도 못한 부분에서 발생해서 나름 신기한 문제였다. function getNewCats(kind) { $.getJSON('http://catweb.zajebistyc.tf/cats?kind=' + kind, function(data) { if (data.status != 'ok') { return; } $('#cats_container').empty(); cats = data.content; cats.forEach(function(cat) { var newDiv = document.createElement('div'); newDiv.innerHTML =..