文件上传造成XSS的方法解析(upload2xss)

UPLOAD TO XSS

能上传非法扩展文件 (或Apache服务器能上传名为.的文件):

  • 解析: 浏览器对静态文件解析的规则如下 (即解析优先级 响应Content-Type > 文件内容)
    先根据响应中的Content-Type字段中的MIME值进行解析; 若响应无Content-Type,
    则根据文件内容进行判断(对于二进制文件, 检测文件头; 对于html文件, 检测标签)
  • 如何访问静态文件 但响应无Content-Type:
    1. 对于大部分服务器(Apache Nginx等), 上传非法扩展的文件不会发送Content-Type
    2. 对于Apache, 若文件名为., 即上传..合法扩展名文件, 响应无Content-Type
  • 前提: 可以上传非法扩展文件, 或Apache服务器能上传名为.的文件
    这些情况可能使响应 无Content-Type字段(当然若为text/html是可以的)
  • 利用: 当满足前提时, 浏览器会检测文件内容来判断如何解析文件, 可上传内容为<html>html内容</html>的文件, 此时浏览器就会将其作为html进行解析
  • : 通过文件内容判断时, 文件内容中 html标签外如果有内容就不能当作html进行解析, 所以当文件上传检测文件头时便无法利用

能上传非法扩展文件(特殊情况:Edge<=18/IE任意版本):

很难利用, 这些现在很少有人用了

  • 原理: Edge<=18 / IE任意版本 检测文件如何解析的优先级为 文件后缀 > 文件内容 > 响应Content-Type, 所以可绕过 Content-Type (所以前提有变化)
  • 前提: 可以上传非法扩展文件, 响应可有Content-Type
  • 利用: 当满足前提时, 浏览器会检测文件内容来判断如何解析文件, 可上传内容为<html>html内容</html>的文件, 此时浏览器就会将其作为html进行解析
  • 特性: 文件内容中 html标签外可有内容
  • 复现: 旧版本的edge与ie很难下到了, 可以开启edge的ie模式进行尝试

其它

  • 能上传html、htm文件: 直接插入xss攻击语句
  • 能上传SVG、XML文件: 上传SVG, 内容为
    <svg xmlns="http://www.w3.org/2000/svg" onload="alert(1);"/>
    <svg xmlns="http://www.w3.org/2000/svg"><script>alert(2)</script></svg>
    <hack:script xmlns:hack="http://www.w3.org/2000/svg">alert(1);</hack:script>
    链接可换为: http://www.w3.org/1999/xhtml
  • 能上传PDF文件: 使用工具直接插入xss攻击语句
    工具: https://www.xunjiepdf.com/editor
    : 浏览器解析PDF是在沙箱环境中, 所以无法通过 PDFxss 获取cookie/造成csrf
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