<?xml version="1.0" encoding="utf-8"?>
        <?xml-stylesheet type="text/css" href="http://blog.kapsobor.de/styles/feed.css"?>
<rss version="2.0"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:admin="http://webns.net/mvcb/"
>
<channel>
<title>kapsobor</title>
<link>http://blog.kapsobor.de</link>
<description>tail -f /dev/crap</description>
<dc:language>en-us</dc:language>
<dc:creator>iso</dc:creator>
<dc:date>2010-01-29T13:22:20+01:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />
<item>
<link>http://blog.kapsobor.de/archives/2009/12/16/hamburgian_local_news/</link>
<title>hamburgian local news</title>
<dc:date>2009-12-16T19:12:04+01:00</dc:date>
<dc:creator>iso</dc:creator>

<description><![CDATA[<p>
just had the idea to share top local news w/ the world,<br />
so here you go.. :<br />
<iframe src="http://www.google.com.kapsobor.de/h4feed.html" width="500" height="230" border="0" style="border:0px;"></iframe>
</p>
<p style="font-size: 8pt;">(if this results in a 403, try reloading the whole page)</p>]]></description>
</item>
<item>
<link>http://blog.kapsobor.de/archives/2009/11/19/snoopy_german_google_users/</link>
<title>snoopy german google users</title>
<dc:date>2009-11-19T23:45:03+01:00</dc:date>
<dc:creator>iso</dc:creator>
<dc:subject>security, nerd stuff</dc:subject>
<description><![CDATA[<p>Just stumbled upon this, german Google users
seem to be highly interested in other peoples secret
documents - google.com search suggestions do not include
these..: ("vertraulich" = confidential, "nur f&uuml;r den internen gebrauch" = for internal use only)
</p>
<img src="/images/google_filetype.png" width="560" alt="google search fail" />
<br />
<p>
By the way, there are 1,030,000 Googlehits for <a href="http://www.google.com/search?q=filetype:pdf+%22for+internal+use+only%22">filetype:pdf "for internal use only"</a> :)
</p>]]></description>
</item>
<item>
<link>http://blog.kapsobor.de/archives/2009/08/11/wordpress_xss_for_&lt2.8.1/</link>
<title>wordpress xss for &lt;=2.8.1</title>
<dc:date>2009-08-11T11:06:53+01:00</dc:date>
<dc:creator>iso</dc:creator>
<dc:subject>php, web2.0, security, code</dc:subject>
<description><![CDATA[<p>
The other day another wordpress exploit went public at <a href="http://milw0rm.com/exploits/9250">milw0rm</a> - it's just an XSS bug, though.<br />The input value in wordpress's comment Url-field turned out to be not escaped too well - they chose to let <code>'</code> go through..<br />
The injection is limited to a maximum length of, I don't remember it right now, about 200 characters I guess, and since wordpress secured the sessioncookie to httponly some versions ago, cookie stealing would be a bit more complicated.<br />
So I chose to create a defacement link via onmouseover for the PoC. As soon as an admin would mouseover the name of the comment-creator, i.e. when moderating the comment, a blogpost is published with the message sent by the attacker thanks to the very convenient &quot;quickpress&quot;-form, hence the name.</p>
<p>
In this very simple exploit you can choose whether to post as 'title' or 'content', also, you could move the $MESSAGE to be sent as <code>comment</code> instead of the author's name, because that is limited in length, too. When using comment as input field you can create very long posts, with some small adjustments you could even post html and javascript to the blog. Of couse, you could execute javascript to do lots of other things with to admin's browser, too. 
<br />
Thankfully, this bug among others is fixed in Wordpress 2.8.2 and above.
</p>]]></description>
</item>
<item>
<link>http://blog.kapsobor.de/archives/2009/04/21/quick_antispam_script/</link>
<title>quick antispam script</title>
<dc:date>2009-04-21T23:10:54+01:00</dc:date>
<dc:creator>iso</dc:creator>
<dc:subject>warez, php, code</dc:subject>
<description><![CDATA[<p>
the concecpt of &quot;<a href="http://officeofstrategicinfluence.com/spam/">this link kills spam</a>&quot; is nice,
but has an obvious disadvantage: any sophisticated spammer will quickly blacklist the site. Inclusion from a publicly
known site will therefore not work for long, which is sad, since the original idea is rather intriguing.<br />
N.b.: any harvester will lookup mx records and quickly find out about the inexistence of these random 
addresses before even trying to send anything. But, still, if there are enough addresses fed this will take 
quite some processing time.
</p>
<p>
You'll need to generate the list on your own to really make it work for realworld harvesters. Here's some
quick public domain php source you could use which produces more or less the same content:
</p>
<p>
<code>
&lt;?php<br />
# very quick antispam by iso from kapsobor<br />
$phrases = array(<br />
"contact us at ", "please write to us via ", "my email address is ",<br />
"contact: ", "mailto:", "email address is", "please write to",<br />
"send mail to", "NOSPAM.", "STOP.SPAM.",<br />
);<br />
for($i=0;$i&lt;rand(30,50);$i++) {<br />
	$email = "";<br />
	for($j=0;$j&lt;10;$j++) { $email .= chr(97+rand(0,25)); }<br />
	$email .= "@";<br />
	for($j=0;$j&lt;14+rand(0,4);$j++) { $email .= chr(97+rand(0,25)); }<br />
	print $phrases[rand(0,sizeof($phrases))]. "$email.com\n";<br />
}<br />
?&gt;<br />
</code>
</p>
<p>
for moar pieces of information consult one of the following
email adresses .. ;)<br />
contact: tituopzeki@kwiqzlbxivcgrwh.com<br />
send mail toberjgiygxj@yhvotpkmsptcaaj.com<br />
xybtpqcjjr@tmvpxijzchhmwdme.com<br />
NOSPAM.guvwasfisp@seokbrprcidodgyoc.com<br />
send mail toidlkpdpeag@cxikdopdmaepsetmq.com<br />
email address iskbgnsvciff@spgkmbwvdkphefic.com<br />
wtlhqykrhg@dhjxqzfbpdyunp.com<br />
STOP.SPAM.jcwqlfzibq@boleimgsiygbmwje.com<br />
contact: zjydxhqkmw@flujsidjintaunu.com<br />
send mail toftdzkmvdse@voqactsnwfdakyf.com<br />
[..]
</p>]]></description>
</item>
<item>
<link>http://blog.kapsobor.de/archives/2009/03/12/tgtpd_-_a_telegraph_transfer_protocol_daemon/</link>
<title>tgtpd - a telegraph transfer protocol daemon</title>
<dc:date>2009-03-12T13:46:38+01:00</dc:date>
<dc:creator>iso</dc:creator>
<dc:subject>mumbo jumbo, crazy, nerd stuff</dc:subject>
<description><![CDATA[<p>Closing a gap that has existed for far too long, I hereby announce the
existence of <b>tgtpd</b>, a telegraph transfer protocol daemon.</p>
<p>You can transfer text and even binary data by using morse-code.</p>
<p>The source code is available at <a href="tgtp://blog.kapsobor.de/tgtpd.pl">tgtp://blog.kapsobor.de/tgtpd.pl</a> - 
in case your lame browser does not support tgtp yet, you might make use of
a small tgtp-client called <i>tget</i> [<a href="/warez/tget">download tget</a>]</p>
<p>You should try f.e. calling 
<code><br />
chmod +x tget<br/>./tget tgtp://blog.kapsobor.de/ > index.html</code><br>and even<br>
<code>./tget tgtp://blog.kapsobor.de/logo.png > logo.png</code> will or should work.</p>
<p>Running your own tgtpd is pretty straight forward:<br />just put tgtpd.pl into any directory, create
a directory called <code>tgtpdocs</code> in there, then run for example<br />
<code>
perl tgtpd.pl >> tgtpd.log 2>&1 &
</code> <br /> - and everything in the <i>tgtpdocs</i>-directory will be accessible via tgtp (port 7070 by the way) - as long
as its filename is all lowercase and has no characters not available in common morse code :). 
</p>

<p>The morse code is only slightly extended to be able to transfer binary data. The
protocol might come in handy in case you can only transfer two different bytes (or, in the current implementation, three..) and 
still want to comfortably serve files.<br />
And, of course, you could always connect it to a real telegraph and use that to serve some html... </p>]]></description>
</item>
<item>
<link>http://blog.kapsobor.de/archives/2009/03/07/find_last.fm_very-far-away-neighbours/</link>
<title>find last.fm very-far-away-neighbours</title>
<dc:date>2009-03-07T20:56:27+01:00</dc:date>
<dc:creator>iso</dc:creator>
<dc:subject>web2.0</dc:subject>
<description><![CDATA[<p>interesting option to waste some time is listening to last.fm-libraries of users
having more or less an opposite taste than yourself. sadly, while last.fm's so called
neighbour finding options are quite great, it lacks a decent search for users who do 
not share your taste at all.</p>
<p>this gap is now closed, just enter your last.fm username below and you should
be able to find several more or less randomly selected users which all have one 
thing in common: they listen to almost completely different music than you do :)</p>
<form action="/lasttaste.php" onSubmit='loadtaste(this.username.value); return false;'><input type="text" name="username"><input type="submit" value="go"></form>
<div id="lasttaste"></div>]]></description>
</item>
<item>
<link>http://blog.kapsobor.de/archives/2009/03/04/twitter_client_in_less_than_140_characters/</link>
<title>twitter client in less than 140 characters</title>
<dc:date>2009-03-04T19:31:12+01:00</dc:date>
<dc:creator>iso</dc:creator>
<dc:subject>web2.0, mumbo jumbo, code, nerd stuff, linux</dc:subject>
<description><![CDATA[<p>
just for fun since I actually registered at <a href="http://twitter.com/iso_/">twitter</a>, and
while I'm at it: here's a quick and highly useful twitter client in way less than 140 characters -
with features such as error detection + explanation, sending over an encrypted connection and storing
your username/password for convenience :)
</p>
<code>
#!/bin/sh<br />
#iso_ 09<br />
U=<br />
P=<br />
T=$@<br />
E= curl -sd"status=$T" -u$U:$P "https://twitter.com/statuses/update.json" |grep -i error<br />
echo "k.$E"<br />
</code>
<p>
just drop it into a file, f.e. 'twit', add your username after U= and your password after P=, <code>chmod +x twit</code>
it and off you go by f.e. by <code>./twit eeeoo world</code>.
</p>]]></description>
</item>
<item>
<link>http://blog.kapsobor.de/archives/2009/02/24/list_secret_irc_channels/</link>
<title>list secret irc channels</title>
<dc:date>2009-02-24T17:28:56+01:00</dc:date>
<dc:creator>iso</dc:creator>
<dc:subject>warez, mumbo jumbo, irc, hpa</dc:subject>
<description><![CDATA[<p>
Sometimes <code>/list</code>-ing channels is a nice way to find irc channels, but the more
interesting ones always have <code>+s</code> mode set - and the ircds don't usually support 
listing so called &quot;secret&quot; channels for non ircops.. :)
</p>
<p>Yet, this naming scheme is quite confusing, since the only thing <code>+s</code> really
changes - at least on ircds run by popular networks such as efnet and ircnet - is not
listing the channel in <code>/who</code> and <code>/list</code> and commands alike.
<br />
Direct requests to the channelname on the other hand will reveal the info inspite of
any <code>+s</code> oder <code>+p</code> modes.
</p>
<p>
Since I thought about publishing one or another irc script from my stash anyway,
here is a small irc bot which will join to a specified channel and list all
secret channels it finds by iterating a given wordlist - which can be quite a lot..
</p>
<p>
<h2>Download</h2>
<a href="/warez/toomanysecrets.pl">toomanysecrets.pl</a> [perl bot for listing +s channels] 
</p>
<p>
<h2>Required</h2>
You'll need to have <code>Net::IRC</code> installed, either via cpan or via package manager,
on debian/ubuntu this is <code>libnet-irc-perl</code>.
</p>
<p>
<h2>Config</h2>
You should edit the skript and set irc server and port as well as a channel in which the bot 
will list all the found channels. You can remove the channel and it will just save the channellist
to disk.<br />
Crawling through huge wordlists, you might want to decrease the request-delay of the bot since 
it's quite high to avoid being klined. 
</p>
<p>
<h2>Usage</h2>
just run <code>perl toomanysecrets.pl</code> and wait for the bot in the designated channel.
</p>
<h2>License</h2>
BSD License - just do not use it for illegal purposes and stuff.
</p>]]></description>
</item>
<item>
<link>http://blog.kapsobor.de/archives/2009/02/12/those_annoying_inconsistencies/</link>
<title>those annoying inconsistencies</title>
<dc:date>2009-02-12T16:41:42+01:00</dc:date>
<dc:creator>iso</dc:creator>
<dc:subject>php, mysql, annoyance</dc:subject>
<description><![CDATA[<p>
Just a very short addition to my <a href="http://blog.kapsobor.de/archives/2008/02/21/mysql_time_datatype_inconsistancies/">unexpected mysql 
timestamp behaviour</a>: Once again I was fooled by the following:
</p>
<p>
<code>
mysql> select datediff(now(), '2009-01-01');<br />
+-------------------------------+<br />
| datediff(now(), '2009-01-01') |<br />
+-------------------------------+<br />
|                            42 | <br />
+-------------------------------+<br />
1 row in set (0.00 sec)<br />
</code>
</p>
which is fine. But on the other hand:
<p>
<code>
mysql> select timestampdiff(day, now(), '2009-01-01');<br />
+-----------------------------------------+<br />
| timestampdiff(day, now(), '2009-01-01') |<br />
+-----------------------------------------+<br />
|                                     -42 | <br />
+-----------------------------------------+<br />
1 row in set (0.00 sec)<br />
</code>
</p>
<p>
This is more or less just as bad as all those inconsistencies <a href="http://blog.kapsobor.de/archives/2006/08/27/php_daily_annoyances/">among php functions</a>
with their always surprising naming and parameter order..
</p>]]></description>
</item>
<item>
<link>http://blog.kapsobor.de/archives/2009/02/12/deactivating_openssl_renegotiation/</link>
<title>deactivating openssl renegotiation</title>
<dc:date>2009-02-12T16:22:09+01:00</dc:date>
<dc:creator>iso</dc:creator>
<dc:subject>nerd stuff, annoyance, linux</dc:subject>
<description><![CDATA[<p>This happened way too often, so I'll write it down as a quick reminder:</p>
<p>Openssl in s_client mode will renegotiate a connection whenever a line starts with the letter <code>R</code>
- which is an especially bad choice when you're using it to connect to an smtp server.</p>

For example:<br />
<code>
~# openssl s_client -host smtp.hushmail.com -port 465<br />
CONNECTED(00000003)<br />
[certificate..]<br />
---<br />
220 smtp.hushmail.com ESMTP Postfix<br />
HELO checko<br />
250 smtp.hushmail.com<br />
MAIL FROM: supergeek@uberfreak.net<br />
250 2.1.0 Ok<br />
RCPT TO: lostgeek@hushmail.com<br />
<b>RENEGOTIATING</b><br />
depth=2 /C=US/O=Entrust.net/OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Secure Server Certification Authority<br />
verify error:num=19:self signed certificate in certificate chain<br />
verify return:0<br />
</code>

<p>So every time you try to enter <code>RCPT</code> the connection will be renegotiated, rendering it useless for sending mail
 - as a sidenote <code>Q</code> should also be avoided..</p>

<p>Since I always look it up, here it is once and for all:
<p><code>
openssl s_client -ign_eof -crlf -host $host -port $port
</code></p>
would be the correct way to go. 
</p>]]></description>
</item>
</channel>
</rss>
