繁体   English   中英

如何在python中将POST请求发送到.php页面

[英]How to send a POST request to a .php page in python

上下文:因此,我正在尝试构建一个python程序,该程序会将POST请求发送到特定的.php文件,并返回输出。 我做了一些研究,这是我到目前为止的代码:

def ForcePush():
 params = urllib.urlencode({'log': 'admin', 'pwd':'password'})
 headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain", "Accept-Language":"en-Us,en;q=0.5" ,
 "Referer":"http://192.168.18.138/wp-login.php"}
 conn = httplib.HTTPConnection(raw_input("Where would you like to browse to: "))

 conn.request("POST", "", params, headers)
 response = conn.getresponse()
 data = response.read()
 print data
 conn.close()

该代码对于普通网站(例如www.google.com)正常工作,但是如果我尝试转到php页面,则会出现此错误:

Traceback (most recent call last):
File "WPEnum.py", line 24, in <module>
ForcePush()
File "WPEnum.py", line 18, in ForcePush
conn.request("POST", "", params, headers)
File "C:\Python27\lib\httplib.py", line 1057, in request
self._send_request(method, url, body, headers)
File "C:\Python27\lib\httplib.py", line 1097, in _send_request
self.endheaders(body)
File "C:\Python27\lib\httplib.py", line 1053, in endheaders
self._send_output(message_body)
File "C:\Python27\lib\httplib.py", line 897, in _send_output
self.send(msg)
File "C:\Python27\lib\httplib.py", line 859, in send
self.connect()
File "C:\Python27\lib\httplib.py", line 836, in connect
self.timeout, self.source_address)
File "C:\Python27\lib\socket.py", line 557, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno 11001] getaddrinfo failed

如果您想知道,我正在编写程序来枚举VMWare上的Mr.Robot易损VM的WPAdmin。 这样做是出于教育目的。 这是我要模拟的请求:

POST /wp-login.php HTTP/1.1
Host: 192.168.18.138
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101   Firefox/38.0 Iceweasel/38.8.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://192.168.18.138/wp-login.php
Cookie: s_fid=2692E4153C7D3D30-158A9B35CCC16635; s_nr=1473166726975; s_cc=true; s_sq=%5B%5BB%5D%5D; wordpress_test_cookie=WP+Cookie+check
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 104

log=admin&pwd=login&wp-submit=Log+In&redirect_to=https%3A%2F%2F192.168.18.138%2Fwp-admin%2F&testcookie=1

我知道我没有所有标头,但这似乎不是错误所提示的错误。 有人知道问题出在哪里吗?

从异常中可以看出,您在打开套接字时遇到了与连接有关的错误,因此显然您在请求中使用的主机/端口是错误的,或者由于某种原因无法从python环境(以及显然是系统)访问。

要进行调试,请尝试使用curl或wget(甚至使用GET方法)获取同一页面。 curl http://my_host:my_port/my_page.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM