Firefox – Créer, Recréer, Modifier des cookies via une injection SQLite

Même si Bernard ne fait que manger des cookies on peut en avoir besoin dans certains cas:

  • créer ou recréer un cookie
  • modifier un cookie, exemple augmenter la durée de vie du cookie !

Voici une procédure permettant de créer un cookie.

  1. Télécharger et installer l’extension firefox SQLite Manager
  2. Localiser votre base sqlite cookies.sqlite
    /home/ben/.mozilla/firefox/g2grtmws.default/cookies.sqlite
  3. Ouvrir SQLite Manager en précisant le « path » ci-dessus
  4. Exécuter la commande SQL suivante:
    INSERT INTO moz_cookies (name,value,host, path, expiry, isSecure, isHttpOnly, lastAccessed) VALUES ("miam_key",
    "sdsdkdJFHEO48787",
    "hostname.com",
    "/",
    "1219237273",
    "0",
    "0",
    "1216818073366141");
  5. Fermer et relancer firefox

Le cookie miam_key est crée pour le site hostname.com avec la valeur sdsdkdJFHEO48787

Voici un (rapide) script bash qui permet d’automatiser la création de cookie:

create_cookie.sh

#!/bin/bash
url="http://hostname.com"
sqlite_file="/home/ben/.mozilla/firefox/g2grtmws.default/cookies.sqlite"
name="" # a definir
value="" # a definir
host="" # a definir
expiry="1219237273"

expiry="2219236910" # cookie valable jusqu'en 2040
last="1216818073366141"
echo 'INSERT INTO moz_cookies (name,value,host, path, expiry, isSecure, isHttpOnly, lastAccessed) VALUES ("${name}","${value}","${host}","/","${expiry}","0","0","${last}");  |  sqlite3 ${sqlite_file}
#fermeture et redemarage de firefox
killall firefox
firefox-3.0 ${url} &

Une fois les variables définies chmod u+x create_cookie.sh et lancer le script ./create_cookie.sh

App

Bash – Variables spéciales, Tests, Subsitutions et Autres

