分类: 网络与安全
2014-01-02 22:18:24
Content-Type: multipart/form-data; boundary=---------------------------7da2ced220a6a
而在提交的内容中,使用HTTP头中指定的分隔符,也就是前面的---------------------------7da2ced220a6a来进行分割,比如:
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="ctl00$ContentPlaceHolder1$texName"
testName
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="__EVENTTARGET"
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="__EVENTARGUMENT"
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="__LASTFOCUS"
-----------------------------7da2ced220a6a
Content-Disposition: form-data; name="__VIEWSTATE"
/wEPDwULLTE2ODIxMDQ5OTEPZBYCZg9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YRYGZg9kFgJmDxYCHgdWaXNpYmxlaGQCAQ9kFg5mDxYCHgRocmVmBTMvVXNlck1hbmFnZS9Vc2VyQ29uc3VtZV9NeVVzZXJNYW5hZ2VMaXN0LmFzcHg/Z3A9LTFkAgEPFgIfAgUkL1VzZXJNYW5hZ2UvVXNlckV4Y2hhbmdlX0NvdXBvbi5hc3B4ZAICDxYCHwIFFS9Vc2VyVG9vbHMvSW5kZXguYXNweGQCAw8WAh8CBR8vVXNlck1hbmFnZS9Qcm9kdWN0c19JbmRleC5hc3B4ZAIEDxYCHwIFFS9FU2FsZXMvU2VsbENhcmQuYXNweGQCBQ8WAh8CBRovU2VydmljZS9NYXN0Z**bmxpbmUuYXNweGQCBg8WAh8CBRIvTmV0QmFyL0luZGV4LmFzcHhkAgIPZBYGAgcPZBYCZg9kFgQCAQ8PFgIeBFRleHQFEjM2MDQyNTE5OTUwMzIzMTAzMGRkAgMPDxYCHwMFGTxmb250IGNvbG9yPSdyZWQnPjwvZm9udD5kZAIPD2QWAmYPZBYEAgMPD2QWAh4Hb25jbGljawXTAWlmICh0eXBlb2YoUGFnZV9DbGllbnRWYWxpZGF0ZSkgPT0gJ2Z1bmN0aW9uJykgeyBpZiAoUGFnZV9DbGllbnRWYWxpZGF0ZSgpID09IGZhbHNlKSB7IHJldHVybiBmYWxzZTsgfX07dGhpcy52YWx1ZSA9ICflj5HpgIHkuK0uLi4nO3RoaXMuZGlzYWJsZWQgPSB0cnVlO19fZG9Qb3N0QmFjaygnY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRidG5fVmFsaWRhdGUnLCcnKTtkAgcPFgIfAwVn6aqM6K+B56CB5bey5Y+R6YCB5Yiw5omL5py677yM5aaC5p6cMeWIhumSn+WGheaCqOayoeacieaUtuWIsOmqjOivgeegge+8jOivt+eCueWHu+aMiemSrumHjeaWsOmihuWPluOAgmQCEw8PFgIeB0VuYWJsZWRoZGRk
-----------------------------7da2ced220a6a--
但是我们仔细看就会有意思了,首先在提交数据中的分隔符很容易被搞错。我们在提交数据中看到的“-----------------------------7da2ced220a6a”比HTTP头中指定的“---------------------------7da2ced220a6a”实际上要多出两个“-”。提交数据中的最后一个分隔符变成了“-----------------------------7da2ced220a6a--”。原来提交数据实际上的格式是这样的:
假设HTTP头中我们指定的分割付是,那么提交数据的格式是:
/r/n--/r/n<数据>/r/n--/r/n<数据>/r/n--/r/n<数据>……/r/n--—/r/n
这里的<数据>就表示提交的表单数据,比如前面的:
Content-Disposition: form-data; name="ctl00$ContentPlaceHolder1$texName"
testName
因此在写模拟提交程序的时候一定不要忘了,HTTP头中指定的分隔符,比你在提交数据中看到的分隔符应该是要少一个“--”的。否则提交数据就不会被正常获取。
2、multipart/form-data主要由三部分组成: