初步认知
什么是信息搜集?答:信息搜集分为主动信息搜集和被动信息搜集
    
主动信息搜集是与标主机进行点接交互,从币拿到我们的目标信息,而被动信息搜集恰恰与主动信息搜集相反,不与目标主机进行直按交互,通过搜索引擎或者社交等方式间接的获取目标主机的信息。当我们拿到一个标进行渗透测试的时候,我们关注目标主机的whois信息,子域名,目标IP,旁站C段查询,邮箱搜集,CMS类型,敏感目录,端口信息,服务器与中问件信息,其他(防火墙)
分类解析
Whois信息()
- 有的域名会有隐私保护
 
- whios信息可以获取关键注册人的信息,包括注册公司、注册邮箱、管理员箱、管理员联系手机等对后期社工很有用。同时该工具还可以查询同一注册人注册的具他的域名,域名对应的NS记录、MX录,自动识别国内常见的托管商(万网、新网等)。常用的工貝有: chinaz kali下的wns命令。
 
- 备案号查询:
http://www.beianbeian.com 
子域名
    1.搜索引擎
2.子域名挖掘机 Layer
3.https://phpinfo.me/domain/(phpinfo包含)
4.subDomainsBrute
5.穷举爆破
目标IP
- -  没加CDN的网站只需要: ping ww.chabug.org就行了
 
- - 加了CDN:
 
 
- 绕过CDN:
 
https://www.cnblogs.com/qiudabai/p/9763739.html 
 https://www.cnblogs.com/xiaozi/p/12963549.html 
 https://blog.csdn.net/aq_36119192/article/details/89151336
 
旁站C段
    旁站是和目标网站在同一合服务器上的其它的网站,如果从目标站本身找不到好的入手点,这时如果想快速拿下目标的话。一般都会先找个目标站点所在服务器上其他的比较好搞的站下手,然后再想办法跨到真正目标的站点目录中。C段是和目标机器IP处在同一个C段的其它机器通过目标C段的其他任一台机器,想办法跨到我们的目标机上。
邮箱
    首先确定目标的邮件服务器所在的真实位置,看看邮件服务器自身有没有什么错误配置。比如:有没有禁用VREY或者EXPN命令导致用户信息泄。然后从whois中获取域名的注册人、管理员邮箱,利用搜索引擎或者社工库查看有木有泄露的密码,然后尝试泄露的密码进行登录,最后从目标站点上搜集邮箱。倒如网站上的联系我们,我们发发邮件钓鱼什么的。
     theharester
CMS类型
 
敏感文件
    .git  .svn  .DB  .store源代码泄露
    扫描  御剑  dirbrute
端口信息
    扫描全端口一股使用Nmap,masscan进行扫描探测
    自写脚本https://www.chabug.org/tools/510.html
    不同端口对应服务
服务器与中问件信息
    操作系统
        可以通过大小写的敏感性来判断操作系统
        不同的操作系统的默认TTL值(TTL(Time To Live,生存时间)是IP协议包中的一个值,当我们使用Ping命令进行网络连通测试或者是测试网速的时候,本地计算机会向目的主机发送数据包,但是有的数据包会因为一些特殊的原因不能正常传送到目的主机,如果没有设置TTL值的话,数据包会一直在网络上面传送,浪费网络资源。)是不同的, 所以我们可以通过TTL值来判断主机的操作系统,但是当用户修改了TTL值的时候,就会误导我们的判断,所以这种判断方式也不一定准确。下面是默认操作系统的TTL:
            1、WINDOWS NT/2000   TTL:128
            2、WINDOWS 95/98     TTL:32
            3、UNIX              TTL:255
            4、LINUX             TTL:64
            5、WIN7          TTL:64
            数据包在传送的时候至少会经过一个以上的路由器,当数据包经过一个路由器的时候,TTL就会自动减1,如果减到7了还是没有传送到目的主机,那么这个数据包就会自动丢失,这时路由器会发送一个ICMP报文给最初的发送者。从而判断经过的路由数。