Special Shell Variables
Variable Meaning
$0 Filename of script
$1 Positional parameter #1
$2 - $9 Positional parameters #2 – #9
${10} Positional parameter #10
$# Number of positional parameters
"$*" All the positional parameters (as a single word) *
"$@" All the positional parameters (as separate strings)
${#*} Number of command line parameters passed to script
${#@} Number of command line parameters passed to script
$? Return value
$$ Process ID (PID) of script
$- Flags passed to script (using set)
$_ Last argument of previous command
$! Process ID (PID) of last job run in background

* Must be quoted, otherwise it defaults to « $@« .

TEST Operators: Binary Comparison
Operator Meaning —– Operator Meaning
Arithmetic Comparison String Comparison
-eq Equal to = Equal to
== Equal to
-ne Not equal to != Not equal to
-lt Less than \< Less than (ASCII) *
-le Less than or equal to
-gt Greater than \> Greater than (ASCII) *
-ge Greater than or equal to
-z String is empty
-n String is not empty
Arithmetic Comparison within double parentheses (( … ))
> Greater than
>= Greater than or equal to
< Less than
<= Less than or equal to

* If within a double-bracket [[ ... ]] test construct, then no escape \ is needed.

TEST Operators: Files
Operator Tests Whether —– Operator Tests Whether
-e File exists -s File is not zero size
-f File is a regular file
-d File is a directory -r File has read permission
-h File is a symbolic link -w File has write permission
-L File is a symbolic link -x File has execute permission
-b File is a block device
-c File is a character device -g sgid flag set
-p File is a pipe -u suid flag set
-S File is a socket -k « sticky bit » set
-t File is associated with a terminal
-N File modified since it was last read F1 -nt F2 File F1 is newer than F2 *
-O You own the file F1 -ot F2 File F1 is older than F2 *
-G Group id of file same as yours F1 -ef F2 Files F1 and F2 are hard links to the same file *
! NOT (inverts sense of above tests)

* Binary operator (requires two operands).

Parameter Substitution and Expansion
Expression Meaning
${var} Value of var, same as $var
${var-DEFAULT} If var not set, evaluate expression as $DEFAULT *
${var:-DEFAULT} If var not set or is empty, evaluate expression as $DEFAULT *
${var=DEFAULT} If var not set, evaluate expression as $DEFAULT *
${var:=DEFAULT} If var not set, evaluate expression as $DEFAULT *
${var+OTHER} If var set, evaluate expression as $OTHER, otherwise as null string
${var:+OTHER} If var set, evaluate expression as $OTHER, otherwise as null string
${var?ERR_MSG} If var not set, print $ERR_MSG *
${var:?ERR_MSG} If var not set, print $ERR_MSG *
${!varprefix*} Matches all previously declared variables beginning with varprefix
${!varprefix@} Matches all previously declared variables beginning with varprefix

* Of course if var is set, evaluate the expression as $var.

String Operations
Expression Meaning
${#string} Length of $string
${string:position} Extract substring from $string at $position
${string:position:length} Extract $length characters substring from $string at $position
${string#substring} Strip shortest match of $substring from front of $string
${string##substring} Strip longest match of $substring from front of $string
${string%substring} Strip shortest match of $substring from back of $string
${string%%substring} Strip longest match of $substring from back of $string
${string/substring/replacement} Replace first match of $substring with $replacement
${string//substring/replacement} Replace all matches of $substring with $replacement
${string/#substring/replacement} If $substring matches front end of $string, substitute $replacement for $substring
${string/%substring/replacement} If $substring matches back end of $string, substitute $replacement for $substring
expr match "$string" '$substring' Length of matching $substring* at beginning of $string
expr "$string" : '$substring' Length of matching $substring* at beginning of $string
expr index "$string" $substring Numerical position in $string of first character in $substring that matches
expr substr $string $position $length Extract $length characters from $string starting at $position
expr match "$string" '\($substring\)' Extract $substring* at beginning of $string
expr "$string" : '\($substring\)' Extract $substring* at beginning of $string
expr match "$string" '.*\($substring\)' Extract $substring* at end of $string
expr "$string" : '.*\($substring\)' Extract $substring* at end of $string

* Where $substring is a Regular Expression.

Miscellaneous Constructs

Expression Interpretation
Brackets
if [ CONDITION ] Test construct
if [[ CONDITION ]] Extended test construct
Array[1]=element1 Array initialization
[a-z] Range of characters within a Regular Expression
Curly Brackets
${variable} Parameter substitution
${!variable} Indirect variable reference
{ command1; command2; . . . commandN; } Block of code
{string1,string2,string3,...} Brace expansion
{a..z} Extended brace expansion
{} Text replacement, after find and xargs
Parentheses
( command1; command2 ) Command group executed within a subshell
Array=(element1 element2 element3) Array initialization
result=$(COMMAND) Command substitution, new style
>(COMMAND) Process substitution
<(COMMAND) Process substitution
Double Parentheses
(( var = 78 )) Integer arithmetic
var=$(( 20 + 5 )) Integer arithmetic, with variable assignment
(( var++ )) C-style variable increment
(( var-- )) C-style variable decrement
(( var0 = var1<98?9:21 )) C-style trinary operation
Quoting
"$variable" « Weak » quoting
'string' ‘Strong’ quoting
Back Quotes
result=`COMMAND` Command substitution, classic style

Source

Bash – Split d’une chaine de caractères avec cut

data="bijoux;cailloux;choux;genoux;hiboux;joujoux;poux"

echo $(echo $data | cut -d";" -f1);
bijoux

echo $(echo $data | cut -d";" -f2);
cailloux

MySQL – Outil de modélisation

DBDesigner

Pour une archi AMD 64bits sous Debian :
dbdesigner-fork, tar -zxfv du *.bin-i386-linux.tar.gz,
puis cd bin && ./startdbd_usingAMD64

App

Note2be : le retour !

Apres 3 mois d’absence note2be est de retour dans sa version 2.0

Le site a été totalement modifié. Désormais pour noter un professeur ou voir ses notes, il faut être inscrit dans l’établissement concerné comme élève, parent ou professeur.  La recherche par professeur n’est plus possible.

L’ensemble des données collectées précédemment a été effacé.
Mais la liberté d’expression des élèves et le droit à l’information des parents sont préservés:

Vous pouvez à nouveau noter les professeurs et consulter leur note !

Web

Les assises du Net – Le prochain Google peut-il être français ?

Lien de la vidéo sur techcrunch.

Après visionnage: Peut on créer un Google à la Française?
La réponse est globalement non.

Quelques remarques:

  • marché FR (trop) petit
  • investissements proportionnels au marché visé
  • prise de risque en france moindre par rapport au marché US.
    NB: beaucoup de casse aux US, 1% des startups deviennent des Google, Ebay.
  • les chefs d’entreprise / fonds d’investissements préfèrent vendre plutôt que grossir.

Erreurs (à éviter) des pôles de compétitivité:

  • répondre à un besoin plutôt que de vouloir développer une technologie (et voir aprés ce qu’on en fait)
  • absence d’une vision marché
  • trop de pôles orientés R&D Technologies face à des pôles Commerce/Business

Règle d’or:
Le service doit être gratuit.

Conclusion

« Dans le désert il ne pousse pas de baobabs »
Laurent Kott, Directeur général de l’INRIA

« Une jeune pousse doit viser dès le départ un marché international »
Eric Besson, Secrétaire d’État à la prospective et à l’évaluation des politiques publiques et du développement de l’économie numérique

Web

Synthèse Vocale – France Telecom

Juste un lien vers la Synthèse vocale de FT.

Avez-vous des problèmes sous linux, de Session (expirée) par exemple ?

Web

Optimisation Webdesing – CSS Sprites

L’idée principale du sprite est de regrouper plusieurs images en une.

Grâce au CSS (background-position: Xpx Ypx) il est possible de définir une portion de l’image.

En savoir plus

Web

Backtrack bootable sur clef usb

Formater la clef
cfdisk /dev/sda

Télécharger la backtrack version usb (948Mo)
wget ftp://backtrack.mirrors.skynet.be/pub/backtrack/bt3b141207.rar

Copier le contenu sur la clef

Monter la clef (en root)

mkdir /mnt/usbkey && mount -t vfat /dev/sda1 /mnt/usbkey

Récupérer toutes les archives de dilbert

Depuis la nouvelle version en flash de dilbert.com il était difficile de récupérer chaque jour une image.

getdilbert
#!/bin/bash
IMG_PATH='~/img/dilbert/full/'
SUFFIXE='_dilbert.gif'
DATE=${*}
if [ -f ${IMG_PATH}${DATE}${SUFFIXE} ]
then
echo "l'image existe deja"
else
echo "recuperation de l'image dilbert"
myid=`wget -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7" -O- "http://www.dilbert.com/fast/${DATE}/" | grep -i " wget -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7" -q "http://dilbert.com/${myid}" -O ${IMG_PATH}${DATE}${SUFFIXE}
fi
exit

getfull_dilbert
#!/bin/bash
for i in $(seq 2001 2008)
do
for j in $(seq 01 12)
do
for k in $(seq 01 31)
do
./getdilbert ${i}-${j}-${k}
done
done
done

Créer les répertoires images:

mkdir -p ~/img/dilbert/full/

Récupérer les images de janvier 2001 à décembre 2008:

./getfull_dilbert

CVS – Rollback de version d’un fichier dans CVS

Suite à une nouvelle version, il est malheureusement possible de voir apparaître des regressions sur votre application favorite.

Nous allons voir ici comment faire un rollback de version sur un fichier géré par CVS.

1. D’abord, update de la dernière révision dans votre « working copy ».
$ cvs update test.pl
P test.pl

2. A la recherche de la dernière version stable .
$ cvs log test.pl
RCS file: /cvsroot/perl/test.pl,v
revision 1.45
date: 2008/04/06 15:14:32; author: cjovet; state: Exp; lines: +10
revision 1.44
date: 2008/04/04 18:21:53; author: cjovet; state: Exp; lines: +37
-20

3. Merge des changement entre les versions 1.45 et 1.44 (i.e. backwards),
dans notre répertoire de travail …
$ cvs update -j1.45 -j1.44 test.pl
retrieving revision 1.45
retrieving revision 1.44
Merging differences between 1.45 and 1.44 into test.pl

4. Vérification du numéro de la version courante (1.44)
$ cvs diff -r1.44 test.pl
Pas de sortie = pas de difference

5. Pour avoir la différence avec la HEAD :
$ cvs diff -rHEAD test.pl

6. Enfin, commit du « working copy » courant qui rend effectif le rollback.
$ cvs commit -m \"reverting back to state in revision 1.44 to undo some bugs\" test.pl
Checking in test.pl;
/cvsroot/perl/test.pl,v test.pl
new revision: 1.46; previous revision: 1.45
done.

App

Recent Tweets

Catégories