<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天滲透測試的時候,發現一個介面可以越權遍歷出使用者的敏感資訊,然後想編寫python指令碼將所有資訊都給dump下來。當我檢視請求資料的時候,是如下這樣的。不同於之前的請求資料是json可以直接使用data然後封裝成字典就可以進行傳送請求
這裡的content-type是 multipart/form-data
Multipart/form-data其實就是上傳檔案的一種方式。我對它的翻譯是 “多部分表單資料” ;在生活中其實經常用到,比如說,在寫郵件時,向郵件後新增附件,附件通常使用表單新增,也就是用multipart/form-data格式上傳到伺服器。
http協定本身的原始方法其實並不支援multipart/form-data請求,它是由post方法來組合實現的
multipart/form-data的請求體也是一個字串,不過和post的請求體不同的是它的構造方式,post是簡單的name=value值連線,而multipart/form-data則是新增了分隔符等內容的構造體,格式如下:
------WebKitFormBoundaryA0Srut8TBztAofvx Content-Disposition: form-data; name="grant_type" password ------WebKitFormBoundaryA0Srut8TBztAofvx
其中第一行是自定義的分割符,需要與請求頭中規定的分割符相同。
其實根據前言中的例子,可以很容易看出,這個請求體是多個類似的部分組成的:每一個部分都是以–加分隔符開始的,然後是該部分內容的描述資訊,然後一個回車,然後是描述資訊的具體內容;如果傳送的內容是一個檔案的話,那麼還會包含檔名資訊,以及檔案內容的型別。最後會以–分割符–結尾,表示請求體結束。
如下,我們要模擬post如下的封包,那我們如何傳送post的資料攜帶以下紅色框中的引數了?
1. 重要程式碼如下
data = {"id":(None,'899')} requests.post(xx,files=data)
2. headers中的Content-Type需要註釋掉,傳送請求的時候會被自動加上,否則會報錯
編寫的python requests請求指令碼如下
執行然後使用proxychains抓取流量如下,成功模擬的請求傳送
再次提醒:Content-Type需要註釋掉!很重要!!1
比如請求引數是:
--e0ed233c-3202-47c6-9c96-f9181e308 Content-Disposition: form-data; name="id" Content-Transfer-Encoding: binary Content-Type: application/json; charset=UTF-8 Content-Length: 13 234545878 --e0ed233c-3202-47c6-9c96-f9181e308 Content-Disposition: form-data; name="type" Content-Transfer-Encoding: binary Content-Type: application/json; charset=UTF-8 Content-Length: 1 1 --e0ed233c-3202-47c6-9c96-f9181e308--
也就是說,有2個 key -> id 和 type
fields={ "id": '234545878', "type": '1' }
直接這樣發請求,會失敗。⬆️
encode一下就能發請求了。⬇️
from requests_toolbelt.multipart.encoder import MultipartEncoder multipart_data = MultipartEncoder( fields={ "id": '1653302392217', "read_duration_list": read_duration_list, "now": now, "type": '1' } ) header['Content-Type'] = multipart_data.content_type header['accept'] = 'application/json'
到此這篇關於python使用requests庫提交multipart/form-data請求的文章就介紹到這了,更多相關python提交multipart/form-data請求內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45