2020v6自学笔记之基础入门

基础入门

基础入门-概念名词

域名
什么是域名?
  - 域名 (英语:DomainName ),又称 网域 ,是由一串用点分隔的名字组成的 Internet 上某一台 计算机 或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
- 域名在哪里注册?
  - 国内在阿里云的万网注册
  - 国外在NameSilo注册
- 什么是二级域名多级域名?
  - www是顶级域名
  - 二级域名例如:news.baidu.com
  - 多级域名例如:news.sina.com.cn
- 域名发现对安全测试有什么意义?
  - 收集域名:给测试多了一种可能性。
  - 当对某一个网站的主站做测试,发现没有找到突破口,可以收集它的子站点,也就是它的多级域名。可以以子站为突破口,渗入主站点。不管是在同一服务器还是同一网段主站与子站多多少少有联系,有可能密码等等是通用的。
DNS
什么是DNS?
- 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
- 本地hosts与dns的关系
  - windows中hosts文件路径:C:\Windows\System32\drivers\etc\hosts
  - 当解析域名时dns会先到hosts文件里找看有没有这个域名对应的IP地址。如果没有它就会去互联网上的dns服务器上解析。
  - host文件使用
    1. 绑定域名的IP地址
    2. 修改hosts文件,达到让对方的一个网指向你指向的IP地址
    3. 网站钓鱼:掉包、重定向,做一个一样的网站。
    4. 加速器,访问国外网站时,修改成国内IP地址。
