'Repository'에 해당되는 글 162건

2017.09.12

Posted by nopsled
2017.09.12 23:23 일상생활
  • 복무단축 : 해당 사항 없음
  • 총 복무일 : 640일(1년9개월)
  • 현재 복무일 : 477일(1년3개월20일)
  • 남은 복무일 : 163일(5개월10일)



이제 75퍼... 징글징글하다 


9월 병장 찍었고 전역할때 된거 같은데 -_-

저작자 표시 비영리
신고

'일상생활' 카테고리의 다른 글

2017.09.12  (0) 2017.09.12
2017.06.10  (0) 2017.06.10
육군 정보보호병  (5) 2016.04.23
mysql 10061 에러 해결방법  (1) 2016.03.24
Fuzzer를 만들었다  (0) 2016.03.23
2016.02.16  (0) 2016.02.21

2017.06.10

Posted by nopsled
2017.06.10 17:01 일상생활

  • 복무단축 : 해당 사항 없음
  • 총 복무일 : 640일(1년9개월)
  • 현재 복무일 : 383일(1년18일)
  • 남은 복무일 : 257일(8개월12일)

이제 60%했네. 아직도 한참 남았다 -_-


하고싶은것도 많고 이제 슬슬 계획도 짜야하고 군대에서의 공부는 별로 도움이 안되는거 같다. (너무 한정적임!)


8개월이나 남았다는거에 대해서 너무 극혐이지만 남은 군생활 파이팅. 17군번도 화이팅하세요 :D

저작자 표시 비영리
신고

'일상생활' 카테고리의 다른 글

2017.09.12  (0) 2017.09.12
2017.06.10  (0) 2017.06.10
육군 정보보호병  (5) 2016.04.23
mysql 10061 에러 해결방법  (1) 2016.03.24
Fuzzer를 만들었다  (0) 2016.03.23
2016.02.16  (0) 2016.02.21

오랜만에 삽질삽질

Posted by nopsled
2017.05.07 19:05 네트워크

휴가까지 13일 남았으니 메모장으로 쓰려고 오랜만에 포스팅한다..




1. https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture

2. https://www.bpak.org/blog/2013/11/kakaotalkpc-%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-pc-%EB%B2%84%EC%A0%84-%EB%B6%84%EC%84%9D-2/comment-page-2/#comment-28845

3.  1.피들러설치한다.

2.안드로이드에서 와이파이잡을때 프록시를 피들러설치한 컴퓨터의 IP로 설정한다.
3.피들러를 키고 설정에서 Decrypt https 를 체크한다.

4.안드로이드 모바일에서 http://ipv4.fiddler:8888 인가로 접속해서 인증서를 설치한다.
5.그리고 https사이트들을 돌아다니면 복호화된 패킷이 캡쳐된다/

4. 다른 사람의 장비 --- 다른 사람의 서버 라면 힘들겠지만 둘 중 하나가 본인의 장비라면 쉽게 가능합니다. 이때 클라이언트 장비는, Win / Mac / Android / iOS 를 모두 포괄합니다.


서버라면 뭐 SSL Private Key 를 가지고 계실테니 애초에 고민할 필요도 없고,

클라이언트라면 Root CA 인증서를 기기에 추가하신 후에 해당 Root CA 로 서명된 인증서를 사용하는 프록시 서버를 구축하시면 쉽게 패킷캡쳐가 가능합니다


5. Charles Edit이었나 setting tab에서, android용 charles인증서를 설치할수있도록 되어있습니다. 해당 인증서를 안드로이드기기에 설치하시고 와이파이 설정에서 프록시잡고 https 락 푸시면서 진행하시면 보입니다ㅎ

저작자 표시 비영리
신고

'네트워크' 카테고리의 다른 글

오랜만에 삽질삽질  (0) 2017.05.07
tcpdump 사용법  (0) 2015.10.22
통신사 WiFi 크랙  (0) 2014.09.22
osi 7 layer  (0) 2014.03.13
Wireshark  (0) 2014.03.12

python ctypes GetFileVersion

Posted by nopsled
2016.11.09 23:39 프로그래밍

몇일 전부터 혼자 삽질해보려고 했는데 국방망이라서 할수도 없고... 열심히 기본적으로 제공해주는 모듈로도 할 수 있을꺼같아서 사지방에서 검색하고 또 검색해서 찾은 아웃풋..


