J'ai résolu quelques exampels WebGoat pour une chose uni-lab. Dans l'un des exercices, j'ai essayé d'utiliser un script python avec urllib2 pour faire des "tests" automatisés, donc je n'ai pas besoin d'utiliser manuellement ascii (substr (prénom, 3,1))> 97 etcAccès par script aux URL WebGoat?
Mais je semble obtenir la même page que j'essaie différentes eventhough urls lors de l'utilisation d'un script urllib2 est tout le premier de base aka f2, f3 et f4.html la page et non la même page que si vous y accédez dans un navigateur:
import urllib2
import urllib
import cookielib
import sys
myjar = cookielib.FileCookieJar("cookies.txt");
cookieHandler = urllib2.HTTPCookieProcessor(myjar)
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
tlurl="http://localhost:8081/webgoat/attack"
password_mgr.add_password(None,tlurl,user="guest",passwd="guest")
authhandler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(cookieHandler, authhandler)
data = [('Connection','keep-alive'),('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; da; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7')]
def write_f_to_f(fname,f):
f1 = open(fname,"w")
f1.write(f.read())
f1.close()
def gen_req(url,referer=None):
req = urllib2.Request(url)
print "url: %s"%url
mydata = data
if referer != None:
mydata.append(('Referer',referer))
[ req.add_header(k,v) for k,v in mydata ]
return req
sys.stdout.flush()
url = "http://localhost:8081/webgoat/attack"
req = gen_req(url)
f = opener.open(req)
write_f_to_f("f1.html",f)
f.close()
params = urllib.urlencode({'start':'Start WebGoat'})
qs = urllib.urlencode({'Screen':107, 'menu':1200 })
url = "http://localhost:8081/webgoat/attack"
req = gen_req(url,url)
f = opener.open(req, params)
write_f_to_f("f2.html",f)
f.close()
ourl = url
url = "http://localhost:8081/webgoat/attack?%s"%qs
req = gen_req(url,ourl)
f = opener.open(req)
write_f_to_f("f3.html",f)
f.close()
ourl = url
url = "http://localhost:8081/webgoat/attack?%s"%qs
req = gen_req(url,ourl)
f = opener.open(req)
write_f_to_f("f4.html",f)
f.close()
NB : J'ai fait la réponse à la tâche "à la dure" et l'a remis. Maintenant, je suis juste curieux de savoir quel mécanisme empêche le script urllib d'accéder au contenu
Je tri ed accéder à mon tomcat local avec WebGoat et dit console WebGoat:
Sat Feb 13 12:31:14 CET 2010 | 127.0.0.1:127.0.0.1 | org.owasp.webgoat.session.ErrorScreen | [Screen=107,menu=1200]
errorscreen createContent Error:null message:Invalid screen requested. Try: http://localhost/WebGoat/attack
- WebGoat: Sat Feb 13 12:31:14 CET 2010 | 127.0.0.1:127.0.0.1 | org.owasp.webgoat.session.ErrorScreen | [Screen=107,menu=1200]
Sat Feb 13 12:31:14 CET 2010 | 127.0.0.1:127.0.0.1 | org.owasp.webgoat.session.ErrorScreen | [Screen=107,menu=1200]
Il me n'aide pas vraiment à ce que je peux dire.
Pouvez-vous fournir un peu plus de détails? quel est le résultat attendu? – jathanism
Lorsque j'utilise un navigateur normal, j'obtiens le contenu de "Screen = 1600" mais lorsque j'utilise le script python, j'obtiens le contenu de/webgoat/attack sans aucune chaîne de requête. – svrist