보안솔루션 관점에서 이야기하는건 어짜피 병림픽이니, 제하고

외부 프로그램들은 항상 고정위치의 값을 변조하고나 읽어가서 악용하는 경우가 많다.

메모리풀을 만들때, 메쏘드에 얼록외에 추가로 보호얼록 같은걸 만들어서,
기존 풀의 랜덤한 영역에 할당해주는 것도 도움이 되지 않을까 싶다.
리눅스에는 os가 지원하는 기능으로 알고 있다.

추가로 변수 완전하게 추상화가 가능하면, 실제 저장 영역은 바이트 단위로 쪼개서 랜덤한 영역에 분포시키고, 오버라이드된 오퍼레이터 ( = ) 에서 합쳐서 돌려주는 식으로 구현하는 것도 괞찮을 듯 하다.

이올린에 북마크하기
2012/01/27 09:34 2012/01/27 09:34
memory read 방어 :: 2012/01/27 09:34 공부/etc

기존 코드 프로그램 으로 프로젝트 생성 시,

콘솔 응용프로그램 작성된걸,
win32 응용프로그램으로 로드하면 위와 같은 에러가 납니다.

msvcrtd.lib(crtexew.obj) : error LNK2019: _WinMain@16 외부 기호(_WinMainCRTStartup 함수에서 참조)

바꾸세요. ㅇㅇ

이올린에 북마크하기
2011/08/09 16:34 2011/08/09 16:34

TCP는 신뢰성을 가진 통신 프로토콜이다.
이런 신뢰성 문제중에 하나가 Reordering이 있는데,
이는 패킷이 어떤 알수없는 사정에의해 순서가 뒤바껴서 온경우를 말한다.

자세히 설명하면
데이터를 전송혹은 다운로드 받을 때 ack가 고정이되고, seq를 통해서 현재 위치를 가늠하게 되는데,
이때 seq + len 으로 추정된 다음 seq의 패킷이 오지 않고, 다른 패킷이 왔을 때를 말한다.

크기 1 짜리 패킷 5개를 보냈을 때
1 -> 2 -> 3 -> 4 -> 5 이런식으로 seq를 확인하여 패킷을 합치면 된다.
1 -> 3 -> 2 -> 4 -> 5 로 왔을 때는?
이때 reordering이 발생하는데 WireShark에서는 TCP Out-of-Order라고 표시해준다.
TCP는 3이 도착했을 때 3이 현재 올바른 순서로 온것이 아닌 것으로 파악하고 ,
3을 버퍼에 쌓아둔다. 그리고 2가 도착했을 때 2를 사용하고, 버퍼에 쌓아둔 3을 사용하게 되는것.

이런 TCP Reordering은 보통 3개까지만 저장하되 이를 넘어가면
loss data로 간주하여 재전송을 요청하게 된다.

이올린에 북마크하기
2011/08/05 18:01 2011/08/05 18:01

Template / 그럭저럭 이해
SingleTon / 음. 활용해볼 필요가 있음. 안 와닿음. 클래스 밖에서 null 주는것 이유 모르겠음.

STL
List / 완료
Vector / 완료
Deque / 완료
Map / 완료
Hash_Map / 완료

STL – Algolism
find / 완료
find_if / 완료
for_each / 완료
generate / 완료
copy / 완료
remove / 완료
replace / 완료

이제야 이걸 공부하다니 한심함...

Effective STL은 정리중
http://shampu.springnote.com

이올린에 북마크하기
2011/07/05 19:28 2011/07/05 19:28
Template , STL :: 2011/07/05 19:28 공부/cpp
  • SNMP Library Version Mismatch (5.3.1 vs 5.3.2.2)
    Net-Snmp 버전이 안맞는 경우로 Spine 최신버전을 깔거나(e버전), Net-Snmp를 5.3.1로 다운그래이드 한다.
  • configure: error: Cannot find SNMP header files under
    Spine을 컴파일 할 때 Net-snmp-devel이 설치 되어 있지 않으면 발생하는 에러, Net-snmp-devel을 깔자.
이올린에 북마크하기
2010/01/29 20:02 2010/01/29 20:02
############################# libol ################################

Installing:
 gcc                   i586        4.4.1-2.fc11            updates        8.8 M
Installing for dependencies:
 cloog-ppl             i586        0.15.7-1.fc11           updates         89 k
 glibc-devel           i586        2.10.1-5                updates        999 k
 glibc-headers         i586        2.10.1-5                updates        640 k
 kernel-headers        i586        2.6.30.9-96.fc11        updates        746 k
 ppl                   i586        0.10.2-7.fc11           updates        1.6 M
Updating for dependencies:
 cpp                   i586        4.4.1-2.fc11            updates        3.6 M
 glibc                 i686        2.10.1-5                updates        5.8 M
 glibc-common          i586        2.10.1-5                updates         23 M
 libgcc                i586        4.4.1-2.fc11            updates         98 k
 libgomp               i586        4.4.1-2.fc11            updates         85 k

Installing:
 gcc-c++                i586        4.4.1-2.fc11           updates        4.6 M
Installing for dependencies:
 libstdc++-devel        i586        4.4.1-2.fc11           updates        1.8 M
Updating for dependencies:
 libstdc++              i586        4.4.1-2.fc11           updates        326 k

############################## syslog ################################

Updating:
 glib2           i586           2.20.5-1.fc11           updates           1.5 M

Installing:
 glib2-devel         i586         2.20.5-1.fc11           updates         1.3 M

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig


페도라 코어에서 개발자 패키지를 빼고 설치 했을 때. syslog를 설치하기 위해 필요한 패키지 입니다.
이올린에 북마크하기
2009/11/13 02:56 2009/11/13 02:56
웹사이트에 x.asp;x.jpg로 업로드 하는 경우. 해당 파일에 직접 접근해보면
IIS5.0(Windows2k)에서는 안됬지만, IIS6.0(Windows2k3)에서는 asp인식해서 성공적으로 실행이 된다.
이외에 IIS6.0에 php를 사용하는 경우도 OK -> ex.php;ex.jpg
Apache를 쓰는경우 당연히 문제가 없다.
 
해당 취약점에 대해서 검색해보면 중국 사이트 들 밖에 안나온다.
검색어가 잘못된 것인지, 이슈화가 안된것인지는 모르겠다.

위의 x.asp;x.jpg 로 검색해보면 중국사이트들만 엄청나게 열광하고 있는 것처럼 보인다.

한국사이트는 아래 둘.
찾은 관련 페이지들 검색어 "iis 6 파싱 취약점"
http://www.whoisweb.net/board/view.php ··· %3D94645 (새 창으로 열기)
http://coffeenix.net/bbs/viewtopic.php?p=5812 (새 창으로 열기)

위 글에서는 iis5도 취약대상이라고 써있지만 내가 테스트할 때 iis5는 취약하지 않았다.

이렇듯 이 취약점을 이용하면 정상적인 그림파일 처럼 웹쉘을 업로드 하여서 실행할 수 있으므로 주의 해야 한다.
기본적으로 보안의식을 갖고 홈페이지를 운영한다면 아래 사항을 잘 지키고 있을 테니 문제가 될 것이 없겠지만, 아니라면 한번씩 점검해보도록 하자.

1. 업로드 폴더에 실행권한을 주지 않을 것
2. 업로드 파일 필터링 할 때 특수문자 필터링 강화 할 것.
3. 업로드 폴더에 쉘명령어를 포함한 파일이 있는지 검사하는 크론을 세팅

로 막을 수 있겠다 이번 10월 보안패치에는 포함되지 않은 것 같다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/10/16 08:55 2009/10/16 08:55
BASE64 인코딩, 디코딩

#http://www.ruby-doc.org/core/

#base64_encode

require 'base64'

Base64.b64encode("Now is the time for all good coders\nto learn Ruby")

 

#http://www.ruby-doc.org/core/

#base64 decode

require 'base64'

str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +

'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +

'ZSB0aHJlZQpBbmQgc28gb24uLi4K'

puts Base64.decode64(str)


Block TCP Socket

#http://rubylearning.com/satishtalim/ruby_socket_programming.html

#Block TCP Server

require "socket"

dts = TCPServer.new('localhost', 20000)

loop do

Thread.start(dts.accept) do |s|

print(s, " is accepted\n")

s.write(Time.now)

print(s, " is gone\n")

s.close

end

end

# p069dtclient.rb

# http://rubylearning.com/satishtalim/ruby_socket_programming.html

# block TCP Client

require 'socket'

streamSock = TCPSocket.new( "127.0.0.1", 20000 )

#streamSock.send( "Hello\n" )

str = streamSock.recv( 100 )

print str

streamSock.close


NonBlock TCP Socket

#www.ruby-doc.org/core

#nonblock TCP Server,Client

require "socket"

serv = TCPServer.new("127.0.0.1", 200020000)

af, port, host, addr = serv.addr

c = TCPSocket.new(addr,port)

s = serv.accept

c.send "12345678910", 0

IO.select([s])

p s.recv_nonblock(10) #=> "aaa"

print p


URI 인코딩/디코딩

require 'uri'

enc_uri = URI.escape("http://example.com/?a=\11\15")

p enc_uri

# => "http://example.com/?a=%09%0D"

p URI.unescape(enc_uri)

# => "http://example.com/?a=\t\r"

p URI.escape("@?@!", "!?")

# => "@%3F@%21"

require 'uri'

enc_uri = URI.escape("http://example.com/?a=\11\15")

p enc_uri

# => "http://example.com/?a=%09%0D"

p URI.unescape(enc_uri)

# => http://example.com/?a=\t\r


HTTP Get

require 'net/http'
require 'uri'

Net::HTTP.get_print URI.parse('http://www.example.com/index.html')


HTTP Post

require 'net/http'

require 'uri'

#1: Simple POST

res = Net::HTTP.post_form(URI.parse('http://www.example.com/search.cgi'),

{'q'=>'ruby', 'max'=>'50'})

puts res.body

#2: POST with basic authentication

res = Net::HTTP.post_form(URI.parse('http://jack:pass@www.example.com/todo.cgi'),

puts res.body

#3: Detailed control

url = URI.parse('http://www.example.com/todo.cgi')

req = Net::HTTP::Post.new(url.path)

req.basic_auth 'jack', 'pass'

req.set_form_data({'from'=>'2005-01-01', 'to'=>'2005-03-31'}, ';')

res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }

case res

when Net::HTTPSuccess, Net::HTTPRedirection

# OK

else

res.error!

end

이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/10/05 16:03 2009/10/05 16:03
ruby api 정리 :: 2009/10/05 16:03 공부/web

SSL Decrypting Packet capture

 

http://wiki.wireshark.org/SSL

http://www.novell.com/coolsolutions/ap ··· html%232 (새 창으로 열기)

https://www.carbonwind.net/blog/post/2009/04/10/Using-Wireshark-to-decrypt-HTTPS-traffic-when-a-secure-web-server-is-published-with-ISA-Server-2006.aspx

 

First links Solution?

http://forums.macosxhints.com/showthread.php?t=23083

 

Ive this problem

 

sudo openssl pkcs8 -in rsasnakeoil2.key  -inform der -out key.pem -outform PEM

Error reading key

6280:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1306:

6280:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509_SIG

이올린에 북마크하기
2009/09/22 16:00 2009/09/22 16:00
openclose