import array

from ctypes import *


def get_file_info(filename, info):

    size = windll.version.GetFileVersionInfoSizeA(filename, None)

    if not size:

        return ''

    res = create_string_buffer(size)

    windll.version.GetFileVersionInfoA(filename, None, size, res)

    r = c_uint()

    l = c_uint()

    windll.version.VerQueryValueA(res, '\\VarFileInfo\\Translation',

                                  byref(r), byref(l))

    if not l.value:

        return ''

    codepages = array.array('H', string_at(r.value, l.value))

    codepage = tuple(codepages[:2].tolist())

    windll.version.VerQueryValueA(res, ('\\StringFileInfo\\%04x%04x\\'

+ info) % codepage,byref(r), byref(l))

    return string_at(r.value, l.value)


print get_file_info(r'C:\WINDOWS\system32\calc.exe', 'FileVersion') 

출처 : https://mail.python.org/pipermail//python-list/2006-November/402797.html


기본적으로 제공해주는 ctypes와 array 모듈... 처음에 API도 없다고 떠서 한참 고민했다.


get_file_info의 두번째 파라미터인 info에는 Comments, CompanyName, FileDescription, InternalName, LegalCopyright, OriginalFilename, ProductVersion, ProductName, FileVersion 등등이 들어갈 수 있다.


python Get File Version from binary

저작자 표시 비영리
신고

'프로그래밍' 카테고리의 다른 글

python ctypes GetFileVersion  (0) 2016.11.09
python 윈도우 한글문제  (0) 2016.04.26
python unicode unescape (html unescape)  (0) 2015.11.07
django standard install..  (0) 2015.10.13
Convert Facebook username to id  (0) 2015.04.12
[파밍 크롤러] pharming crawler  (1) 2015.01.28

2016.08.11

Posted by nopsled
2016.08.11 22:45 분류없음

입대한지 80일이 됬다.


정보보호병으로 7군단에 오게 되었고 업무는 많이 힘든것 같진 않다.


바쁠땐 바쁘고 널널할땐 널널하고. 하지만 무엇보다 자기개발하고싶다. 악성코드 분석이나.. 코딩이나.. 개인공부 할 수 있었으면 좋겠다.


여행도 가고싶고! 군대에 오니까 하고싶은게 많아졌다.

저작자 표시 비영리
신고

python 윈도우 한글문제

Posted by nopsled
2016.04.26 21:30 프로그래밍
아오 인코딩 때문에 4시간은 삽질한거 같다.



문제점_____________________________________


1. 윈도우 cmd 쉘에서는 한글이 자꾸 깨진다.

2. raw_input으로 입력받아서 urllib.quote()로 url encoding해주면 윈도우와 리눅스는 다른 결과값이 나온다.




주절주절___________________________________


# -*- coding: utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

print u'한글' # 고정으로 변수에 한글을 넣을 경우 맨앞에 u를 붙인다.

print repr(raw_input('input korean : ')) # 윈도우 cmd 쉘에서 "한글" 단어를 입력할시 '\xc7\xd1\xb1\xdb'로 보여진다.

#print repr(raw_input('input korean : ')) # 리눅스 bash 쉘에서 "한글" 단어를 입력할시 '\xed\x95\x9c\xea\xb8\x80'로 보여진다.



삽질하다가 알게된건 다음과 같다.

윈도우 cmd 쉘에서 입력 받은 한글(\xc7\xd1\xb1\xdb)은 euc-kr로 되어 있는 것이고,

리눅스 bash 쉘에서 입력 받은 한글( \xed\x95\x9c\xea\xb8\x80)은 utf-8로 되어 있는 것이다.




해결방법___________________________________


# -*- coding: utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

print repr(raw_input('input korean : ').decode('euc-kr').encode('utf-8')) # '\xed\x95\x9c\xea\xb8\x80' 결과는 결국 utf-8로 나오고 잘 출력된다.









저작자 표시 비영리
신고

'프로그래밍' 카테고리의 다른 글

python ctypes GetFileVersion  (0) 2016.11.09
python 윈도우 한글문제  (0) 2016.04.26
python unicode unescape (html unescape)  (0) 2015.11.07
django standard install..  (0) 2015.10.13
Convert Facebook username to id  (0) 2015.04.12
[파밍 크롤러] pharming crawler  (1) 2015.01.28

