信息安全基础笔记

Posted Sweetie_x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信息安全基础笔记相关的知识,希望对你有一定的参考价值。

一. 概念名词

1. 域名的购买

https://wanwang.aliyun.com/domain

2. 刷新DNS缓存

ipconfig /flushdns

3. 常用的脚本语言

asp php aspx jsp javaweb pl py cgi等
其中 php javaweb python应用比较多

4. WEB的组成架构模型?

网站源码:脚本类型,应用方向
操作系统: windows linux
中间件(搭建平台): apache iis tomcat nginx
数据库:access mysql mssgl oracle sybase db2 postsql等

5. WEB相关安全漏洞

  • web源码类对应漏洞
    SQL注入,文件上传,xss,代码执行,变量覆盖,逻辑漏洞,反序列化等

  • WEB中间件对应漏洞

  • WEB数据库对应漏洞

  • WEB系统层对应漏洞

  • 其他第三方对应漏洞

  • APP或pc应用结合类

二. 数据包拓展

1. HTTP/HTTPS具体区别?

  1. http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。
  2. https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。

2. HTTP简要通信过程

建立连接—>发送请求数据包—>返回响应数据包——>关闭连接

  1. 浏览器建立与web服务器之间的连接
  2. 浏览器将请求数据打包(生成请求数据包)并发送到web服务器
  3. web服务器将处理结果打包(生成响应数据包)并发送给浏览器
  4. web服务器关闭连接

3. 数据包

a.请求方法:

HTTP规划定义了8种可能的请求方法:

  1. GET:检索URL中标识资源的一个简单请求
  2. POST:服务器接受被写入客户端输出流中的数据的请求
  3. HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档
  4. PUT:服务器保存请求数据作为指定URL新内容的请求
  5. DELETE:服务器删除URL中命令的资源的请求
  6. OPTIONS:关于服务器支持的请求方法信息的请求
  7. TRACE: web服务器反馈Http请求和其头标的请求
  8. CONNECT :已文档化,但当前未实现的一个方法,预留做隧道处理

b.请求头

Accept:指定客户端能够接收的内容类型。
Accept-Charset:浏览器可以接受的字符编码集。
Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型。
Accept-Language:浏览器可接受的语言。
Accept-Ranges:可以请求网页实体的一个或者多个子范围字段。
AuthorizationHTTP:授权的授权证书。 Cache-Control:指定请求和响应遵循的缓存机制。
Connection:表示是否需要持久连接。(HTTP 1.1默认进行持久连接)
CookieHTTP:请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
Content-Length:请求的内容长度。

c.HTTP响应码:

1xx:信息,请求收到,继续处理
2xx:成功,行为被成功地接受、理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误
5xx:服务器错误

d.常见状态码

100,接受的请求正在处理,信息类状态码
200,服务器成功处理了请求
302,临时性重定向,表示资源临时被分配了新的 URL
400,(错误请求)服务器不理解请求的语法
404,(未找到,页面丢失)未找到资源
500,(服务器内部错误)服务器遇到错误,无法完成请求

三 . 安全搭建扩展

1. 常见搭建平台脚本启用

  1. 集成环境一般不安全
  2. ASP,PHP,ASPX,JSP,PY,JAVAWEB等环境
  3. WEB源码中敏感文件
    后台路径,数据库配置文件,备份文件等

2. 域名IP目录解析安全问题

  1. 使用域名访问网站时往往指向某一目录,IP地址则指向根目录

3. 常见文件后缀解析对应安全

  1. 中间件IIS中,以图中asp文件为示例,.asp的文件指向asp解析地址,利用新建一个自定义的拓展名如:.sweetie ,指向解析路径与asp相同,里面写上asp一句话木马 ,使用菜刀连接仍然会以asp文件形式解析


也可以使用.cdx,.cer后缀名的木马 解析路径与.asp文件一致

4. 常见安全测试中的安全防护

学校或企业内部网络(有些老了,但是也有使用)

有些中间件默认有,有些需要安装拓展
以IIS中间件为例子(默认有):

  1. 身份验证和访问控制

    不启用匿名访问

  2. IP地址和域名限制(最常见)
    即进行黑白名单设置访问

  3. 安全通信
    即要下载HTTP证书才允许访问

5.WEB后门与用户及文件权限