- cdn是什么? 与dns有什么关系?
  - CDN的全称是Content Delivery Network,即[内容分发网络](https://baike.baidu.com/item/内容分发网络/4034265)。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
  - cdn 缓冲节点技术
  - cdn 主要看地区,就近给节点
  - cdn 和dns更换没有关系
- 常见dns攻击方式?
  - dns服务器被攻击之后,大量用户再访问时被恶意解析。再访问网站时,恶意解析指向恶意地址。
脚本语言
常见脚本类型
  - PHP、Javaweb、ASP、aspx、JSP、p1、Python、cgi
- 不同脚本类型与安全漏洞的关系?
  - 面对网站它的程序源码选用,写法,以及用什么语言去写源代码,将决定这套程序源码漏洞产生的概率。
  - 语言的严谨,注重的多,语言上写法的规矩比较多,编写这个网站时,相对性安全性漏洞少一些(比如Java一块)
  - 程序源码偏重性不同,php中小型,Java大项目。
- 漏洞挖掘代码审计与脚本类型的关系?
  - 脚本语言开发了解,看的懂代码
后门
什么是后门?有哪些后门?
  - 攻击者在拿到一定权限之后遗留后门
  - 网站后门—webshell
  - 服务器,个人计算机等等-后门木马
  - 深层次的后门rootkey,内核级
- 后门在安全测试意义?
  - shell控制
- 后门用法(免杀)
  - 特殊的目的
- 免杀
  - 加壳
Web
web组成架构模型
  - 网站源码,分脚本类型、分应用方向
    - 脚本类型编写源码可能性漏洞
    - 源码使用函数的可能性漏洞
    - 网站所使用功能上可能性漏洞
  - 操作系统:Windows、Linux
    - 所使用攻击载荷不同
  - 中间件(搭建平台):apache、iis、tomcat、nginx等等
    - 提供服务的
  - 数据库:access、MySQL、oracle、sybase、db2、postsql等
    - 储存数据
架构漏洞安全测试简要介绍?
  - 其web漏洞所出现在的四个方面
  - 漏洞所出现的四个层面
为什么要从web安全层面为首
  - 使用范围广
  - 漏洞出现较多
  - 由web先获取一些权限之后,再由web进行权限提升,拿到某台主机的网站权限,然后达到内网,搞到大的局域网、框架,获取更多有用价值的信息。
  - 漏洞必须的前提条件
web相关漏洞
web源码类对应漏洞
  - SQL注入漏洞、xss(代码执行)、文件上传、代码执行、变量覆盖、逻辑漏洞、反序列化等
web中间件对应漏洞
  - 未授权访问、解析漏洞、任意文件上传、弱口令等
web数据库对应漏洞
  - 弱口令、内核、未授权等
web系统对应的漏洞
  - 提权、溢出等
其他第三方对应漏洞
  - 软件漏洞、phpstudy后门等
app或pc应用结合类
  - 应用漏洞
  - 逆向破解
  - app分装:你可能app看到的架构模板可能是套用的是网站的。就是说你用网页访问,和你用app打开看到的是一样的
  - 结合web二次开发
  - 分析app里面存在的web协议以及信息
演示案例

web安全之信息收集

多级域名枚举查找(原理,方式)
  - 搜索引擎:youku.com
  - 域名挖掘机爆破
  - 第三方运营商查询
dns解析修改后分析(本地或服务)
EXE后门功能及其危害类似于web后门
  - Quasar
app类结合web协议,pc类结合web协议
  - app端
    - bur抓包,抓app包 - 使用pc端访问时注意替换原数据包,因为客户端不同数据包有差异		
    - 第三方软件 逆向破解 - 漏了一个大洞
  - pc端
    - 进程抓包工具
    - WSE
涉及资源

逍遥模拟器

http://www.xyaz.cn

Wsexplorer

http://www.downcc.com/soft/11196.html

Quasar

https://github.com/quasar/QuasarRAT/releases

漏了一个大洞

链接:https://pan.baidu.com/s/16j0evEEyaD6nOKcjAjb_WA 提取码:chen


基础入门-数据包拓展

数据包请求方式
- request       	请求数据包
- respondes          响应数据包
- proxy              代理
超文本传输协议
- http                      普通网站协议
  - http、tcp、ip
  - 通信过程
    - 建立连接—发送请求数据包—返回响应数据包—关闭连接
https                     加密网站协
  - http、ssl or tls 、tcp、ip
  - 加密传输
  - 通信过程
    - http请求—服务响应—加密信息
      [证书校验、生成密码、公钥加密]
      —加密信息
      [私钥解密、解密握手消息验证HASH]
      —正常加密通信
      [解密握手消息、验证HASH]
request请求数据包
Request请求数据包格式:
1.请求行:请求类型/请求资源路径、协议的版本和类型
2.请求头:一些键值对,浏览器与web服务器之间都可以发送,特定的某种含义
3.空行:请求头与请求体之间用一个空行;
4.请求体:要发送的数据(一般post提交使用);例:user=123&pass=123
 
例:
POST /zb_system/cmd.php?act=search HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cache-Control: max-age=0
Connection: keep-alive
Content-Length: 3
Content-Type: application/x-www-form-urlencoded
Cookie: ZDEDebuggerPresent=php,phtml,php3
Host: xiaodi8.com
Origin: http://www.xiaodi8.com
Referer: http://www.xiaodi8.com/
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39

请求行:
请求行由三个标记组成:请求方法、请求URL和HTTP版本,它们用空格隔开

#注意HTTP1.0与HTTP1.1版本区别
HTTP1.0仅支持 GET、POST、HEAD 请求方法
HTTP1.1以下请求方法都支持
例:
POST /zb_system/cmd.php?act=search HTTP/1.1

HTTP 规划定义了8种可能的请求办法:
GET 检索URL中标识资源的一个简单请求
HEAD 与GET方法相同,服务器只返回状态行和头标,并不返回请求文档
POST 服务器接受被写入客户端输出流中的数据的请求
PUT	服务器保存请求数据作为指定URL新内容的请求 
DEELETE	服务器删除URL中命令的资源的请求
OPTIONS 关于服务器支持的请求方法信息请求
TRACE	web服务器反馈http请求和其他头标的请求
CONNECT	已文档化,但当前未实现的一个方法,顶留做隧道处理
请求头:
由关键字/值对组成,每一行一对,关键字和值用冒号分隔。请求头标通知服务器服务器腾于客户端的功能和标识。

HOST 主机或域名地址

Accept 指浏览器或其他客户可以接受的MIME文件格式,Server可以根据它判断并返回适当的文件格式。

User-Aqent 是客户浏览器名称

Host 对应网址URL中web名称和端口号

Accept-Langeuage 指出浏览器可以接受的语言种类,如cn或cn-un,指英语

connection 用来告诉服务器是否可以维持固定的HTTP连接,http是无连接的,HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接

Cookie 浏览器用这个属性向服务器发送Cookie,Cookie是在浏览器中寄存的小型数据库,它可以记载和服务器相关的用户信息,也可以用来实现会话功能

REferer 表明产生请求的网页URL,如此从网页/icconcept/index.jsp中点击一个链接到网页/icwork/search,在向服务器发送的GET /icconcept/index.jsp
这个属性可以用来跟踪web请求是从什么网站来的

Content-Type 用来表明request的内容内容类型,可以用来httpServerRequest的getContentType()方法获取

Accept-Charset 指出浏览器可以接受的字符编码,英文浏览器的默认值是ISO-8859-1

Accept-Encoding	指出浏览器可以接受的编码方式,编码方式不同于文件格式,它是为了压缩文件并加载文件传递速度,浏览器在接收到web响应之后先解码,然后再检查文件格式
空行
最后一个请求头标之后是空行,发送回车符和退行,通知服务器以下不再有头标
请求数据
使用POST传送,最常使用的是Content-Type	和 Content-Length
Response返回数据包格式
Response返回数据包格式:
一个响应由四个部分组成:状态行、响应头标、空行、响应数据
1.状态行:协议版本、数字形式的状态代码和状态描述,单个元素之间以空格隔开
2.响应头标:包含服务器类型、日期、长度、内容类型等等
3.空行:响应头与响应体用空行隔开
4.响应数据:浏览器会将实体内容中数据取出来,生成相应页面

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

200	存在文件
403	存在文件夹
3xx	均可能存在
404	不存成文件夹和文件
500	均可能

#响应头标
像请求头标一样,它们指出服务器的功能,标识出响应数据的细节

#空行
最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不再有头标
#做渗透测试
宁愿误报也不能遗漏
演示案例
burpsuite抓包修改测试
  - 抓包伪造数据,绕过检测
敏感文件扫描工具简要实现
  - 御剑后台扫描
#第三方检测修改实现XSS攻击
  - 通过抓包修改数据包,改成js脚本代码实现xss攻击
数据包相关检验对比(APP与直接访问)
  - 将抓到的app访问的数据包与pc端浏览器访问的数据包进行替换
  - 在测试app漏洞时,你要保证访问的数据包是对的才能测试漏洞
CTF或实际应用中部分考题解析(mozhe)
  - referer:来源伪造
  - aqent:浏览器客户端伪造(手机端iPhone),netType/2G(网络伪造)
  - 修改提交方式(post)
  - 伪造服务器获取客户端IP(php获取ip方法),x-forwared-for:ip
涉及资源

墨者学院_专注于网络安全人才培养 (mozhe.cn)


基础入门-搭建安全拓展

常见搭建平台脚本启用
#ASP,PHP,ASPX,JSP,PY,JAVAWEB等环境

域名IP目录解析安全问题
#WEB源码中敏感文件
#后台路径,数据库配置文件,备份文件等
1.网站访问有两种形式:
	#域名访问:使用域名访问只能看到当前网站的文件夹
	#IP访问:使用IP访问将会把网站根本目录下所有文件夹,甚至网站备份文件,敏感文件
	IP访问的是根目录
	域名访问的是根目录是下网站
	IP是网站域名上一级

#IP或域名解析WEB源码目录对应下的安全问题
#域名访问,IP访问(结合类似备份文件目录)

常见文件后缀解析对应安全
#脚本后缀对应解析(其他格式可相同-上传安全)
#存在下载或为解析问题
#asp.dll:解析协议
asp.dll默认扩展名 .cer .cdx
漏洞:
1.如果其他后缀(扩展名)也是对应着解析asp.dll文件的话,它就会以asp脚本解析相应文件执行
2.在IIS6.0 中,文件夹[*.asp] 下的所有文件都会被当作asp 脚本来执行
假如某个网站在解析文件时(如文件上传时)有的不解析,或有的直接下载、有的报错、有的解析,这中情况其实就是网站中间件解析协议的设置

常见安全测试中的安全防护
#常见防护中的IP验证,域名解析等
内部网站防护
1.身份验证控制
2.ip或域名限制

WEB后门与用户以及文件权限
#后门是否给予执行权限
#后门是否给予操作目录或文件权限
#后门是否给予其他用户权限
网站所对应的权限来自于来宾账户
其实就是匿名访问所使用的来宾账户
Windows权限默认是允许,权限一旦拒绝就是拒绝
#网站目录执行权限——无(针对图片目录之类)
绕过思路:将后门放到有执行权限的目录下,比如根目录或有脚本的目录下(有脚本的地方就有可执行权限)
取决于你有没有那个权限或操作执行
绕过有前提条件,遵循该有的规则下,寻找绕过思路

#总结下关于可能存在的安全或防护问题
演示案例
基于中间件的简要识别
response headers \\响应头
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Tue, 26 Apr 2022 13:50:28 GMT
Server: Tengine					//中间件(搭建平台)
Transfer-Encoding: chunked
Vary: Accept-Encoding
  • 基于中间件的安全漏洞

    web中间件常见漏洞总结.pdf

  • 基于中间件的靶场使用

Vulhub - Docker-Compose file for vulnerability environment

涉及资源

Vulhub - Docker-Compose file for vulnerability environment

web中间件常见漏洞总结.pdf


vulhub靶场搭建

基于centos7搭建

1.备份yun源
cd /etc/yum.repos.d/
cp CentOS-Base.repo{,.bak}
2.添加源
curl -O http://mirrors.aliyun.com/repo/Centos-7.repo
curl -O http://mirrors.aliyun.com/repo/epel-7.repo
curl -O http://mirrors.aliyun.com/repo/epel-testing.repo
3.清理缓存并重新建立缓存
yum clean all && yum makecache
4.更新yum软件包
yum update -y
5.安装docker基本依赖
yum insatll -y yum-untils device-mapper-persistent-data lvm2
yum makecache fast
6.安装docker-ce
yum list docker-ce --showduplicates | sort -r //列出所有版本
yum -y install docker-ce-18.03.1.ce-1.el7.centos //安装docker-18.03版本
7.验证docker是否安装好
docker -version
8.启动docker服务
systemctl start docker //临时启动
systemctl enable docker //开机自启
9.配置docker源(加速映像)
vim /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://3laho3y3.mirror.aliyuncs.com",
    "http://f1361db2.m.daocloud.io",
    "https://mirror.ccs.tencentyun.com"
  ]
}
10.重启服务及加速映像
systemctl restart docker
systemctl daemon-reload
11.安装docker-compose
	1.使用官方安装
	sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
	2.使用daocloud地址下载
	sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
	3.使用pip安装
	pip install docker-compose
12.给docker-compose目录可执行权限
chmod +x /usr/local/bin/docker-compose
13.安装git
yum install -y git
git -version
14.创建存储vulhub环境目录
mkdir CVE
14下载vulhub
cd /CVE
git clone https://github.com/vulhub/vulhub
15.进入某个漏洞环境目录下
cd /CVE/vulhub/wordpress/pwnscriptum/
16.启动环境
docker-compose up -d
16.查看端口
docker-conpose ps
docker-compose config
17.删除环境
docker-compose down

基于ubuntu搭建

推荐文章:https://www.cnblogs.com/Xy--1/p/12767967.html

基础入门-WEB源码拓展

前言:
WEB源码在完全测试中非常重要的信息来源,可以用来代码审计漏洞也可以用来做信息突破口,其中WEB源码有很多技术需要简明分析。

比如:
获取ASP源码后可以采用默认数据库下载为突破,获取某些脚本源码漏洞可以进行代码审计挖掘或分析其业务逻辑等,总之源码的获取将为后期安全测试提供更多思路。

如图:

在这里插入图片描述

知识点
   - 关于WEB源码目录结构
   - 关于WEB源码脚本类型
   - 关于WEB源码应用分类
   - 关于WEB源码其他说明

数据库配置文件,后台目录,模版目录、数据库目录等
配置操作目录:includes
后台目录:admin
模版目录:template
数据相关目录:data、(一般其中有数据库配置文件 config)
安装目录:install
会员中心目录:member

