본문 바로가기

전체 글

(22)
FaranSky's Portfolio 보호되어 있는 글입니다.
suninatas 2번 문제. 2번 문제를 들어가면 위와 같이 id와 pw 입력창만 나온다. 해당 문제를 풀기위한 힌트가 있는지 확인해보겠다.  해당 페이지의 전체코드는 위와 같다. 그 중, script태그와 힌트 부분만 상세히 봐보겠다.id 변수에는 id입력값이 들어가고, pw 변수에는 pw변수값이 들어간다.id와 pw의 입력값이 같다면. alert로 you can't join! try again이 출력이 된다, 하지만 hint를 보면 id = pw라고 한다.id와 pw의 입력값이 같이 않으면서, 안 같아야한다는 것이다. 여기선 두 가지 접근이 가능한다. 첫 번째 접근. 프록시를 사용한 접근 script태그는 클라이언트단에서 돌아가는 것이고, 안에 있는 else에 있는 submit()함수는 서버측에서 작동이 되는 것으로 예상이 되니..
써니나타스 1번 문제 써니나타스 어느 정도 풀다가 다른 워게임을 풀러갔었었는데 갑자기 기억이 남아서 남은 하나 문제 풀고 한 문제씩 풀이를 진행하고자 한다. 첫 번째 문제부터 복습겸 천천히 진행하고자 한다.  1번 문제 간단하게 코드를 볼 수 있냐라는 문제이다. 코드 문법을 보니 jsp 코드인 것으로 보인다.최종 result값이 admin이 되어야 정답이 되는 것인데, 어떻게 하면 바로 admin을 입력하면 정상적으로 진행되지는 않는다. if not str 이후에 있는 replace 함수들 때문이다.입력한 값에 a가 있으면 aad로 바뀌고, i는 in으로 바뀌고, mid함수를 사용하여서 result에 2번째 문자부터 2개의 문자를, 4번째 문자열부터 6번째 문제까지 2개의 문자를 잘라서 각각 result1, result2 로..
CodeEngn Advance RCE L01
codeEngn.com Basic 7 Write_up [abex' 5th crackme] 코드엔진의 베이직 7번문제이다. 비공개 게시글에는 어드밴스드도 몇개 풀려있는데 생각보다 베이직을 귀찮아서 안 풀었었다. 가벼운 마음으로 오랜만에 xdbg를 키고 시작할려니 과거에 삽질했던 흔적이 보였다. 그 흔적을 토대로 보여주도록 하겠다. 문제설명에서 주는 힌트를 살펴보자면 C드라이브의 이름을 토대로 시리얼이 생성하는 것 같다. 또한 시리얼 생성을 할때, 드라이브의 이름이 어떤 로직을 통해서 변경되는 것 같다. 다운 받은 파일의 압축을 풀면 exe형식의 파일이 나온다. 해당 파일을 바로 추적해보겠다. 언제나 맨 처음에 보이는 dll로드 등등이 있는 곳이다. alt + E를 누르면 exe파일의 첫 진입점과 dll들의 첫 진입점들을 볼 수 있다. exe파일을 분석해야하기 때문에 해당 진입점 주소로 이동해서..
찬양팀 리더란 무엇인가 고등학생때부터 찬양팀으로 서서 여러 트러블과 연단을 통해서 얻어진게 있었다. '완벽을 바라지 말자', '지금 이 멤버들이 이 찬양을 묵상하고 말씀의 은혜를 받는걸 주로 하자.' 언젠가 콘티를 급하게 짤 때가 있었다. 그 때 한분이 오셔서 좀 더 편하게 부를 수 있으면 좋겠다고 말씀을 해주셨다. 머리가 깨지고 안개가 걷히는 느낌이였다. 내가 콘티를 짜기 전에 주제 말씀을 몇번을 읽었지? 내가 하나님을 찬양하는걸까 나의 능력을 자랑하는 걸까? 라는 생각이 강하게 들어왔다. 그렇기 때문에 더욱이 찬양이 어려워지고 찬양속에 은혜가 사라져 가는 것이 아닐까 했다. 늘 연습 시작 기도에서는 자신을 자랑하는 사람이 아니라 온전히 주님께 찬양을 드리는 사람으로 살아가게 해달라고 기도해놓고 실천하지 않는 것이였다. 그 ..
codeEngn.com Basic 6 Write_up [Raz0r Crackme #1] Unpack을 하라는 것 보니 Packing이 되어 있나 보다. OEP는 Original Entry Point를 줄인 말로 패킹이 되어 있는 파일에 진짜 Entry Point를 말하는 것이다. 보통 popad에서 몇개 내려가면 jmp으로 이동한다. 사실 upx툴로 언패킹하고 바로 실행을 하면 oep값이 Entry Point가 바로 보이니까 찾기 쉽지만. 문제풀이를 기준으로 보니 패킹된 파일에서 oep를 찾는 방법을 통해서 문제를 풀겠다. 처음 만난 Entry Point는 pushad가 있는 패킹된 entry point다 push가 있으면 pop이 있을 것이다. 진행을 하다보면 많은 양의 분기문을 만나 한참을 루프를 할것이다. 그냥 조금만 내려봐서 직접 popad를 찾는게 빠를 수 있다. popad가 찾았..
codeEngn.com Basic 5 Write_up [official CFF CrackMe3.0] 인증하는 키값을 찾는 문제이다. 요령은 패스워드 찾는 문제랑 비슷하다. 다만 다른점이 있다면 후술에 설명을 하겠지만 패킹이 되어 있다는 점이다. 패킹을 안 풀고도 충분히 답을 알아낼 순 있으나, 정확한 값이 제대로 나오지 않을 가능성이 있다는 것을 염두에 두고 있어야 한다. Entry Point로 들어가면 pushad라는 오퍼가 있는것을 확인할 수 있다. 일반적인 패킹에서 pushad에 원래 메모리 주소값을 넣어두고 popad로 해당 주소값으로 점프를 해서 코드를 쉽게 알아보지 못하게 하게 한다. peid로 열어봐서 패킹여부를 확인해보겠다. upx로 패킹되어 있는 것을 확인할 수 있다. upx툴을 사용해서 언패킹을 한 후 진행을 해 보겠다. 자 이제 언패킹이된 파일을 실행해서 해당 파일이 어떻게 돌아간느..