JS(10)
-
Web - Client | Javascript - Obfuscation 3
처음으로 풀어보는 난이도 3짜리 문제...! 어떤 문제일지 기대되네요. 메인 페이지에 들어가자 역시나 alert 창이 뜹니다. PW를 입력하라고 하네요. 이번에는 다른 문제들보다 JS Code가 조금 복잡해 보입니다. 윗부분은 쭉 보니 딱히 중요한 부분이 없는 것 같습니다. dechiffre() 함수 밖에 있는 String["fromCharCode"] 부분을 보면 dechiffre~~라고 써져있습니다. 여기서 괄호 안에 들어있는 16진수들을 10진수로 바꿔보겠습니다. 제대로 나온 것 같습니다. 아마도 아스키코드의 10진수인 것 같네요. 이제 이 문자열을 fromCharCode()에 넣은 뒤, Console에서 실행해보겠습니다. 난이도가 3이 되니 슬슬 풀 맛이 나네요 :>
2022.05.29 -
Web - Client | Javascript - Webpack
정답률이 극악이네요..?? 메인 페이지만 보면 취약점이 전혀 보이지 않았습니다. 그래서 개발자 도구의 Source 부분에 들어가서 "어떤 취약점이 있을까...." 하며 한참을 찾았습니다. 근데 안 나오더라고요???? 여길 봐도 별다른 취약점이 없었습니다. 여기도 마찬가지..... 한참을 찾다가 문제 이름이 힌트인 건가 싶어 구글에 Webpack를 검색해봤습니다. https://webpack.kr/ webpack 웹팩은 모듈 번들러입니다. 주요 목적은 브라우저에서 사용할 수 있도록 JavaScript 파일을 번들로 묶는 것이지만, 리소스나 애셋을 변환하고 번들링 또는 패키징할 수도 있습니다. webpack.kr Webpack는 여러 개의 파일을 하나로 합쳐주는 JS 모듈 번들러였습니다. 한참 구글링을 해도..
2022.05.28 -
Web - Client | Javascript - Native code
알림 창이 뜨는 걸 보자마자 바로 개발자 도구부터 열어봤습니다. 딱 봐도 난독화가 되어있는 것 같기에 Console에서 String으로 변환시켜봤습니다. 실패했습니다. 왜 이런 에러가 나는지 이유를 몰라서 구글링을 해봤더니, 뒤에 붙어있는 ()를 떼야한다고 합니다. 저거 하나 때문에 20분을 날려먹었네요 :>>> 코드 해석부터 해보겠습니다. prompt에 입력하는 값이 들어가는 a라는 변수가 존재합니다. 이 a가 FLAG와 같다면 alert로 'bravo'를 출력하게 됩니다. 그럼 a==FLAG에서 FLAG에 해당하는 값을 제출란에 넣어보겠습니다. "구글링 실력이 곧 해킹 실력이다."라는 말이 있는데... 진짜 맞는 말인 것 같습니다. 구글은 신이야!
2022.05.27 -
Web - Client | Javascript - Obfuscation 2
이번에는 메인 페이지에 아무것도 적혀있지 않습니다. 바로 JS 코드부터 보겠습니다. pass에 어떤 문자열을 unescape 해서 넣어주고 있습니다. 이 pass 변수가 아마 PW가 될 텐데, 문제에서 시키는 대로 Console에서 Decoding을 해보겠습니다. 제대로 FLAG가 나온 것 같네요. 제출해보겠습니다 :> CTF에서도 이렇게 쉽게 풀리면 좋으련만....ㅠㅠ
2022.05.26 -
Web - Client | Javascript - Obfuscation 1
메인 페이지를 열자마자 또 알림 창이 떴습니다. PW를 입력하라고 하네요. 이번에도 역시 JS 코드를 열어서 문제를 풀어보도록 하겠습니다. 난독화 된 문자열이 들어있는 pass라는 변수가 눈에 띄네요. 이 변수를 unescape() 함수에 넣어서 다시 정상적인 문자열로 바꿔주는 걸 볼 수 있습니다. 그렇다면 이 문자열을 긁어와 Console에서 unescape() 해주면 FLAG가 나올 것이라고 유추할 수 있습니다. 나온 문자열을 PW라고 생각하고 PW 입력창에 넣어보겠습니다. 제대로 된 PW였네요. 이제 이 문자열을 FLAG 제출란에 넣어주겠습니다.
2022.05.25 -
Web - Client | Javascript - Authentification 2
function connexion(){ var username = prompt("Username :", ""); var password = prompt("Password :", ""); var TheLists = ["000:000000"]; for (i = 0; i < TheLists.length; i++) { if (TheLists[i].indexOf(username) == 0) { var TheSplit = TheLists[i].split(":"); var TheUsername = TheSplit[0]; var ThePassword = TheSplit[1]; if (username == TheUsername && password == ThePassword) { alert("Vous pouvez uti..
2022.05.24