#ASP,PHP,ASPX,JSP,JAVAWEB 等脚本类型源码安全问题
查看笔记:https://websec.readthedocs.io/zh/latest/

#社交,论坛,门户,第三方,博客,等不同的代码机制对应漏洞
网站功能不同对应漏洞也不同

#关于源码获取的相关途径,搜索,咸鱼淘宝,第三方源码站,各种行业对应
获取源码方式并不一样,看网站对应是什么行业

#总结
关注应用分类及脚本类型估摸出可能存在的漏洞(其中框架类例外(框架直接找相对应框架)),在获取源码后可进行本地安全测试或进行代码审计,也可以分析其目录工作原理(数据库备份,bak文件等),未获取到的源码采用各种方法想办法获得。
演示案例
#ASP,PHP等源码下安全测试
平台识别-某CMS无漏洞-默认数据库
1.ASP网站中特有的文件(xycms.mdb(只有asp网站会有的文件))
2.XYCMS,原名为南京XYCMS企业建站系统,该建站系统是一款基于ASP开发的商业性建站系统,网站系统方便、简洁、容易上手。所设计的版本分为动态版和静态版。
3.xycms.mdb是xycms建站系统的数据库文件可以在其中找到后台账户和密码
总结:
在发现某网站的建站系统架构是什么平台时,可以在网上查找相同架构的cms源码,通过源码分析网站目录文件,找出后台文件例如:admin文件夹,网站数据文件夹例如:data文件夹(前提是在该网站没有更改默认架构时)
--------------------------------------------------------
平台识别-某CMS有漏洞-漏洞利用
PHP网站:
1. (cms识别)首先查找cms,看是哪个cms建站系统
2.(漏洞搜索)在网上查找看是否这个版本的cms是否有漏洞
3.(若没有)在网上下载该cms源码之后做漏洞分析
--------------------------------------------------------
cms识别:
1.人工
2.工具(扫面该cms特有文件,从而查找是哪个cms建站系统)
	cms字典对比特用文件的md5值