### 服务端
 JAVA平台
 - EJB:是一个相对重要一些的软件,它将一个特殊业务功能的逻辑组合到应用程序中
 
- POJO:(简单传统Java对象)
 
- Java Servlet
 
- Java Web容器
 
- 身份验证-JAAS、ACEGI
 
- 表示层-SiteMesh、Tapestry
 
- 数据库对象映射-Hibernate
 
- 日志-log4j2
-  
客户端功能
- JavaScript
 
- 文档对象模型(DOM):可以通过其API查询和操纵的HTML文档的抽象表示形式
 
- JSON(对象表示法)
 
- 同源策略
 
- 模糊数据:有时候,通过客户端传送的数据被加密或进行了某种形式的迷糊处理,变得晦涩难懂
 
- HTML表单长度限制
 
- 绕过JS
 
### web
   
 核心防御机制
- 身份验证
 
- cookie:expires用于设定cookie的有效时间;domain用于指定cookie的有效领域;Httponly如果存在,则将仅仅在HTTPS请求中提交cookie
 
- 会话管理
 
- 证书
 
###  访问控制
    HTTP方法:GET方法/POST方法
  **状态码**
      ```
  1xx-提供信息;
            2xx-请求被成功提交;
            3xx-客户端被重定向到其他资源(302暂时重定向、301永久重定向)
            4xx-请求包含某种错误(400提交了一个无效1请求,eg:在URL中插擦入了一个空格符、401与403不管是否通过验证,禁止任何人访问、404请求资源不存在)
            5xx-服务器执行请求时遭遇到错误
### 编码方案      
1.URL编码
2.Unicode编码
3. HTML编码
4.Base64编码
5.十六进制编码
### 其他(防火墙)
    Waf防火墙: https://github.com/Ekultek/WhatWaf
    历史漏洞信息:https://bugs.shuimugan.com/
    源代码:个别网站他的图片上传到了后台目录下,在引用的时候就可能会暴露自己的后台
    BurpSuite: Spider爬虫模块    Scanner扫描模块(主动式)Target模块(被动式)
    **扫描器** 
1.  御剑 Wwwscan W9scan  awvs... 
2.  坏处:主动式日志文件庞大,对主机影响较大
    ### 其他方式
    
- 解决 DEDECMS历史难题--找后合目录
-      https://xz.aliyun.com/t/2064
-      Google搜
-         在 robots中如果没有禁止搜索引擎录后台的话、可以用这种法
-          ondraw.chabug.org intitle后台管理登录 sltewww.chabug.org intext登录
-         更多语法https://zhuanlan.zhihu.com/p/22161675
###  Robots.txt
         robots. txt(统一小写)是一种存放于网站根目录下的ASC编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站的哪些搜索内容是不因被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以 Robots. txta的文件名应统一为小写 obots.t应放置于网站的根目录下
SSL查询:https://censys.io/
## 攻击流程:
客户端确认-服务器没有采用确认检查
    数据库交互-SQL注入
    文件上传与下载-路径历遍漏洞,存储型XSS
    显示用户提交的数据-CSRF
    动态重定向-重定向,消息头注入攻击
    社交网络功能-用户名枚举,XSS
    登录-用户名枚举,暴力破解,弱口令
    多阶段登录-登录缺陷
    会话状态-可推测出令牌,令牌处理不安全
    访问控制-水平,垂直提权
    用户伪装功能-提权
    使用明文通讯-会话劫持,收集证书与其他敏感信息
    外部链接-Referer消息头中查询字符串参数泄露
    外部系统接口-处理会话与/或访问控制的快捷方式
    错误消息-信息泄露
    电子邮件交互-电子邮件注入,命令注入
    本地代码组件或交互-缓冲期溢出
    使用第三方应用程序组件-已知漏洞
    以确定WEB服务器软件-常见的配置薄弱环节,已知软件程序缺陷