使用POST向网站提交数据

1 投票
3 回答
1273 浏览
提问于 2025-04-17 22:22

我正在处理一个使用简单验证码的网站,想尝试在验证码的输入框中提交数据,然后看看会得到什么回应。最终,我计划尝试进行一种叫做“填充Oracle攻击”的方法。在仔细研究了网站的源代码后,我比较确定我需要关注的表单中的一行是:

<input type="text" name="login_captcha" size="12" maxlength="6" />&nbsp; &nbsp;  </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方法发送的请求。

撰写回答