360杯-Web实战

1 目录

  1. Web系统的组成部分
  2. 如何判断是哪一块出了问题
  3. CTF-Web题目解题思路之–语言
  4. CTF-Web题目解题思路之–数据库
  5. CTF-Web题目解题思路之–Web服务器软件
  6. CTF-Web题目解题思路之–操作系统

2 Web系统的组成部分

2.1 LAMP系统

LAMP含义:一个Web系统的组成部分就只有四个方面:操作系统、Web服务软件(Apache、Nginx)、数据库、Web语言

Web题目不仅仅是一个题目,更是一个Web系统,解题的目的就是为了能够渗透这个Web系统,获取信息或者权限

3 如何判断是哪一块出了问题

Web系统的主要目的是为了生活服务,具有特定的功能,所以一般可以分为以下几个步骤去检测这个Web系统到底出了什么问题

  1. 探明清楚Web系统的语言、框架,首先能满足其正常功能;
  2. 查看有没有数据库功能,存在数据库一般都会有数据库的考点;
  3. 接着扫描目录,查看有没有源码或者其他提示性文件;
  4. 寻找输入点(包括输入框、文件上传点、XSS点等),根据语言特性,进行payload测试,挖掘语言上的漏洞;
  5. 最后再考虑是否是操作系统或者Web服务器上的漏洞,这块基本都会涉及到webpwn方面的知识。

4 CTF-Web题目解题思路之–语言

4.1 前端语言

  1. HTML和CSS一般不会单独作为考点,但是依然要掌握快速读懂它们的技巧
  2. JavaScript考点:目前前端考点都集中在这块
    信息获取:JS加解密、XSS攻击、CSP防御机制绕过、CSRF等;
    权限获取:NodeJS代码审计、前端VUE、跨域。
  3. 关于每个方向的解题方法
    JS加解密解题主要靠积累,利用常用在线加解密网站即可;
    XSS攻击主要思路为寻找题目中BOT访问外界的点,然后查看有无CSP防御,并且根据题意构造合适的payload。

关于每个方向的主要解题方法

  1. NodeJS审计需要一定的代码审计功底,题目纷繁复杂,出题点也各异,但是目前主要的形式都是做成游戏然后给出源码对其进行审计
  2. 解题思路:源码审计,寻找可利用的eval()函数,构造语句使得eval()函数可控,远程安装npm包实现命令执行。

4.2 后端语言

  1. Python
  2. Java
  3. PHP

4.2.1 Python主要考点

  1. ssti服务端模板注入
  2. yml反序列化,PyYAML在解析数据的时候遇到特定格式的时间数据会将其自动转化为Python时间对象(类似于PHP反序列化)
  3. JWT认证绕过(伪造token,伪造session)
  4. secret key泄露导致命令执行(一般是Django代码执行)
  5. Django、flask、tornado等框架的漏洞

4.2.2 Java主要考点

  1. spring框架漏洞,近年较火
  2. Java反序列化
  3. 代码审计

4.2.3 PHP主要考点

  1. Bypass:最常用考点,主要源于PHP语言本身书写时的一个漏洞,典型案例PHP黑魔法
  2. 条件竞争:多个客户端同时访问一个服务器的功能所带来的非预期结果
  3. 反序列化:只要题目给了源码大概率是反序列化漏洞,解题思路为寻找起点和终点(魔法函数起点(unserialize等)->新的php对象->pop链->目的函数终点(eval)
  4. 文件包含:大部分考点在于本地文件包含(LFI),在实战中可拿到shell
  5. SSRF:服务端请求伪造,可以结合很多协议其他协议进行利用,达到攻击内网的目的
  6. phar利用:经常和LFI结合,同时也经常结合反序列化等考点
  7. 文件上传绕过
  8. 框架考点:了解著名的框架,例如thinkphp、laravel、各种cms

5 CTF-Web题目解题思路之–数据库

  1. sql注入
  2. 权限获取

6 CTF-Web题目解题思路之–Web服务器软件

6.1 Web服务器题目种类

  1. Linux上的服务器:Apache、Nginx服务器
    考点:服务器解析漏洞(常与文件上传结合),LD_PRELOAD(可使得在执行php程序时优先引用自己写到的动态链接库),Nginx配置漏洞(目录泄露),Apache栈溢出漏洞(涉及webpwn)等
  2. Windows上的服务器:IIS
    考点:PUT发包上传漏洞,IIS远程溢出漏洞等
  3. 服务器组件漏洞
    考点:Apache组件提权漏洞,CGI漏洞(公共网关接口,配合Nginx解析漏洞)

7 CTF-Web题目解题思路之–操作系统

7.1 操作系统中考点不多,一般结合webpwn

  1. 操作系统中的目录遍历
  2. .so文件逆向分析
  3. 结合tensorflow进行机器学习考察
  4. 区块链考点
  5. 结合密码学:CBC翻转攻击,哈希扩展攻击,padding oracel填充攻击

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 xingshuaikun@163.com。

×

喜欢就点赞,疼爱就打赏