第一天基础:
域名收集的目的:多个突破口
CDN:会使你无法获得真实的ip地址,仅为分发网络的子系统,非源系统,攻击CDN所传达的ip地址无效
常见DNS攻击:DNS劫持、DNS缓存投毒:解析恶意地址
脚本语言类型:javaweb(适合中大网站)、.php(适合小网站)、.asp、aspx、.jsp、.pl、.py、.cgi(国外常用)
后门:webshell,文件上传、更改免杀(白名单)
app封装网站
WEB组成架构模型:
Web源码类漏洞:
域名枚举
第二天基础:
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绕过技术:
管理员为节省成本,可能仅把用户常访问的主要站点加入cdn,而鲜受访网站则仍留在本地(真实ip地址)
m.xxx.com
引擎:asm.ca..com/en/ping.php
黑暗引擎
子域名采集:
因只有内部使用,不需要cdn,所以大概率是真实ip地址
用国外代理服务器访问,可能可以获得真实ip地址
可能涉及配置信息的文件没删除
Fuckcdn w8fuckcdn(弱) zmap(过时)
引擎:shodan(更强)、钟馗之眼、fofa
特定文件:哈希md5、.ico文件等
大量数据访问,使CDN子系统流量耗尽,此时将会寻找真实地址
若访问xxx.com时跳转了www.xxx.com,则没有cdn