3.平台识别——cms识别平台(百度搜索)

#源码应用分类下的针对漏洞
web网站中,网站的功能越多,可以说漏洞与功能的数量是相对应的,并且网站所对应的漏洞也是与其网站应用功能所对应的,因此在漏洞发现的过程中可以从web网站应用功能的模块开始。
例如:niushop电商类关注漏洞点-业务逻辑
使用burp suite对其网站抓包
如若这个电商类网站是前端校验,通过对数据包的修改关键点,导致形成业务逻辑漏洞

#简要目标从识别到源码获取
(1).本地演示个人博客-手工发现其cms-漏洞搜索或下载分析
	通过搜索引擎,F12,通过网络分析抓取特殊文件
(2).内部搭建的靶场,实验
	通过报错,暴露出网站的框架,再通过网上搜索看该框架是否有漏洞,如若有在网上可以搜索到该框架的漏洞利用
(3).人工爆破-收索特定url-获取其他相符站点-漏洞测试
	例:thinkPHP框架,可以使用think_getshell工具利用
	也可通过搜索该页面路径,找到相关资料:index/login/login/token
(3).web源码获取——借助特定行业源码或闲鱼进行搜索获取-本地搭建-代码审计或其它(安全测试)
	第三方源码站
	菜鸟源码(还有其他等等)
	通过获取与之网站相似的源码,对之源码分析,找出可以利用的点
	小中型,通过闲鱼,淘宝
涉及资源

cms识别

云悉互联网WEB资产在线梳理|在线CMS指纹识别平台 - 云悉安全平台 (yunsee.cn)

GitHub - Lucifer1993/cmsprint: CMS和中间件指纹库

资产监控

GitHub - M4tir/Github-Monitor: Github RCE/0day监控系统 My’Blog:

学习文章

5. 语言与框架 — Web安全学习笔记 1.0 文档 (websec.readthedocs.io)

web安全.md

(90条消息) 渗透测试之网站cms识别大法汇总_白帽子九一的博客-CSDN博客_cms识别

GitHub - Lucifer1993/cmsprint: CMS和中间件指纹库

源码下载

网站源码下载,A5下载 - 更快的站长下载站 (a5xiazai.com)


基础入门-系统及数据库等

前言:除去前期讲到过的搭建平台中间件,网站源码外,容易受到攻击的还有操作系统,数据库,第三方软件平台等,其中此类攻击也能直接影响到WEB或服务器的安全,导致网站或服务器权限的获取。

在这里插入图片描述

#操作系统层面
识别操作系统常见方法
1.在对方有网站情况下
	通过网站URL地址识别操作系统
		Linux:严格区分大小写
		windows:不区分大小写
	例如:
	windows:http://www.xiaodi8.com/?CATE=8(将URL地址中换成大写不报错)
	Linux:https://ckteam.top/wP-login.php(Linux中URL换成大写直接404)
2.在对方没有网站情况下
(1) 通过TTL值判断(ping,通过相邻ttl值,不准确)
(2)	通过nmap扫描 nmap -O 网址或IP/nmap -sV 网址/IP
	进行概率判断
-----------------------------------------------------------------
简要两者区别及识别意义
###主要是为了在后期渗透测试缩小范围,找到测试点###
1.区别操作系统主要是在后期测试,操作系统不一样,同样文件路径不一样,文件类型不一样,我们需要知道其操作系统,对其相应文件路径以及文件类型。
2.前期测试之后在知道操作系统之后,后期测试就要围绕这个操作系统所支持的范围进行测试,发展。
-----------------------------------------------------------------
#操作系统层面漏洞类型对应意义
1.权限性漏洞(获取权限)
(1)远程代码执行漏洞
	MS17-010(SMB)	//没有前提条件,直接获取权限,危害等级 高
	还有一些中小型漏洞需要用户一定权限
	
2.危害性漏洞(带攻击性)
	危害性漏洞不会获取权限,只是导致系统崩溃,蓝屏,等等。
-----------------------------------------------------------------
#简要操作系统层面漏洞影响范围
1.获取权限,围绕权限挂钩,漏洞能不能获取相应权限,后期要有一定权限才能做一些后期的事情(有了一定权限才能利用漏洞)
2.干扰操作系统,操作系统蓝屏,崩溃
-----------------------------------------------------------------
#数据库层面
数据库:存储网站所有数据
********************************************
#网站分为两种:静态网站和动态网站
(必须有数据传递的网站才有漏洞)
	静态网站:类似于单页面,没有其它功能,没有后台前台,没有数据库,也没有数据,就是个页面。(没有实现数据传递,没有数据交互,静态网站并没有漏洞)
	动态网站:对于静态网站相反而言
********************************************
#识别数据库类型常见方法
#1.有网站型数据库识别:
(1)通过脚本推算
********************************************
	asp+access
	php+mysql
	aspx+mssql
	jsp+mssql,oracle
	python+maongdb
********************************************
(2)通过操作系统推算
********************************************
window:全都可以
Linux:除了access以及mssql,其他都支持(因为access,mssql是微软官方的)
********************************************
#2.没有网站型数据库识别:
(1)数据库有相应默认端口(通过百度查一下,常见数据库默认端口)
(2)通过nmap端口扫面
-----------------------------------------------------------------
数据库类型区别及识别意义
1.数据库类型不同,产生漏洞也不一样
2.数据库类型不同,存储结构不同,数据写法不同
3.数据库类型不同,攻击方式,和一些漏洞影响都有一些差异
-----------------------------------------------------------------
#数据库常见漏洞类型及攻击
1.弱口令
2.漏洞
简要数据库层面漏洞影响范围
1.数据库权限甚至网站权限
-----------------------------------------------------------------
#第三方层面
如何判断有哪些第三方平台或软件
简要为什么要识别第三方平台或软件
常见第三方平台或软件漏洞类型及攻击
简要第三方平台或软件安全测试的范围

#补充
#除去常见WEB安全及APP安全测试外,类似服务器单一或复杂的其他服务(邮件,游戏,负载均衡等),也可以作为安全测试目标,此类目标测试原则只是少了WEB应用或其他安全问题,所以明确安全测试思路是很重要的!

课程安排->漏洞技术->WEB层面,系统层面,第三方等其他
演示案例
操作系统层面漏洞测试
ms170_010
- 永恒之蓝(ms17-010)过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
- 目前已知受影响的Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0

web层面数据库漏洞测试
Mysql 身份认证绕过漏洞
- MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.
- MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.

第三方软件平台漏洞测试
phpmyadmin scripts/setup.php 反序列化漏洞
- phpmyadmin 2.x版本中存在一处反序列化漏洞,通过该漏洞,攻击者可以读取任意文件或执行任意代码
vsftpd-2.3.4 手工触发漏洞
- 当进行FTP认证时,如果用户名USER中包含:),那么直接就触发监听6200端口的连接的shell。
涉及资源

