Vous n'êtes pas identifié(e).
Encore un petit mumuse avec python de ma part
Et si on utilisait python sous bash à la manière d'un sed, d'un grep ou d'un awk
testé sous kali 1.1.0
Pour récupérer le résultat dans du pipe avec python ca peut se faire très facilement avec un raw_input()
Quelques exemples bêtes:
warlocg@linux:~$ echo "hello le monde" | python -c 'print(raw_input())'
hello le monde
Un autre exemple qui va un peu plus loin
warlocg@linux:~$ echo "hello le monde" | python -c 'try:print(raw_input())^Mexcept:print("bad command")'
hello le monde
warlocg@linux:~$ blabla | python -c 'try:print(raw_input())^Mexcept:print("bad command")'
bash: blabla : commande introuvable
bad command
La même chose sans l'erreur de bash dérangeante
warlocg@linux:~$ blabla 2> /dev/null | python -c 'try:print(raw_input())^Mexcept(EOFError):print("bad command")'
bad command
Et avec logging:
warlocg@linux:~$ blabla 2> /dev/null | python -c 'import logging^Mtry:print(raw_input())^Mexcept(EOFError):logging.basicConfig(format="%(asctime)s [%(levelname)s] > %(message)s")^Mlogging.warning("bad command")'
2015-05-12 01:09:15,090 [WARNING] > bad command
PS: Le ^M est un caractère <Enter> fait en console depuis <Ctrl+V> suivi de <Enter>
Bon hack de bash via python
Hors ligne
Oulah tout ça à taper dans un shell ça fait beaucoup , ta pas par hasard ?
Dernière modification par Yzeew (12-05-2015 14:13:06)
>> Good things come to those who, Wait.. <<
>> sip:yzeew@ekiga.net << and >> #Pouni3 <<
Hors ligne
Non non je n'ai pas fumé ^^ Depuis que le message est traité par python qui est un langage complet avec ses modules, un peu à la manière de perl ou ruby (dont ce n'est pas la section ici) les possibilités sont nombreuses voir infinies.
Imagine plutot l'utilité dans un challenge ou tu dois traiter une chaine, par exemple:
warlocg@linux:~$ echo "57 61 72 4c 6f 63 47 20 77 61 73 20 68 65 72 65" | python -c 'a,b=raw_input().split(" "),""^Mfor i in a:^M b+="%c" % int(i.rstrip(" "),16)^Mprint (b)'
WarLocG was here
ou par exemple:
warlocg@linux:~$ echo "5761724c6f6347207761732068657265" | python -c 'a,b,i=raw_input(),"",0^Mwhile i<len(a):^M b+="%c" % int(a[i:i+2],16);i+=2;^Mprint(b)'
WarLocG was here
ou dans l'autre sens pourquoi pas. Tout de suite ca devient plus intéressant
Maintenant j'utilise un bète echo dans cet exemple mais tu pourrais utiliser curl ou wget pour choper le message sur un site de challenge où tu dois valider le message dans un temps imparti
Hors ligne
je n'aurais qu'une seule chose à dire.... +1
Mess With The Bests
Die Like The Rest
Hors ligne
Sinon petite parenthèse, ceci fonctionne aussi... mais ce n'est plus du pipe
warlocg@linux:~$ a="blabla";python -c "print('$a')"
blabla
on peut récupérer les "variables en bash" pour les utiliser dans le python -c Par contre ca ne fonctionnera qu'avec la commande encapsulé entre guillemets, autrement vous aurez ca
warlocg@linux:~$ a="blabla";python -c 'print("$a")'
$a
Hors ligne
Non non je n'ai pas fumé ^^ Depuis que le message est traité par python qui est un langage complet avec ses modules, un peu à la manière de perl ou ruby (dont ce n'est pas la section ici) les possibilités sont nombreuses voir infinies.
Imagine plutot l'utilité dans un challenge ou tu dois traiter une chaine, par exemple:
warlocg@linux:~$ echo "57 61 72 4c 6f 63 47 20 77 61 73 20 68 65 72 65" | python -c 'a,b=raw_input().split(" "),""^Mfor i in a:^M b+="%c" % int(i.rstrip(" "),16)^Mprint (b)' WarLocG was here
ou par exemple:
warlocg@linux:~$ echo "5761724c6f6347207761732068657265" | python -c 'a,b,i=raw_input(),"",0^Mwhile i<len(a):^M b+="%c" % int(a[i:i+2],16);i+=2;^Mprint(b)' WarLocG was here
ou dans l'autre sens pourquoi pas. Tout de suite ca devient plus intéressant
Maintenant j'utilise un bète echo dans cet exemple mais tu pourrais utiliser curl ou wget pour choper le message sur un site de challenge où tu dois valider le message dans un temps imparti
Génial, j'ai toujours tendence à faire tout en bash perso
echo "5761724c6f6347207761732068657265" | xxd -r -p
Mais dans un script python c'est génial
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne