전체 글 114

[dream hack] baby-linux

참 재밌는 문제입미다 웹사이트를 실행해보면요 요렇게 생겼습니다 ​ 그럼 이제 python 파일을 한번 볼게여 ​ 이 코드를 한번 분석해 봅시다. ​ user_input = request.form.get('user_input') cmd = f'echo $({user_input})' 우선 요 부분을 보면 웹페이지에서 볼 수 있는 text 입력 칸이 user_input이라는 변수로 받게 되고 cmd라는 변수에 저장됩니다. ​ if 'flag' in cmd: return render_template('index.html', result='No!') 그리고 만약 우리가 입력한 값에 'flag'라는 철자가 들어가게 된다면 무조건 No!를 출력하도록 되어있는 걸 볼 수 있습니다. ​ try: output = subp..

WARGAME/misc 2023.05.30

[써니나타스] 18번

뭔가 딱봐도 아스키 같아보이지 않나요?? 아스키로 변환 해보겠습니당 ​ https://onlineasciitools.com/convert-decimal-to-ascii 온라인 툴 사용해서 아스키로 바꿨는데도 이상한 암호문이네요 ​ 근데 써니나타스에 자체 툴이 있는걸 아시나요? 저는 18번을 풀면서 알았습니다...... 바로 디코드 해봅시다.. ​ 딱보면 base64같죠? 써니나타스 툴로 디코드하면 비번이 나와용 ​

[h4cking game] ROX

flag.py 파일을 살펴보자 여기서 보면 known_plaintext를 알맞게 바꿔서 result를 올바른 거를 출력하도록 하는것으로 보인다! ​ 그대로 "?????"로 해놓고 출력해보면 결과는 요렇게 이상하게 나온다.. ​ 근데 우리는 결정적인 힌트를 알죠 바로 flag 형식이 H4CGM{~~} 인거를 아니깐 known_plaintext에 H4CGM을 넣어보자! enjoy~어쩌구의 결과가 나왔다. ​ 여기서 중요한 사실! result를 연산할때 XOR연산이 있다는것에 주목해라. XOR연산의 특징 중 하나는 a ^ b = c a ^ c = b 요렇게 연산이 가능하다는 것이다. 즉, enjoy를 넣어서 해보면 우리가 원하는 flag 형식이 나온다는것! ​ 해보면 다음과 같이 flag가 나온다 ​ ​