Post con curl
Instalamos la extensión “HTTP header live” para ver los posts y headers que pasa.
Vamos a probar simulación con la URL:
http://localhost:8000/mw-config/index.php
Para simularlo, primero vamos a la primera web y guardamos la cookie con el parámetro -c, los headers con -D y la página con -o y así haremos sucesivamente. Accedemos a la web con -L que sigue todas las redirecciones:
curl -A "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" \ -c cookie1 \ -D header1 \ -o page1.html \ -L "http://localhost:8000/mw-config/index.php"
Si abrimos el fichero pageX.html podemos ver si vamos bien.
Para simular el POST, pulsamos continue y nos fijamos en los POST de http headers:
Si hacemos click sobre el texto del post, nos abre otra ventana con los datos solo de este post:
Nos quedamos con los campos:
URL destino: rojo (-L) Referer: rosa (-e) Datos del POST: rojo (-d)
Ponemos el parámetro -b para leer la cookie anterior y volvemos a hacer lo mismo con -c,-D,-o subiendo un número para tener histórico:
POST:
LanguageRequestTime=1590767092&uselang=en&ContLang=en&submit-continue=Continue
Le he quitado la → del post y funciona.
curl -A "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" \ -b cookie1 \ -c cookie2 \ -D header2 \ -o page2.html \ -d "LanguageRequestTime=1590767092&uselang=en&ContLang=en&submit-continue=Continue" \ -e "http://localhost:8000/mw-config/index.php" \ -L "http://localhost:8000/mw-config/index.php?page=Welcome"
Pulsamos otra vez continue: POST:
submit-continue=Continue
curl -A "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" \ -b cookie2 \ -c cookie3 \ -D header3 \ -o page3.html \ -d "submit-continue=Continue" \ -e "http://localhost:8000/mw-config/index.php?page=Welcome" \ -L "http://localhost:8000/mw-config/index.php?page=Welcome"
Rellenamos los datos de la BBDD:
POST:
DBType=mysql&mysql_wgDBserver=app-db&mysql_wgDBname=my_wiki&mysql_wgDBprefix=prueba&mysql__InstallUser=root&mysql__InstallPassword=wiki&sqlite_wgSQLiteDataDir=/var/www/data&sqlite_wgDBname=my_wiki&submit-continue=Continue →
curl -A "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" \ -b cookie3 \ -c cookie4 \ -D header4 \ -o page4.html \ -d "DBType=mysql&mysql_wgDBserver=app-db&mysql_wgDBname=my_wiki&mysql_wgDBprefix=prueba&mysql__InstallUser=root&mysql__InstallPassword=wiki&sqlite_wgSQLiteDataDir=/var/www/data&sqlite_wgDBname=my_wiki&submit-continue=Continue" \ -e "http://localhost:8000/mw-config/index.php?page=DBConnect" \ -L "http://localhost:8000/mw-config/index.php?page=DBConnect"
Si dejamos marcado lo de “Use the same account as for installation” y pulsamos continue:
POST:
mysql__SameAccount=1&mysql_wgDBuser=wikiuser&mysql_wgDBpassword=&submit-continue=Continue
curl -A "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" \ -b cookie4 \ -c cookie5 \ -D header5 \ -o page5.html \ -d "mysql__SameAccount=1&mysql_wgDBuser=wikiuser&mysql_wgDBpassword=&submit-continue=Continue" \ -e "http://localhost:8000/mw-config/index.php?page=DBSettings" \ -L "http://localhost:8000/mw-config/index.php?page=DBSettings"