Python请求post正文
我正在尝试使用管理员脚本将sql查询发送到我的wordpress数据库,但问题是我缺少一些需要作为正文或标题发送的内容。如果我错了,请与我联系 请求生的 标题未加工 我还使用Burp套件截获了请求,以进一步澄清 请求生的 请求参数 请求头 我的实际代码Python请求post正文,python,request,python-requests,Python,Request,Python Requests,我正在尝试使用管理员脚本将sql查询发送到我的wordpress数据库,但问题是我缺少一些需要作为正文或标题发送的内容。如果我错了,请与我联系 请求生的 标题未加工 我还使用Burp套件截获了请求,以进一步澄清 请求生的 请求参数 请求头 我的实际代码 ses = requests.Session() data = {"server": "localhost", "username": wpuser,
ses = requests.Session()
data = {"server": "localhost",
"username": wpuser,
"db": wpdb,
"sql": "SELECT * from wplj_users"}
url="https://mywebsite/REV/adminer-4.7.5-en.php?server=localhost&username=adepfran_wp975&db=adepfran_wp975&sql=SELECT%20*%20from%20wplj_users"
request = ses.post(url,data=data )
没有限制、查询、令牌内容处置的请求没有返回想要的响应,我如何传递它们?您似乎必须将其作为文件发送= 对于我使用的测试,它将返回您在请求中获得的所有内容,以便我可以显示它并与预期数据进行比较 在我使用“无”的文件中,从wplj_用户中选择*以便此“无”将删除filename=query 结果
=== url ===
https://httpbin.org/post?server=localhost&username=adepfran_wp975&db=adepfran_wp975&sql=SELECT+%2A+from+wplj_users
=== headers ===
User-Agent: Mozilla/5.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Content-Length: 331
Content-Type: multipart/form-data; boundary=79f18e4306b943ea92a49bae21b51b9c
=== body ===
--79f18e4306b943ea92a49bae21b51b9c
Content-Disposition: form-data; name="query"
SELECT * from wplj_users
--79f18e4306b943ea92a49bae21b51b9c
Content-Disposition: form-data; name="limit"
--79f18e4306b943ea92a49bae21b51b9c
Content-Disposition: form-data; name="token"
401937:659783
--79f18e4306b943ea92a49bae21b51b9c--
你们不能直接连接到数据库并使用MySQL模块发送查询吗?若你们想使用请求,那个么可能首先发送GET到主页以获取新的cookie和新的会话ID,会话会自动将其添加到POST中。如果你通常必须登录到adminer,那么你的代码也必须登录到adminer。看起来你可能必须以文件的形式发送,而不是以数据的形式发送。这是我代码的一部分。我已经在adminer中连接并测试了会话cookie。我要发送的主要问题是--WebKitFormBoundaryxYBGQZZPmZQXH内容配置:表单数据;name=query select*from wplj_termmeta--webkitformboundaryxybgqzzbgpmzqxh内容处置:表单数据;name=limit---webkitformboundaryxybgqzzbgpmzqxh内容处置:表单数据;name=token 792550:799199---webkitformboundaryxybgqzzbgpmzqxh您必须将其作为请求发送。post…,files={sql:select*from wplj_termmeta,…}
ses = requests.Session()
data = {"server": "localhost",
"username": wpuser,
"db": wpdb,
"sql": "SELECT * from wplj_users"}
url="https://mywebsite/REV/adminer-4.7.5-en.php?server=localhost&username=adepfran_wp975&db=adepfran_wp975&sql=SELECT%20*%20from%20wplj_users"
request = ses.post(url,data=data )
import requests
params = {
'server': 'localhost',
'username': 'adepfran_wp975',
'db': 'adepfran_wp975',
'sql': 'SELECT * from wplj_users',
}
data = {
"query": (None, "SELECT * from wplj_users"),
"limit": (None, ""),
"token": (None, "401937:659783"),
}
headers = {
'User-Agent': 'Mozilla/5.0',
#'Referer': 'https://mywebsite/REV/adminer-4.7.5-en.php?server=localhost&username=adepfran_wp975&db=adepfran_wp975&sql='
# requests.Session() should care of cookies so this header shouldn't be needed
#'Cookie': 'adminer_sid=00e0c898e031284904f8e51b591c1dee; adminer_key=320bc6e9870ffdf2f54982cb2292de87'
}
url = "https://httpbin.org/post"
#url = "https://mywebsite/REV/adminer-4.7.5-en.php"
s = requests.Session()
#r = s.get(url) # to get fresh cookies
r = s.post(url, params=params, headers=headers, files=data)
print('\n=== url ===\n')
print(r.request.url)
print('\n=== headers ===\n')
for key, val in r.request.headers.items():
print('{}: {}'.format(key, val))
print('\n=== body ===\n')
print(r.request.body.decode())
=== url ===
https://httpbin.org/post?server=localhost&username=adepfran_wp975&db=adepfran_wp975&sql=SELECT+%2A+from+wplj_users
=== headers ===
User-Agent: Mozilla/5.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Content-Length: 331
Content-Type: multipart/form-data; boundary=79f18e4306b943ea92a49bae21b51b9c
=== body ===
--79f18e4306b943ea92a49bae21b51b9c
Content-Disposition: form-data; name="query"
SELECT * from wplj_users
--79f18e4306b943ea92a49bae21b51b9c
Content-Disposition: form-data; name="limit"
--79f18e4306b943ea92a49bae21b51b9c
Content-Disposition: form-data; name="token"
401937:659783
--79f18e4306b943ea92a49bae21b51b9c--