Nmap: the Network Mapper - Free Security Scanner

Get Kali | Kali Linux

GitHub - hellogoldsnakeman/masnmapscan-V1.0: 一款用于资产探测的端口扫描工具。整合了masscan和nmap两款扫描器,masscan扫描端口,nmap扫描端口对应服务,二者结合起来实现了又快又好地扫描。

Vulhub - Docker-Compose file for vulnerability environment


基础入门-加密编码与算法

前言:在渗透测试中,常见的密码等敏感信息会采用加密处理,其中作为安全测试人员必须要了解常见的加密方式,才能为后续的安全测试做好准备,本次课程将讲解各种加密编码等知识,便于后期的学习和发展。

常见加密编码等算法解析
MD5,SHA,ASC,进制,时间戳,URL,BASE64,Unescape,AES,DES 等
--------------------------------------------------------------
MD5加密方式:常见md5加密,是由a-z和0-9组成的16位或32位字符,一般网站都采用md5值加密
MD5解密方式:在线平台cmd5.com
-----------------------------------------------------------------------------
SHA加密方式:hash值
	sha:由a-z和0-9组成的20位字符
	sha1:由a-z和0-9组成的40位字符
	sha256:由a-z和0-9组成的位32位字符
	sha384:由a-z和0-9组成的48位字符
	sha512:由a-z和0-9组成的64位字符
SHA为20字节(160位)、SHA256为32字节(256位)、 SHA384为48字节(384位)、SHA512为64字节(512位)
SHA解密方式:在线平台cmd5.com
--------------------------------------------------------------------------
进制:进制转换	二进制 十进制 八进制 十六进制
------------------------------------------------
时间戳:将一个时间段转换成秒
	eg. 2022-08-08 11:11:37 转换成时间戳 1659928297
转换方式:
		在线: tool.lu/timestamp
		linux:date -d 时间段 +%s
		windows:https://blog.csdn.net/kate_mj/article/details/104384892
--------------------------------------------------------------------------
URL编码:%开头0-9和a-z组成的几位字符 eg. 空格 %20
注意:二次编码,在编码之后又进行编码,浏览器只会进行一次编码
以上为常见编码,不区分大小写
--------------------------------------------------------------------------
BASE64编码:明文有多长相应的密文就有多长,0-9和a-z或A-Z 区分大小写 (经常会在末尾出现一或两个=)
	主要应用:web网站中,密码加密,安全性代码加密,特殊参数加密
BASE64解密:https://base64.us/
#注意AES解密会进行二次编码,当解密base64时出现乱码很可能就是AES加密
-----------------------------------------------------------------------------------------
Unescape编码:%u四位数字组成的字符串,偶数结尾时后面经常出现%u0000
	常应用:web方面
---------------------------------------------------------------
AES加密:AES加密是一种安全性加密,字符串中常出现/
	由六个模块组成:加密模式 加密长度 秘钥 偏移量 编码 输出字符集
	编码类型:base编码 hex编码(十六进制)
#注意:AES加密方式是使用了二次编码形式,当解密出来是一种乱码格式,就说明进行过二次编码
	eg. UFgGlyPTiFytLhUVCbb6vAiGp4MDNU8I6e8uSxoGP+Y=
	在此注意编码样式类似于base64,base64编码经常以=结尾,在进行解密时首先将编码进行转换
	应用范围:安全性和大型网站以及ctf比赛类
AES解密:在线网站 http://tool.chacuo.net/cryptaes
	解密时必须条件:秘钥和偏移量
	AES正在逐渐替代MD5
------------------------------------------------------------------
DES加密:和base64相似,明文与密文长度一样,但是字符串中常出现+/
--------------------------------------------------------------------
常见加密形式算法解析
直接加密,带 salt(加盐值),带密码,带偏移,带位数,带模式,带干扰,自定义组合等

常见解密方式(针对)
枚举,自定义逆向算法,可逆向