육군 정보보호병

Posted by nopsled
2016.04.23 16:59 일상생활



드디어 군대에 갈 수 있게 되었다..

5.23에 입영이고 누구나 그렇듯 논산으로 가게된다.

육군 정보보호병에 고졸로써 붙은 것도 너무 다행이라고 생각한다. 물론 운이 많이 따라준것 같다.

입영통지서가 5.31정도에 날아올뻔 했지만 붙어서 정말 다행이다. 원하는 군대로가서 열심히 하고 전역하자ㅜㅜ

저작자 표시 비영리
신고

'일상생활' 카테고리의 다른 글

2017.09.12  (0) 2017.09.12
2017.06.10  (0) 2017.06.10
육군 정보보호병  (5) 2016.04.23
mysql 10061 에러 해결방법  (1) 2016.03.24
Fuzzer를 만들었다  (0) 2016.03.23
2016.02.16  (0) 2016.02.21

[세종 CTF/250] Private Torrent

Posted by nopsled
2016.04.07 15:13 문제풀이



처음 바이너리 받고 확인하면 PK 포맷으로 ZIP파일인걸 알게 됩니다.





토렌트파일인거 확인.






다운 받으려 했지만 불가능.. 트래커 서버가 onion이다...


Tor 브라우저와 토렌트 연결해주어야 사용 가능..인포해쉬나 peer_id 같은거 알면 그냥 밑에 그대로 진행하심 됩니더



::1 - - [02/Apr/2016:16:33:12 +0900] "GET http://ovmqomeprulxo35z.onion/announce.php?info_hash=1%03%86%f8e%f9%159%20%d9%cfn%d3DT%21%efA%88%3b&peer_id=-UM1870-C%a3G%c3V%60bY%8c%dc%0e%e4&port=24874&uploaded=0&downloaded=0&left=73&corrupt=0&key=7305D41C&event=started&numwant=200&compact=1&no_peer_id=1&ipv6=fe80%3a%3a82e6%3a50ff%3afe0f%3a8bac HTTP/1.1" 404 210 "-" "uTorrentMac/1870(41795)"


- 아파치 로그 확인하면 저런 로그가 찍혀 있는데 저거 그대로 복사해서 들어가면 된다. 저기로 들어가주자.




bencode 형식으로 인코딩된 키인데 디코딩 해주면 된다. 해줄 필요도 없긴한데 그냥 해준다.


디코딩하면 json방식 이므로~


>>> print bencode.bdecode('d16:R4sc4l123_is_g0d3:keye')

{'R4sc4l123_is_g0d': 'key'}


사실 R4sc4l123_is_g0d3이거 열심히 입력했는데 R4sc4l123_is_g0d였다..



Thanks to @이상섭

저작자 표시 비영리
신고

[세종 CTF/250] Simple_Calculation

Posted by nopsled
2016.04.07 15:13 문제풀이

Just calculate 60 times! nc 203.250.148.100 31062



60번의 시도로 계산하랍니다. 그냥 간단한 코딩 MISC문제..


코드는 더러워도 이해해주세요.ㅋㅋ




calc.py



import socket, time

def calc(answer):

    operator = ['+','-','*','/','&','|','^']

    test = []

    for i in range(0, len(answer)):

        if not answer[i] in operator:

            test.append(answer[i])

        else:

            if answer[i] == '+':

                test.append(answer[i].replace('+','-'))

            elif answer[i] == '-':

                test.append(answer[i].replace('-', '+'))

            elif answer[i] == '*':

                test.append(answer[i].replace('*', '/'))

            elif answer[i] == '/':

                test.append(answer[i].replace('/', '*'))

            elif answer[i] == '&':

                test.append(answer[i].replace('&', '^'))

            elif answer[i] == '|':

                test.append(answer[i].replace('|', '&'))

            elif answer[i] == '^':

                test.append(answer[i].replace('^','|'))

    return ''.join(test)


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(('203.250.148.100' , 31062))


print s.recv(1024) # Lovely Calculation!

s.send('d') # Enter Game


print s.recv(1024) # Two Game

s.send('Myeong\n') # Enter Game


print s.recv(1024)


s.send('\n') # press any key


