渗透自学(一)基础知识

第一天基础:

         域名收集的目的:多个突破口

         CDN:会使你无法获得真实的ip地址,仅为分发网络的子系统,非源系统,攻击CDN所传达的ip地址无效

         常见DNS攻击:DNS劫持、DNS缓存投毒:解析恶意地址

         脚本语言类型:javaweb(适合中大网站)、.php(适合小网站)、.asp、aspx、.jsp、.pl、.py、.cgi(国外常用)

         后门:webshell,文件上传、更改免杀(白名单)

         app封装网站

         WEB组成架构模型:

  1. 网站源码:分脚本类型,分应用方向
  2. 操作系统:windows,linux
  3. 中间件(搭建平台):apache iis tomcat Nginx等
  4. 数据库:access mysql mssqlserver oracle Sybase db2 postsql

         Web源码类漏洞:

  1. sql注入
  2. 上传文件
  3. xss
  4. 代码执行
  5. 变量覆盖
  6. 逻辑漏洞
  7. 反序列化

         域名枚举

第二天基础:

         Cookie:cookie是在浏览器中积存的小型数据体,可用于记载和服务器相关的用户信息,,也可以实现会话功能(登陆存活)。浏览器用该属性向服务器发送cookie。

         Referer:表明产生请求的网页URL。可用于追踪web请求的网站来源。也可以伪造来源页。例子:从网页/icconcept/index.jsp中点击一个链接到网页/icwork/search,在向服务器发送的GET/icwork/search中的请求,Referer则为http://hostname:8080/icconcept/index.jsp

         POST和GET的区别:

                   POST的数据存在于请求体中,即数据包的最下面

                   GET的数据存在于开始

HTTP响应码:

                   1xx:信息,请求收到,继续处理

                   2xx:成功,行为被成功接收或理解

                   3xx:重定向,为完成请求,重定向采取的行为

                   4xx:客户端错误(本地)

                   5xx:服务器错误

墨者在线靶场

第三天基础

         目录扫描:可能情况,扫描ip地址,则扫描文件根目录;扫描域名,则扫描的可能是根目录其中一个文件夹;若服务器配置了域名和路径的对应关系,则结果将有所不同

                            可用于扫描出备份源码

         目录/文件操作权限:可将某特定目录的匿名用户(来宾用户(IUSR_IIS6CN))的操作权限中“写入”权限拒绝,防止被放入后门程序,但不能所有目录都设置这样的权限,因为通常还有其他必须的脚本文件是要被系统所执行

         Mysql+php  sqlserver+asp/aspx 

第四天基础

         数据库配置文件:包含数据库连接信息,例如数据库的账号密码等

         脚本类型源码不同,安全问题不同

         网站类型不同对应不同的代码机制也对应不同的安全问题:社交、论坛、电商、博客等

         源码获取路径:源码之家、菜鸟源码、咸鱼、第三方,可能涉及黑灰产

         总结:关注应用分类及脚本类型猜出可能存在的漏洞(框架漏洞可能是必定存在的),在获取源码后在本地进行安全测试或代码审计,也可以分析其目录工作原理(数据库备份、bak文件等),尽量获取源码

        

         .mdb文件,只有asp有

         cms(内容管理系统)指纹识别:powerb by xx,随后搜索xx的漏洞。

手工识别:经验判断,从F12 network中,找到不同寻常的特别的文件或路径例如zblogphp.js、index/login/login/token/等并在搜索引擎上搜索,从而确定cms

工具识别:扫描cms特有文件判断

