靶場地址:165.227.106.113/post.php
解題:
一.分析題目
提示:
知道要用POST請求提交表單,看一下源碼信息
得到可能需要用post請求方式去提交表單,并且傳數據admin和password,這邊提供兩種方式
方法一:使用burpsuite
抓包改包
這邊要注意的是不止要該GET為POST還要加入內容:username=admin&password=71urlkufpsdnlkadsf
并且對于POST請求的請求頭:POST 請求通常需要包含Content-Type
頭
POST /post.php HTTP/1.1Host: 165.227.106.113User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflate, brConnection: keep-aliveUpgrade-Insecure-Requests: 1Priority: u=0, iContent-Type: application/x-www-form-urlencodedContent-Length: 42username=admin&password=71urlkufpsdnlkadsf
最后可以得到FLAG
方法二:使用curl
直接打開命令框cmd然后輸入
curl -X POST -d "username=admin&password=71urlkufpsdnlkadsf" http://165.227.106.113/post.php
得到FLAG
總結—對于Content-Type
數據內容類型 | 對應的 Content-Type | 典型場景 |
---|---|---|
表單鍵值對 | application/x-www-form-urlencoded | 登錄表單、簡單數據提交 |
JSON 字符串 | application/json | API 接口、前后端數據交互 |
文件 + 文本混合數據 | multipart/form-data; boundary=xxx | 文件上傳、復雜表單提交 |
純文本 | text/plain | 日志提交、簡單文本傳遞 |
XML 數據 | application/xml 或 text/xml | 傳統系統數據交換 |
核心原則:Content-Type
必須與實際數據格式嚴格匹配,否則服務器會解析失敗(如 JSON 數據用了表單的 Content-Type,會導致參數無法讀取)