CTF-WEB文件上传,SQL注入,XXS漏洞知识学习笔记

CTF-WEB

文件上传

1. 前端校验

  • 校验方法:JavaScript判断后缀,类型等
  • 绕过:Burpsuite抓包,禁用js

2. Content-Type校验

  • 检测image/gif $ _ FILES[‘userfile’] [‘type’] != “image/gif”
  • http头可以随意修改,不可信
  • 绕过:Burpsuite抓包

3. 黑名单 过滤绕过

  • 可能过滤不全
    • .php3 .php5 .phtml
    • .htaccess
  • 大小写绕过
  • 简单替换 str_ireplace(denyext,,deny_ext,'',file_name);
  • windows特性
    • 空格 和 点 在文件末尾会被忽略
    • ::$DATA 忽略

4. 特殊文件

  • .htaccess全称是Hypertext Access(超文本入口),控制目录文件行为
  • 配置
    • AllowOverride All
    • LoadModule rewrite_module /user/lib/apache2/modules/mod_rewrite.so
  • 功能:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定地址IP的用户、禁止目录列表
  • 利用:
    • 上传.htaccess 让给定目录下所有文件被视为php解析
      SetHandler appllcation/x-httpd-php
    • 将所有xxx结尾的文件视为php解析
      AddType appllcation/x-httpd-php xxx

5. 漏洞解析

  • Apache
    • 陌生后缀解析:从后往前解析,碰到陌生后缀跳过,直到碰到认识的后缀
      • apache 1.x,2.x :1.php.xxx ----> 先解析xxx 之后php…
    • 换行解析(CVE-2017-15715):将换行符作为后缀解析
      • apache 2.4.0-2.4.29:1.php%0A
    • nginx:cgi方式支持php解析,正则判断
      • 条件:cgi.fix_pathinfo=1:phpinfo.jpg /1.php

6. %00(url编码) 和 0x00 (16进制)截断

  • 场景:$img_path = $ _ GET[‘save_path’]."/".rand(10,99).date(“YmdHls”).’’.’’.$file_ext;
  • 利用
    • GET传参:save_path = …/upload/info.php%00
    • POST传参:save_path = …/upload/info.php\x00

SQL注入

1. 典型攻击手段:

  • 判断应用程序是否存在注入漏洞
  • 收集信息、并判断数据库类型
  • 根据注入参数类型,重构SQL语句原貌
  • 猜表名、字段名
  • 获取账户信息、攻击WEB或为下一步攻击做准备

2. 出题人套路:

  • 屏蔽关键词
    • 加无意义符号:空格,回车,tab键
    • 编码
    • 替换关键词
    • 拼接
    • 大小写混写、双写
    • 内联注释
  • 隐藏注入点
    • 增加页面数
    • 使逻辑结构复杂化
    • 伪装不是注入点
    • 改变注入参数(http头文件)
  • 加密
    • 加密后在进入数据库 ffifdyop
  • 手注 + 盲注
    • sqlmap等工具等绕狗脚本
  • 代码审计和综合考察
    • 扫描目录
      • robots.txt
      • tar、zip、bak、rar等
    • 代码审计:
      • 通读代码(结构、功能、关键信息)
      • 细审上传、数据存取、命令执行等页面
      • 追踪函数
    • 寻找疑似漏洞功能

XSS漏洞

1. 反射型

  • 一般不会进入服务器
  • 特点:非持久性型,参数跨站脚本
  • 作用:调用用户cookie或者进行钓鱼

2. dom型

  • 新型的xss漏洞,基于js,可以归属于反射型xss

3. 存储型

  • 进入服务器
  • 特点:持久型、更具有危害性
  • 作用:渗透、挂马、蠕虫病毒、钓鱼
坚持原创技术分享,您的支持将鼓励我继续创作!