IIS来宾用户即上面应用的匿名用户

实战中若碰到文件夹没有权限,绕过方法:换一个文件夹上传
上传图片猜路径,根目录上传webshell

四. web源码拓展

前言:WEB源码在安全测试中是非常重要的信息来源,可以用来代码审计漏洞也可以用来做信息突破口,其中WEB源码有很多技术需要简明分析。比如:获取某ASP源码后可以采用默认数据库下载为突破,获取某其他脚本源码漏洞可以进行代码审计挖掘或分析其业务逻辑等,总之源码的获取将为后期的安全测试提供了更多的思路。

1. 目录

后台目录
模版目录
数据库目录
目录结构
数据库配置文件


template模板文件


数据配置文件(config)可能含有数据库连接账号密码

2. 脚本类型

asp php aspx jsp javaweb py cgi等
教据库存储/解释或编译型/语言安全

3. 应用分类(源码功能决定漏洞类型)

门户 --> 综合类漏洞
电商 --> 业务逻辑突出
论坛 --> XSS,逻辑突出
应用分类 --> 据功能决定
其他

4. 其他补充

框架或非框架 --> 框架漏洞或无框架下—步思路
CMS识别 --> 人工,工具,平台识别
开源或内部 --> 内部-常规渗透测试, 开源-直接找漏洞或审计
源码获取 --> 备份获取,CMS识别后获取,特定源码特定渠道

关于源码获取的相关途径:搜索,咸鱼淘宝,第三方源码站,各种行业对应
看框架时 如果有源码 先看路由

关注应用分类及脚本类型估摸出可能存在的漏洞(其中框架类例外),在获取源码后可进行本地安全测试或代码审计,也可以分析其目录工作原理(数据库备份,bak文件等),未获取到的源码采用各种方法想办法获取


只有asp网站有

五. 系统及数据库

1. 操作系统层面

1.1识别操作系统常见方法

  1. 通过网站的手工识别方法判断:
    windows对大小写不敏感也就是说你在网页中可以替换网站路径的大小写进行测试
    如:www.xxx.com/hack和www.xxx.com/HACK访问一致可以认为是windows系统

  2. 使用nmap工具 -O参数进行扫描扫描

NMAP常用命令

2.数据库层面

2.1识别数据库类型常见方法

默认的语言搭配的数据库
组合类型asp + access/mssql
组合类型php + mysql 
组合类型aspx+mssql
组合类型jsp +mysql/oracle
组合类型Python + MongoDB

常见的数据库默认端口号

关系型数据库
mysql 3306
sqlserver 1433
oracle 1521
psotgresql 5432
非关系型数据库
MongoDB 27017
Redis 6379
memcached 11211

2.2数据库类型区别及识别意义

数据库的不同表示的结构也是不同、写法结构也不一样、所以产生的漏洞也不一样。
不同的数据库的攻击方式也不完全一样。

2.3数据库常见漏洞类型及攻击简要

存在弱口令
数据库漏洞

2.4数据库层面漏洞影响范围

数据库权限
网站权限
修改网页内容

2.5第三方应用安全漏洞演示

phpmyadmin 4.8.1远程文件包含漏洞(CVE-2018-12613)

六. CDN相关技术

1、如何判断目标存在CDN服务?

  1. 利用多节点技术进行请求返回判断
    超级ping

2.如何绕过CDN

  1. 子域名查询:
    因为有些主站是做了CDN服务而子站是没有做CDN服务

  2. 邮件服务查询
    因为邮箱大部分都是内部人在访问、而且访问的量也不是很大,一般是没有做CDN。

  3. 国外地址请求
    因为很多的企业为了节省成本,在海外用户人数较少的情况下,没有在国外部署CDN,要是用国外的地址请求、就容易找到他的真实地址。

  4. 遗留文件
    如PHPinfo信息当中会遗留出ip地址

  5. 扫描全网(没有办法的办法)
    利用工具或平台利用全网去扫描,去筛选没有CDN节点的地区获取真实IP

  6. 黑暗引擎搜索
    fofa、shadon、zoomeye、censys
    特定文件的MD5值,dns历史记录,以量打量(ddos攻击)

  7. 访问一个网站时,www.xxxx.com 和 xxxx.com 解析出来是一样的内容但是有可能xxxx.com没有设置CDN
    验证获取到ip是否可信可以采用第三方的ip地址查询工具经行验证
    https://get-site-ip.com/

  8. 查看DNS解析记录(参考)
    微步在线

  9. 通过邮件获取查看邮件的源码 查看邮件服务器的ip 和结合网站备案地址,第三方查询判断那个位置的IP是服务器的真实IP

  10. CDN真实IP地址获取后绑定指向地址
    更改本地HOSTS解析指向文件,即把获得的IP进行一个验证,将网址和一个乱敲的IP进行绑定(网站无法访问,ping不通) 再修改自己获得的IP,访问成功即为真实IP

