0x0 WHY-为什么要渗透测试

    根据等级保护2.0的标准,如果一个网站需要上线,要经过定级、备案、建设整改、等级评测、监督检查
    因为每次等级评测都不是稳定通过,而等级评测需要花费较高的成本,所以在的等级评测之前,公司需要进行渗透测试来检查自己网站的安全性与脆弱性,根据渗透测试的结果来进一步的整改

0x1 WHAT-什么是渗透测试

    渗透测试是指使用指:模拟黑客的手段和技术,对目标进行模拟攻击,检测并且发现目标系统的脆弱性和安全隐患,最后对用户系统的安全程度做出报告

0x2 HOW-渗透测试流程

    根据PTES
    1.前期交互
    2.情报收集
    3.威胁建模
    4.漏洞分析
    5.渗透攻击
    6.后渗透攻击
    7.报告

0x3 拿到一个网站如何进行渗透

  1. 第一步进行信息收集
    • 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)
    • 网站指纹识别(包括,cms,cdn,证书等),dns记录
    • whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)
    • 子域名收集,旁站,C段等
    • google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等
    • 扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等
    • 传输协议,通用漏洞,exp,github源码等
  2. 漏洞挖掘
    • 浏览网站,看看网站规模,功能,特点等
    • 端口,弱口令,目录等扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。
    • XSS,SQL注入,上传,命令注入,CSRF,cookie安全检测,敏感信息,通信数据传输,暴力破解,任意文件上传,越权访问,未授权访问,目录遍历,文件 包含,重放攻击(短信轰炸),服务器漏洞检测,最后使用漏扫工具等

0x4 SQL注入

  • 原理:提交参数(调用数据库查询)的地方是用户可控的,并未做任何过滤处理
  • 分类
    • 联合注入:union
    • 报错注入:updatexml();floor();extractvalue()
    • 盲注:有些网站没有输出点,且关闭了错误回显;length();substr();ascii()
    • 宽字节注入:使用GBK编码来使单引号可以逃逸,遇到了连续两个字节都符合gbk取值范围
  • 内敛注释/!**/
  • 不同行数
    • substring / sub / mid
    • ascii / hex / bin
  • 符号替换
    • and / &
    • or /
  • 编码绕过
    • 大小写
    • url编码
    • html编码
    • 十六进制编码
    • unicode编码

0x5 XSS和CSRF的区别

  • CSRF是跨站请求伪造攻击,由客户端发起,因为服务器过分相信客户端,可以直接修改用户信息
  • XSS是跨站脚本,反射型XSS可以配合CSRF进行攻击,形成XSRF,盗取用户cooike,获取用户登录信息
  • SSRF:指的是攻击者在未能取得服务器所有权限时,利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网 SSRF

0x6 XXE

  • XML外部实体注入
  • 构造恶意的XML内容,导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等后果,需要回显 XXE

0x7 反序列化

0x8 Redis未授权访问

  • Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器