了解常规加密算法的特性
长度位数,字符规律,代码分析,搜索获取等
演示案例
  • 某 CTF 比赛题目解析

    脚本自定义算法组合逆向
    密码逆向从后往前解析
      
      <?php
      function decrypt($str) {
      $mykey = "729623334f0aa2784a1599fd374c120d";		//md5(issc)
      $key_len= strlen($mykey);
      $temp = $str;
      /*
      base64_encode()函数来进行base64加密,而base64_decode()函数则可解密
      */
      $temp = base64_decode($temp);	//对base64后的字符串解密 decode
      $md5_len = strlen($temp);		//获取字符串长度
      $x = 0;
      $char = "";
      for($i=0;$i < $md5_len;$i++) {	//获取二次加密用的key
      	if($x == $key_len) 			// 数据长度是否超过key长度检测
      	   $x = 0;
      	$char .= $mykey[$x];			//从 key 中取二次加密用key
      	$x+=1;
      	
      }
      $md5_data = array();				//获取偏移后密文数据
      for($i=0;$i<$md5_len;$i++) {
      	array_push($md5_data,ord($temp[$i]));
      }
      $md5_data_source = array();
      $data1 = "";
      $data2 = "";
      foreach($md5_data as $key => $value) {	//对偏移后的密文数据进行还原
      	$i = $key;
      	if ($i >= strlen($mykey)){$i = $i -  strlen($mykey);}
      	$dd = $value;
      	/*ord() 函数返回字符串中第一个字符的 ASCII 值*/
      	$od = ord($mykey[$i]);
      	array_push($md5_data_source,$dd);
      	/*
      	chr() 函数从指定 ASCII 值返回字符。
      	ASCII 值可被指定为十进制值、八进制值或十六进制值。八进制值被定义为带前置 0,十六进制值被定义为带前置 0x。*/
      	$data1 .=chr(($dd+128)-$od);	//第一中可能,余数+128-key 为回归数
      	$data2 .=chr($dd-$od);			//第二种可能,余数直接-key 为回归数
      }
      print "data1 => ".$data1."<br>\n";
      print "data2 => ".$data2."<br>\n";
      }
      $str = "fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=";		//密文
      decrypt($str);	//调用解密函数进行解密
      
      ?>
    
  • 某 CMS 密码加密解密

    MD5+salt 
    	#注意大部分网站的数据库里的密码都是通过MD5加盐值的算法,单独解密MD5是解不出来,必须加盐
    eg. 
    #部分 CMS 密码加密形式-wp,dz 等
    	#DiscuzX wordpress phpcms zblok等等cms采用
    
  • 某 URL 加密地址的漏洞测试

    AES+Base64+自定义
    #观察参数值加密字符串,下载源代码分析,函数定义 AES 加密,涉及模式 CBC,128 位,加密密码,偏移
    量,两次 base64 减去常规一次,填充模式。(_mozhe)
    ZUlJOGMzSmVMMHQwZHhNN3diM056Zz09
    eII8c3JeL0t0dxM7wb3Nzg==
    #注意URL加密之后对应的参数都要加密跟原有的一样形式,网站才能成功执行解密
    
  • 某实际应用 URL 地址参数加密

    搜素特定关键字加密字符串
    eg. inurl:id=MQ==		MQ== base64 加密	在尝试进行注入时应以同种加密类型方式写
    #eg.
    1.先猜测URL链接加密方式,常规的话就进行解密
    https://www.inkomet.com/detail.php?id=MQ== 		MQ==  进行了base64加密
    2.解密之后 1 ,通过 将原有字符和新的字符拼接加密之后放进URL中测试,才能与网站正常通讯
    MQ== 		base64解密	1
    1 and 1=1 	base64加密  	 MSBhbmQgMT0x
    3.再次测试网站
    https://www.inkomet.com/detail.php?id=MSBhbmQgMT0x
    返回正常
    
涉及资源

md5在线解密破解,md5解密加密 (cmd5.com)

Base64 在线编码解码 | Base64 加密解密 - Base64.us

ASCII 在线转换器 ,ASCII码,ASCII 转码—在线工具 (sojson.com)

在线AES加密解密、AES在线加密解密、AES encryption and decryption–查错网 (chacuo.net)

decrypt - Bugku CTF

Releases · 7kbstorm/7kbscan-WebPathBrute (github.com)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值