在线识别:云悉

                   攻击例子(1电商 抓包更改订单提交数量、或支付金额

                   顺序:第一步:检查框架漏洞;第二步,检查相应cms漏洞;第三步,检查开源(找漏洞或者代码审计)或内部(常规渗透测试),第四步,获取源码(获取备份、识别cms,如果是特定源码‘黑灰产’,则想办法获取)

                  

第五天基础(系统数据库)

         系统层

                  系统类型判断:windows路径大小写不敏感,linux路径大小写敏感

         (不准确)TTL小于125可能是windowNT2000 TTL小于63可能是linux或者win7、win10

                            NMAP –O 探测系统类型

                  漏洞:获取权限问题、远程控制类

         数据库层

                   静态网页没有漏洞、动态网页有数据传输有漏洞

                   根据不同脚本类型可以找到常见的数据库+脚本语言组合,常见如下

                            ASP+access  aspx+mssql php+mysql jsp+mssql,oracle python+sqlite

                            注意:access和mssql是windows专用

                   端口扫描方式确定数据库类型:mysql3306 oracle1521 sqlserver1433 mongDB27017 redis6379 memcahed11211

                  常见攻击手段:弱口令、权限

         第三方层

                   涉及系统控制,如远程控制teamview、vsftpd漏洞、根据第三方软件版本的漏洞

         补充:根据服务器提供的服务不同,也可以作为安全测试目标,要多层面攻击

        

第六天基础(加密算法)

         HASH不可逆:

MD5(有十六进制类型):

         加密:不可逆加密

         解密:枚举法

         加‘salt’:解密格式:【密文】:salt

         写法积累:md5(md5($pwd).$salt)(md5加密后加盐再进行md5加密)

                   SHA(十六进制组合):

                            1 :         40位

                            256 :     64位

                            384:       96位

                            512:      128位

         可逆:

                   非对称加密算法:

公钥告知对方,对方用公钥加密信息后,发送给我,只有我可以用自己的私钥来解密,其他不行,除非协商公钥私钥的数据包被截获。

常见有RSA、Elgamal

                   对称加密算法:

                            DES(‘+’)(56位密钥+8位奇偶校验):第8*n位(1<=n<=8)

3DES(‘+’)(两个不同的56位密钥):加密两次    

                   AES(‘/’)(高级加密标准):

加密方式越多越强,例如:填充、数据块(位数越高越安全)、密码(额外干扰)、偏移量(从x位开始加密),当对密码进行解密得到乱码时,怀疑是AES加密。

                            解密时,密码和偏移量较为重要,填充与数据块可自由有限组合

         时间戳:从1970.1.1开始到现在的时间之差。用于验证信息可信

         URL编码:

URL只能使用英文字母、阿拉伯数字和某些标点符号,当其他符号出现时会被%+【数字】替换,一个中文由GB2312编码后得到如%B4%BA的结果,绕过可能会用

‘【空格】’=  %20  ‘1’=     %31

‘春节’=       %B4%BA%BD%DA

                   二次转码:1=%31=%25%33%31

         BASE64编码(区分大小写)(‘=’、‘==’):

                   通常是原文的四分之三倍长度,可能用于对源代码进行安全加密

         Unescape:特征为‘%u’开头,并且一次转换2个字符,单数时%u0000,双数时正常

         总结:了解加密算法的特性,例如长度、字符规律、代码分析、搜索引擎查找相似等,

常见加密算法解析:带‘salt’、密码、偏移量、位数、模式、干扰参数、自定义组合等、-wp(wordpress)加密形式、-dz(dicuz)加密形式

常见解密方式:枚举、自定义逆向算法、可逆

        

第七天基础

         信息收集-CDN绕过

                   绕过CDN子系统缓存的地址,与目标地址不同

                   若用多个ip去ping一个域名时,返回都是同一个ip地址,则认为不存在CDN

                   管理员为节省成本,可能仅把用户常访问的主要站点加入cdn,而鲜受访网站则仍留在本地(真实ip地址)

                   CDN对安全测试的影响:无法获得真实地址

                   常见CDN绕过技术:

  1. 子域名查询:

管理员为节省成本,可能仅把用户常访问的主要站点加入cdn,而鲜受访网站则仍留在本地(真实ip地址)

m.xxx.com

引擎:asm.ca..com/en/ping.php

黑暗引擎

子域名采集:

  1. 搜索子域名查询
  2. 网站如果有发送邮件的功能,例如邮件接收验证码方式等,查看邮件源码可获得可能的真实ip地址,结合国外地址查询方式加强确认(仍不一定确认)

          

  1. 邮件服务查询:

因只有内部使用,不需要cdn,所以大概率是真实ip地址

  1. 国外地址请求:  搜索:get-site-ip.com x.threalbook.cn

用国外代理服务器访问,可能可以获得真实ip地址

  1. 遗留文件:

可能涉及配置信息的文件没删除

  1. 扫描全网:超级ping筛选

Fuckcdn w8fuckcdn(弱) zmap(过时)

  1. 黑暗引擎搜索特定文件:

引擎:shodan(更强)、钟馗之眼、fofa

特定文件:哈希md5、.ico文件等

  1. dns历史记录:肉鸡

大量数据访问,使CDN子系统流量耗尽,此时将会寻找真实地址

                   若访问xxx.com时跳转了www.xxx.com,则没有cdn

你可能感兴趣的:(web安全)