一概念名称
1.域名
定义:www.baidu.com为域名
注册地址:域名在万网进行注册
二级域名:www只是一个主机名,www是顶级域名。一级域名是由一个合法的字符串+域名后缀组成,如baidu.com为一级域名。二级域名,就是在一级域名前加前缀,至于加什么,你可以自己定,比如加数字,加字幕。如123.baidu.com
2.DNS
定义:域名系统是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。域名解析成IP地址。
端口号:DNS使用UDP端口53。
域名长度:对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
HOST与DNS关系: HOST文件可以重定向域名解析。
网站在解析IP地址时,ping 域名 命令时会先到HOST文件中域名对应的IP地址,如果有则以HOST文件中的为准,如果没有则DNS解析(可以绑定IP地址,被用于钓鱼攻击)
CDN定义: CDN是内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输得更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
CDN与DNS的关系: CDN关注的是地区,DNS关注的是域名
常见的DNS安全攻击: DNS劫持,缓存投毒,DDoS攻击,反射式DNS放大攻击
3.脚本语言
常见的脚本语言有asp php aspx jsp javaweb pl py cgi
4.后门
定义: 软件后门指绕过软件的安全性控制,从比较隐秘的通道取得对程式或系统存取权的黑客方法。在软件开发时,设置后门可以方便修改和测试程式中的缺陷。webshell为网站后门
意义: 在软件开发时,设置后门可以方便修改和测试程式中的缺陷。在获取到相关权限的时候,后门类似于管道,可以进入操作获得权限
免杀: 可以防止后门被杀毒软件监测到
5.WEB
web的组成架构模型:
网站源码:分脚本类型,应用方向
操作系统:windows linux
中间件(搭建平台):apache iis tomcat nginx
数据库:access mysql mssql oracle sybase db2 postsql等
web源码类的漏洞: SQL注入,文件上传漏洞,xss,代码执行,变量覆盖,逻辑漏洞,反序列化漏洞等
web中间件对应漏洞: 未授权访问,变量覆盖
web数据库对应漏洞: 弱口令,权限提升
其他第三方对应漏洞: 提权,远程代码执行
APP或PC应用结合类: 逆向破解
二 数据包扩展
1https&http
HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。
HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的。
HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。
2Request 请求数据包数据格式
请求行
请求行由三个标记组成:请求方法、请求 URL 和 HTTP 版本,它们用空格分享。
例如:GET /index.html HTTP/1.1
HTTP 规划定义了 8 种可能的请求方法:
GET:检索 URL 中标识资源的一个简单请求
HEAD:与 GET 方法相同,服务器只返回状态行和头标,并不返回请求文档
POST:服务器接受被写入客户端输出流中的数据的请求
PUT:服务器保存请求数据作为指定 URL 新内容的请求
DELETE:服务器删除 URL 中命令的资源的请求
OPTIONS:关于服务器支持的请求方法信息的请求
TRACE:web 服务器反馈 Http 请求和其头标的请求
CONNECT :已文档化,但当前未实现的一个方法,预留做隧道处理
请求头
由关键字/值对组成,每行一对,关键字和值用冒号分享。请求头标通知服务器腾于客户端的功能和标识。
HOST: 主机或域名地址
Accept:指浏览器或其他客户可以接爱的 MIME 文件格式。Servlet 可以根据它判断并返回适当的文件格
式。
User-Agent:是客户浏览器名称
Host:对应网址 URL 中的 Web 名称和端口号。
Accept-Langeuage:指出浏览器可以接受的语言种类,如 en 或 en-us,指英语。
connection:用来告诉服务器是否可以维持固定的 HTTP 连接。http 是无连接的,HTTP/1.1 使用 Keep-Alive
为默认值,这样,当浏览器需要多个文件时(比如一个 HTML 文件和相关的图形文件),不需要每次都建立
连接
Cookie:浏览器用这个属性向服务器发送 Cookie。Cookie 是在浏览器中寄存的小型数据体,它可以记载
和服务器相关的用户信息,也可以用来实现会话功能。
Referer : 表 明 产 生 请 求 的 网 页 URL 。 如 比 从 网 页 /icconcept/index.jsp 中 点 击 一 个 链 接 到 网 页
/icwork/search , 在 向 服 务 器 发 送 的 GET/icwork/search 中 的 请 求 中 , Referer 是
http://hostname:8080/icconcept/index.jsp。这个属性可以用来跟踪 Web 请求是从什么网站来的。
Content-Type:用来表名 request 的内容类型。可以用 HttpServletRequest 的 getContentType()方法取得。
Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是 ISO-8859-1.
Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加
速文件传递速度。浏览器在接收到 Web 响应之后先解码,然后再检查文件格式。
空行
最后一个请求头标之后是空行,发送回车符和退行,通知服务器以下不再有头标。
请求数据
使用 POST 传送,最常使用的是 Content-Type 和 Content-Length 头标。
3Response 返回数据包数据格式
Response 请求数据包数据格式
一个响应由四个部分组成;状态行、响应头标、空行、响应数据。
1.状态行:协议版本、数字形式的状态代码和状态描述,个元素之间以空格分隔
2.响应头标:包含服务器类型、日期、长度、内容类型等
3.空行:响应头与响应体之间用空行隔开
4.响应数据:浏览器会将实体内容中的数据取出来,生成相应的页面
HTTP 响应码
1xx:信息,请求收到,继续处理
2xx:成功,行为被成功地接受、理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误
5xx:服务器错
三 搭建安全
网站搭建环境
ASP,PHP,ASPX,JSP,PY,JAVA,WEB 等环境
WEB 源码中敏感文件
后台路径,数据库配置文件,备份文件等
web源码脚本可以以数据库反推脚本类型,也可以以搭建平台反推脚本类型
IP或域名解析WEB源码目录对应下的安全问题
IP访问可以访问到域名访问的上一级目录,要比域名访问到的内容更多,扫描时最好用IP地址扫描,可以扫描到更多东西。
脚本后缀对应解析
中间件中设置的扩展名与扩展名可对应访问到的目录不是一一对应,有可能多个扩展名对应一个文件目录,如果多个扩展名对应一个文件目录,那么这些扩展名所访问到的文件是一样的。
常见防护中的IP验证、域名验证等
IP限制,域名限制
后门注意事项
后门是否给予执行权限
后门是否给予操作目录或文件权限
后门是否给予其他用户权限
四web源码
补充:CMS识别可以经过下载网站的图片查看该图片的MD5值,根据MD5值与CMS指纹识别字典做比较查找。
CMS识别网站 https://www.yunsee.cn/cms
关注应用分类及脚本类型估摸出可能存在的漏洞(其中框架类例外),识别CMS,下载源码,在获取源码后可进行本地安全测试或代码审计,也可以分析其目录工作原理(数据库备份,bak 文件等),未获取到的源码采用各种方法想办法获取。
实践
ASP,PHP 等源码下安全测试
平台识别-某 CMS 无漏洞-默认数据库
平台识别-某 CMS 有漏洞-漏洞利用
操作思路:
根据CMS识别识别出CMS类型根据CMS类型下载网站,再从网站源码中找出数据库配置文件(可能会在data文件中,再找出数据与数据库联系的文件,找出管理员的账号密码,登录后台即可)
根据CMS识别识别出CMS类型,上网查找CMS漏洞,对漏洞进行运用
源码应用分类
操作思路:
抓数据包,修改请求包的对应数据,比如数据包中修改买家购买的数量
简要目标从识别到源码获取
操作思路:
网站右键检查,网络。根据访问网站时数据包内容,查看是否有特殊文件/文件名,通过百度搜索这些文件名获取CMS名
借助特定行业源码或咸鱼进行搜索获取-本地搭建-代码审计或其他
相关漏洞知识总结:https://websec.readthedocs.io/zh/latest/basic/index.html
CMS相关知识:https://www.phpsdk.cn/plug/news/show.html?id=2433
五系统及数据库
1操作系统层面
1.看字母大小写,windows对大小写不敏感,Linux敏感
2.看ping值 --ttl在64左右linux ,--ttl在128左右windows
3.nmap -O ip #“O”是字母
(哪个比例高就是哪个)
简要两者区别及识别意义情况
可以帮助我们明确思路
可以筛选掉不符合系统的情况
操作系统层面漏洞类型对应意义
操作系统层面漏洞类型对应意义
覆盖面广
获取的权限高
危害性大
2数据库层面
识别数据库类型常见方法
nmap -O ip
nmap ip -p 端口,通过端口开放反推数据库
常见的数据库结构
asp-----access或SQL sever
PHP-----MYSQL
aspx-----SQL sever或MYSQL
jsp-------SQL sever或oracle
Python----MYSQL、oracle、mongodb
服务器端口
关系型数据库:
MYSQL 端口:3306
SQL sever 端口: 1433
oracle 端口:1511
NOSQL数据库:
mongodb 端口:27017
Redis:6379
memcached:11211
数据库类型区别及识别意义
数据库的漏洞和类型相性很强
不同数据库漏洞爆发点不太一样
能确定数据库类型、版本,会对渗透有很大帮助
数据库常见漏洞类型及攻击
弱口令
sql注入
3 第三方
如何判断那些有第三方平台或软件
– 端口扫描 – 特征匹配
简要为什么要识别第三方平台或软件
可以提供额外的攻击面
常见第三方平台或软件漏洞类型及攻
弱口令
相关资源
nmap下载地址:https://nmap.org/ https://www.kali.org/downloads/
masnmapscan-V1.0 下载地址:https://github.com/hellogoldsnakeman/masnmapscan-V1.0
六加密算法&cdn&信息收集
1加密算法
常见加密编码等算法解析
MD5,SHA,ASC,进制,时间戳,URL,BASE64,Unescape,AES,DES
常见加密形式算法解析
直接加密,带 salt,带密码,带偏移,带位数,带模式,带干扰,自定义组合
常见解密方式
枚举,自定义逆向算法,可逆向
了解常规加密算法的特性
长度位数,字符规律,代码分析,搜索获取
相关网址:AES加解密:http://tool.chacuo.net/cryptaes
https://www.cmd5.com :“带盐加密:md5(md5(salt))”
2,DNS 绕过
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。但在安全测试过程中,若目标存在CDN服务,将会影响到后续的安全测试过程。
CDN对测试有何影响&如何绕过
子域名查询:有的网站主域名会做CDN,但是子域名可能不会做
邮件服务查询:我们访问别人,可能通过CND,但别人访问我们通常不会走CDN
国外地址请求:国外没有cdn节点的话,可能直接走原ip遗留文件,扫描全网
黑暗引擎搜索特定文件
dns历史记录,以量打量:CDN节点是有流量上限的,用光之后就会直通原机,这也是一种流量攻击
子域名上面的小技巧
二级域名和三级域名查到的结果可能不一样
主域名和子域名查询到的可能不一样
DNS历史记录:是查询创建最早期时的ip地址,有很大可能那个时候并没有加cdn,所以那个时候的ip地址极大可能是主地址
采集就是收集每个IP地址回应的IP地址,当中有大量重复的ip地址就是主ip地址
邮件源码,查找返回的IP地址并与第三方查出的对比,如果不一样,查网站出处(网站末尾)
黑暗引擎: Python查出该网站哈希值,黑暗引擎查改哈希值出处(shodan搜指定hash文件)。因为每个文件哈希值是唯一,有些文件节点是没有的,所以只能从主服务器下载,哈希值是唯一,查哈西值可以查出地区
扫全网 fuckcdn,w8 fuckcdn,zmap
认为判定,根据网站的域名备案推测
如何分辨原机: 本地清下dns,然后hosts里写上得到的ip和域名,如果是cdn可能会出现刷新异常,如果打开很快大概率是原机
相关
shoudan : https://www.shodan.io
情报社区: https://x.threatbook.cn (查相关资料)
站长工具:http://ping.chinaz.com (查ip)
IP查询:https://www.get- site- ip.com
w8fuckcdn:https://github.com/boy-hack/w8fuckcdn
(通过扫描全网绕过CDN获取网站IP地址
支持winodws/linux
gevent 协程IO 最大化利用资源
masscan扫描,最快能6分钟扫完全网
支持HTTPS
支持调节masscan的rate(速率))
3架构、搭建、waf
站点搭建分析
搭建习惯-目录型站点: 目录型站点(一个网站,不同cms)
搭建习惯-端口类站点:端口型站点(一台端口,不同端口生成的网页不同,端口可以从网上查找常用端口获得)
搭建习惯-子域名站点:不同子域名,cms网站搭建不同,可以查找该网站的robots.txt文件获得(相同域名不同ip。www.与bbs.IP地址不同)
搭建习惯-类似域名站点:域名后缀不同(.cn .com .org .biz .net等)域名不同,但网站相同。经常运用于src
搭建习惯-旁注, c段站点:旁注,相同服务器不同站点,
C段,同一网段不同服务器不同站点
搭建习惯-搭建软件特征站点:例如PHPstudy搭建的网站有phpmyadmin,且phpmyadmin账号密码为root root
WAF防护分析
什么是WAF应用? – Web应用防护系统
如何快速识别WAF? —使用waff00f工具检测或使用查看数据包X-Powered-By
如果有waf不能直接使用工具
4 APP及其他资产
在安全测试中,若WEB无法取得进展或无WEB的情况下,我们需要借助APP或其他资产在进行信息收集,从而开展后续渗透
APE提取一键反编译提取
使用反编译工具,尝试获取包了里的源码
APP抓数据包进行工具配合
使用burp suite设置代理,或者wireshark抓数据包,进行分析
各种第三方应用相关探针技术
https://www.shodan.io/
https://fofa.so/
七 漏洞的相关危害
(1)漏洞等级
SQL注入,文件上传,文件包含,代码执行,未授权访问属于高危漏洞,影响网站权限,数据库权限,可直接获得网站数据或数据库数据。
逻辑安全属于中危漏洞
(2)漏洞重点
CTF:文件上传,SQL注入,反序列化,代码执行
SRC:逻辑安全
红蓝对抗:SQL注入,文件上传,文件包含,代码执行,未授权访问
(3)php遍历一个文件夹下所有文件和子文件夹的方法
<?php
function my_dir($dir) {
$files = [];
if(@$handle = opendir($dir)) {
while(($file = readdir($handle)) !== false) {
if($file != ".." && $file != ".") {
if(is_dir($dir . "/" . $file)) { //如果是子文件夹,进行递归
$files[$file] = my_dir($dir . "/" . $file);
} else {
$files[] = $file;
}
}
}
closedir($handle);
}
return $files;
}
echo "<pre>";
print_r(my_dir("./"));
echo "</pre>";