for i in range(0, 60):

    response = s.recv(1024)

    print response,

    answer = response.split('\r\n')[0].split(' : ')[1]

    answer = calc(answer)

    print str(eval(answer)) + '\t\t' + answer

    s.send(str(eval(answer))+'\r\n')

    time.sleep(1)

print s.recv(1024)

print s.recv(1024)



nopsled@smleeo3o:~/Desktop (=ω´=)$ python test.py

Lovely Calculation!


This problem includes 60 rounds.


Specific Info.

1.Each round has 3 sec. time limit. And all of the answers will be INTEGER ONLY!

2.From round 1 to round 20, there will be less than 5 numbers that you should calculate. The operators will be +,-,*,%.

3.From round 21 to round 40, there will be more than 5 numbers that you should calculate. Also, the equation can have parenthesis. The operators will basically same as round 1 to 20.

4.From round 41 to round 60, there will be more than 10 numbers that you should calculate. Also, the equation can have parenthesis and &,|,^ operator. It follows the standard C language's operator precedence.

5.The operators are little bit different. + -> -, - -> +, * -> /, / -> *, & -> ^, | -> &, ^ -> |


What is your name? :

Have Fun!(Press Any Key)


Round 1 : 7+5*7%1

Answer :  7 7-5/7%1

Round 2 : 2/1+4-2

Answer :  0 2*1-4+2

Round 3 : 4+5%3

Answer :  2 4-5%3

Round 4 : 1%6-8+3

Answer :  6 1%6+8-3

Round 5 : 4+6

Answer :  -2 4-6

Round 6 : 2%6

Answer :  2 2%6

Round 7 : 8+7

Answer :  1 8-7

Round 8 : 9+8

Answer :  1 9-8

Round 9 : 7+9

Answer :  -2 7-9

Round 10 : 5-8

Answer :  13 5+8

Round 11 : 4%1+5+7

Answer :  -12 4%1-5-7

Round 12 : 9/1

Answer :  9 9*1

Round 13 : 2/4+1

Answer :  7 2*4-1

Round 14 : 9%1*4%4

Answer :  0 9%1/4%4

Round 15 : 5-4+4%2

Answer :  9 5+4-4%2

Round 16 : 8%5*2+3

Answer :  -2 8%5/2-3

Round 17 : 8-5

Answer :  13 8+5

Round 18 : 2+1

Answer :  1 2-1

Round 19 : 6*3

Answer :  2 6/3

Round 20 : 1+2+8+7

Answer :  -16 1-2-8-7

Round 21 : (4*1-7+5)-1*1*2

Answer :  6 (4/1+7-5)+1/1/2

Round 22 : 1*1+4+9*2

Answer :  -7 1/1-4-9/2

Round 23 : 7-9/5+1/8+1*4-1%3

Answer :  45 7+9*5-1*8-1/4+1%3

Round 24 : 1*7/1+2%4

Answer :  -2 1/7*1-2%4

Round 25 : 1*1*4*2+7*3%1*7

Answer :  0 1/1/4/2-7/3%1/7

Round 26 : 7*7*1-7-3

Answer :  11 7/7/1+7+3

Round 27 : 5+8*7-4/8-4-9+1

Answer :  48 5-8/7+4*8+4+9-1

Round 28 : 1+1/1+1*4

Answer :  0 1-1*1-1/4

Round 29 : 8*3%1+8+3-9+1+7

Answer :  -10 8/3%1-8-3+9-1-7

Round 30 : 6-1/1/1+4

Answer :  3 6+1*1*1-4

Round 31 : 3+4+5-4*1%7+2+7

Answer :  -11 3-4-5+4/1%7-2-7

Round 32 : 3+4/1+8-3/7/4/2*8

Answer :  12 3-4*1-8+3*7*4*2/8

Round 33 : 7*4*6*7+1+9

Answer :  -10 7/4/6/7-1-9

Round 34 : 1+7%1%8%6+9+1

Answer :  -9 1-7%1%8%6-9-1

Round 35 : 4-6+5%4-7*1

Answer :  16 4+6-5%4+7/1

Round 36 : 1-7%1/9-4*8/1

Answer :  1 1+7%1*9+4/8*1

Round 37 : 3%1+5%1+6*1+7*1+5

Answer :  -18 3%1-5%1-6/1-7/1-5

Round 38 : 3-8/4+3+9

Answer :  23 3+8*4-3-9

