Friday, September 29, 2006

A Death in the Class of 9/11

Having grown up in an "Army family" and having served in Army Reserve (my time in service ended in January 2002, a month before a stop-loss was declared on all Reserve Military Intelligence personnel and I narrowly escaped activation in October 2001), I have been known to be emotional (occasionally irrational) on issues relating to the military and military life.

The issues raised in a recent article on the death of a 2LT Emily Perez as did the original May Time 2005 cover story on the "Class of 9/11" I read in a doctor's office are no exception.

I consider both of these "mandatory reading" for this day and age, as a reminder of the sacrifices of others and the trivial nature of most of our daily concerns and fears compared to those serving in Iraq and Afghanistan.

Saturday, September 23, 2006

Pcapper: cool non-C based PCAP

Jeff Dell from Activeworx pointed out that Pcapper is a great cross-platform way to decode captures from tcpdump and friends in response to my question on my work blog.

franz-g4:~/dev/scada-nasl/dnp3 mdfranz$ -v dnp.1

asctime 2006-09-19 11:53:36.711335
caplen 54
destination 00:c0:4f:0c:7b:1d
ether_type 8
pktlen 54
source 00:0c:29:cf:38:82
tv_sec 1158684816
tv_usec 711335
IP datagram:
checksum 0
flags 2
fragment_offset 0
header_length 5
id 18544
protocol 6
tos 0
total_len 40
ttl 128
version 4
TCP datagram:
ack 1
ack_number 3660227963
checksum 54275
data_offset 5
destination_port 20000
fin 0
flags 16
psh 0
rst 0
sequence_number 2451677669
source_port 3016
syn 0
unused 320
urg 0
urgent_pointer 0
window 17469
Dump source has length: 0

Run time 0.903 seconds
Processed 108 packets
Processed 10376 bytes
Processing speed 119 packets per second
Processing speed 11 kbytes per second

End of program

Works on OSX, haven't tried it on anything else. Next is to use the lib in a new protocol reverse engineering tool I started just today.

Stay tuned.

Wednesday, September 13, 2006

OpenRecord: Your next wiki?

I'd run across JavaScript browser based wiki's before (I remember a GTD one in particular), but OpenRecord is incredible.

The current wiki you know and love (for me, it is MoinMoin) is primarily suited for text with a little perhaps a little graphics (but ultimately unstructured content). If MediaWiki (used by Wikipedia) is suited for Encyclopedias, OpenRecord is meant for Almanac-style data such as the CIA World Factbook. OpenRecord targets tabular, statistical, more structured data as well as graphical views of that data (plots, graphs, etc.) that all can be created with a WYSIWYG interface.

Beyond the different use case, these folks are also addressing some of the inherent problems with wikis you bump your heads against: offline view, forking/merging, concurrent editing and much, much more.

Now this is still pre-alpha but of course there is a demo where you can create your own pages, etc. And since I haven't done this project justice, be sure to check out the screencast if you don't have religion.

Monday, September 04, 2006

Fuzzing on Rails

Only 10 minutes in playing around with a new web fuzzer I wrote vs. an unnamed Rails app, I'm getting stack traces. Probably not the end of the world, but not great either. I'm wondering what Rails provides out of the box for validation and how it compares to what other frameworks such as Struts.

undefined method `include?' for nil:NilClass
./script/../config/../vendor/rails/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb:49:in `parse_request_parameters'
./script/../config/../vendor/rails/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb:47:in `each'
./script/../config/../vendor/rails/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb:47:in `parse_request_parameters'
./script/../config/../vendor/rails/actionpack/lib/action_controller/cgi_process.rb:70:in `request_parameters'
./script/../config/../vendor/rails/actionpack/lib/action_controller/request.rb:12:in `parameters'
./script/../config/../vendor/rails/actionpack/lib/action_controller/session_management.rb:122:in `set_session_options_without_components'
./script/../config/../vendor/rails/actionpack/lib/action_controller/components.rb:178:in `set_session_options'
./script/../config/../vendor/rails/actionpack/lib/action_controller/session_management.rb:116:in `process'
./script/../config/../vendor/rails/railties/lib/dispatcher.rb:38:in `dispatch'
./script/../config/../vendor/rails/railties/lib/webrick_server.rb:115:in `handle_dispatch'
./script/../config/../vendor/rails/railties/lib/webrick_server.rb:81:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/1.8/webrick/server.rb:172:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:161:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:161:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
./script/../config/../vendor/rails/railties/lib/webrick_server.rb:67:in `dispatch'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:21:in `require__'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:21:in `require'
./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:136:in `require'
script/server:3:in `require'