链接: https://github.com/dhgdhg/DVWA-Note

  • XSS 类型
    XSS 类型 存储型 反射型 DOM型
    触发过程 1.黑客构造XSS脚本
    2.正常用户访问携带XSS脚本的页面
    正常用户访问携带XSS脚本的URL 正常用户访问携带XSS脚本的URL
    数据存储 数据库 URL URL
    谁来输出 后端WEB应用程序 后端WEB应用程序 前端JavaScript
    输出位置 HTTP响应中 HTTP响应中 动态构造的DOM节点
  • 文件上传绕过
    • 格式
        POST /upload HTTP/1.1
        Host: graph.baidu.com
        Connection: close
        Content-Length: 1218
        Accept: */*
        Origin: https://www.baidu.com
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
        DNT: 1
        Sec-Fetch-Mode: cors
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykU18kbOGE2BFa70e
        Sec-Fetch-Site: same-site
        Referer: https://www.baidu.com/
        Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
        ------WebKitFormBoundarykU18kbOGE2BFa70e
        Content-Disposition: form-data; name="image"; filename="1.jpg"
        Content-Type: image/jpeg
        文件内容
        ------WebKitFormBoundarykU18kbOGE2BFa70e
        Content-Disposition: form-data; name="名字"
        值
        ------WebKitFormBoundarykU18kbOGE2BFa70e
        Content-Disposition: form-data; name="UPLOAD_DIR"
        file/../../
        ------WebKitFormBoundarykU18kbOGE2BFa70e
        Content-Disposition: form-data; name="tn"
        pc
        ------WebKitFormBoundarykU18kbOGE2BFa70e--
    • filename属性: Content-Disposition: form-data; name="image"; filename="1.jpg"; filename="1.php"
      • 有些waf匹配的是第一个filename, 而php解析的是第二个filename
    • 目录穿越
      • 目录可控的情况下:
        • 例: 后端获取UPLOAD_DIR参数
          ```
        • -----WebKitFormBoundarykU18kbOGE2BFa70e
          Content-Disposition: form-data; name="UPLOAD_DIR"
          file/../../
        • -----WebKitFormBoundarykU18kbOGE2BFa70e
          Content-Disposition: form-data; name="UPLOAD_DIR"
          file/.././../
          ```
    • 上传图片重绘绕过