总结:网站的cdn的绕过方法第三方工具或通过邮件的方式不一定完全靠谱还是要结合一定的社会工程学才能找到真实的IP地址。

七.信息收集

7.1 站点搭建分析

  1. 目录型站点
    简单的理解就是主站上面存在其他的cms程序,使用主站域名加一个文件夹的形式
    例如:
    学生网站的上面通过后台扫描发现有一个bbs的目录一点击发现是一个bbs的论坛网站如:www.xxx.com/bbs
    我们把这个成为目录型网站、可以有两种找到漏洞的思路一个是主站的漏洞另外的一个是bbs上面的漏洞
  2. 端口类站点
    一个网站不同端口有不同的网站(不同应用)
    例如:80为主站,8080为后台入口
  3. 子域名站点
    子域名挖掘机去找
  4. 类似域名站点(尤其是非法网站)
    有些公司由于业务的发展将原来的域名弃用、选择了其他的域名但是我们访问他的旧的域名还是能够访问、有的是二级域名的更换而有的是顶级域名的更换
    可以通过他的旧的域名找到一些突破口

例如:京东的网站是jd.com 那么他就有可能是采用了jd.net jd.cn等域名我们采用社工的方式去尝试获取他的相关域名信息

  1. 旁注,c段站点
    旁注:同一个服务器上面存在多个站点、但是你要攻击的是A网站由于各种原因不能完成安全测试。就通过测试B网站进入服务器然后在攻击A网站最终实现目的。
    C段:不同的服务器上面存在不同的网站,通过扫描发现与你渗透测试的是同一个网段最终拿下服务器、然后通过内网渗透的方式拿下渗透服务器。

  2. 搭建软件特征站点
    有的网站是借助于第三方的集成搭建工具实现例如:PHPstudy、宝塔等环境这样的集成环境搭建的危害就是泄露了详细的版本信息。
    如Apache,PHP具体的版本号

7.2 WAF

  1. 什么是wAF应用?
    Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

  2. 识别有没有WAF
    使用工具
    WAFw00f

XFF中有WAF字样

  1. 识别wAF对于安全测试的意义?
    对于一个网站要是使用了waf而渗透人员没有识别直接使用工具进行扫描有可能会导致waf将你的ip地址拉入黑名单而不能访问。而识别waf在于有针对性行的绕过各个厂商的waf可能存在着不同的绕

八.WEB漏洞

CTE,SRC,红蓝对抗,实战等

#简要说明以上漏洞危害情况
#简要说明以上漏洞等级划分
#简要说明以上漏洞重点内容
#简要说明以上漏洞形势问题

一.pikchu靶场搭建

https://github.com/zhuifengshaonianhanlu/pikachu

1. SQL注入数字型

找到路径

修改源码,对查询到的结果进行SQL语句的呈现
加入语句

echo $query



抓包 改包

id = 1 union select username,password from users


所有账号密码都被查询出来

2.目录遍历

  1. 通过…/…/找到其他目录的其他文件


    备注:目录遍历漏洞一般由其他的漏洞配合才能实现漏洞的作用。
  2. 通过脚本获取遍历
<?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("./pikachu-master"));
echo "</pre>";

以上是关于信息安全基础笔记的主要内容,如果未能解决你的问题,请参考以下文章

信息安全基础笔记

信息安全基础笔记

信息安全基础知识笔记02防火墙转发原理和初步配置

信息安全工程师教程学习笔记汇总(思维导图及考试要点)

Spark发行版笔记13:Spark Streaming源码解读之Driver容错安全性

Snuck - 自动XSS过滤器旁注工具