使用POST向网站提交数据
我正在处理一个使用简单验证码的网站,想尝试在验证码的输入框中提交数据,然后看看会得到什么回应。最终,我计划尝试进行一种叫做“填充Oracle攻击”的方法。在仔细研究了网站的源代码后,我比较确定我需要关注的表单中的一行是:
<input type="text" name="login_captcha" size="12" maxlength="6" /> </p>
所以我在StackOverflow上查了一些资料,想学习怎么做,到目前为止我做了:
Send = "The data I want to submit"
url = 'www.website.com'
values = {'login_captcha' : Send}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
但是似乎不太管用。我看到的所有资料都说这样做是对的,但结果似乎没有任何反应。这里面有什么不对劲的地方吗?
3 个回答
0
你说的“没用”是什么意思呢?这个在我的 Python 2.7
里根本就不能运行。
url = 'www.website.com'
所以在你的网址前面加上 http://
,这样就应该能正常工作了。
url = 'http://www.website.com'
0
首先,你想要提交一个表单,所以要确认你的网址是正确的。
在这个问题中,看起来提供的是一个域名的网址,而不是表单的具体网址(也就是 action 参数)。
其次,网站可能会发现你的代码不是在浏览器中运行的,但你可以通过一些方法来“欺骗”它,比如设置用户代理、来源网址,或者有时候使用 cookies。
第三,自己用一些工具,比如 curl,来调试一下。
上面的代码是正确的,但记得要注意编码问题(网址和数据的编码)。
0
我试着只改了网址和参数,想用一个正在运行的系统来测试,结果没有任何问题,运行得很好。你应该确认一下网址是否正确,因为这只是一个域名。另外,还要检查一下你服务器上的脚本是否能读取和响应通过POST方法发送的请求。