Round 39 : 1/9-6+7/1-1+2-2/8

Answer :  23 1*9+6-7*1+1-2+2*8

Round 40 : 6+3%8+1-6

Answer :  8 6-3%8-1+6

Round 41 : 8+7|(7-1)+4|7^5*4

Answer :  1 8-7&(7+1)-4&7|5/4

Round 42 : 3|8%2-7%4

Answer :  3 3&8%2+7%4

Round 43 : 1^3+7-4%6+3+7+3

Answer :  -13 1|3-7+4%6-3-7-3

Round 44 : 1%9+1-5+3

Answer :  2 1%9-1+5-3

Round 45 : 7+5+4-5|9/1+9^4

Answer :  4 7-5-4+5&9*1-9|4

Round 46 : 3+8+1+7|6+1%1%2%8

Answer :  2 3-8-1-7&6-1%1%2%8

Round 47 : 1&4+3%2*1+1

Answer :  3 1^4-3%2/1-1

Round 48 : 1+6+1^6^8&1%1+1+9

Answer :  -2 1-6-1|6|8^1%1-1-9

Round 49 : 3/5+9*1+4/3

Answer :  -6 3*5-9/1-4*3

Round 50 : 4%1+7^7+8^4%4

Answer :  -1 4%1-7|7-8|4%4

Round 51 : 5-9%1+7-6+9

Answer :  -5 5+9%1-7+6-9

Round 52 : 3+1+2*8^4*9*4%1%7

Answer :  2 3-1-2/8|4/9/4%1%7

Round 53 : 4*7|1|3%3+5-4+4*1

Answer :  0 4/7&1&3%3-5+4-4/1

Round 54 : 1+7*7|6+9

Answer :  0 1-7/7&6-9

Round 55 : 3%1^4/7/2+1%1%1

Answer :  56 3%1|4*7*2-1%1%1

Round 56 : 8+5^6/8/4

Answer :  195 8-5|6*8*4

Round 57 : 4^1*2|8%9*1+3+9

Answer :  4 4|1/2&8%9/1-3-9

Round 58 : 1+4*1|7^1

Answer :  5 1-4/1&7|1

Round 59 : 7+1^3%1%6^2^3%5

Answer :  7 7-1|3%1%6|2|3%5

Round 60 : 2-9^4+1*1

Answer :  11 2+9|4-1/1

Congrats! You've cleared whole probs!

The key is on https://www.youtube.com/watch?v=NQlnVVQbpi0 




네 넘나 이쁘고 귀여워서 문제 만든분께 감사합니다.


Thanks to @sup3rv1s0r

저작자 표시 비영리
신고

[세종 CTF/109] 당신은 Robots 입니까?

Posted by nopsled
2016.04.07 15:12 문제풀이



첫 메인 접속시 로봇이냐고 물어본다.


공격 벡터도 없고 생각좀 하다가 robots.txt가 생각나서 들어가봤다.




SSG_Browser만 접근가능하게끔 되어 있고..




SSG_Browser로 바꿔서 들어가면 위와 같은 인증창이 나오는데 페이지 소스를 본다.




eval코드를 복호화하면 다음과 같은 코드가 나온다.




POST로 값을 보낸다.



a를 보냈을때 리스폰값에 -5가 붙어 있고



4를 넣었을때 -5가 사라진다.


사이드채널어택이나 타이밍 어택으로 보고 코딩시작~




robots.py




# -*- coding: utf8 -*-

import requests

alphabet = 'abcdefghijklmnopqrstuvwxyz01234567890'

answer = []

while True:

    find = False

    for i in range(0, len(alphabet)):

        data = {'a':''.join(answer)+alphabet[i]}

        res = requests.post('http://sandbox.smishing.kr:32810/post.php', data=data,headers={'User-Agent':'SSG_Browser'}).content

        if res.find('-5') == -1:

            answer.append(alphabet[i])

            find = True

            print ''.join(answer)

            break


    if find == False: break

print 'Key : ' + ''.join(answer)

print '----- webdata -----'

data = {'a':''.join(answer)}

res = requests.post('http://sandbox.smishing.kr:32810/post.php', data=data,headers={'User-Agent':'SSG_Browser'}).content

print res 





유니코드로 출력해주면 끝.


결론은 앙 주난띠!



Thanks to @이준환, @최인준

저작자 표시 비영리
신고