【小迪安全】web安全|渗透测试|网络安全 | 学习笔记-7

【小迪安全】web安全|渗透测试|网络安全 | 学习笔记-7,第1张

【小迪安全】web安全|渗透测试|网络安全 | 学习笔记-7

目录
  • 第40天:JAVA安全-JWT安全及预编译CASE注入等
  • 第41天:JAVA安全-目录遍历访问控制XSS等安全问题
  • 第42天:漏洞发现- *** 作系统之漏洞探针类型利用修复
  • 第43天:漏洞发现-WEB应用之漏洞探针类型利用修复
  • 第44天:漏洞发现-APP应用之漏洞探针类型利用修复
  • 第45天:漏洞发现-API接口服务之漏洞探针类型利用修复

第40天:JAVA安全-JWT安全及预编译CASE注入等




通过前期的WEB漏洞的学习,掌握了大部分的安全漏洞的原理及利用,但在各种脚本语言开发环境的差异下,会存在新的安全问题,其中脚本语言类型PHP,Java,Python等主流开发框架会有所差异。

什么是JWT

JSON Web Token(JSON Web 令牌)是一种跨域验证身份的方案。JWT不加密传输的数据,但能够通过加密的数字签名来验证数据是否被篡改。

JWT分为三部分,头部(Header),声明(Claims),签名(Signature),三个部分以英文句号“.”隔开。JWT的内容以base64URL进行编码。

头部(Header)

{

"alg":"HS256",

"typ":"JWT"

}

“alg”是该JWT的签名使用的算法参数,常见值用HS256(默认),HS512等,也可以为None。

“typ”是该token的类型,值为“JWT”

声明(Claims)

存放有效信息的地方。这些有效信息包含三个部分:标准中注册的声明、公共的声明、私有的声明。

标准中注册的声明 (建议但不强制使用) :

iss:JWT签发者

sub:JWT所面向的用户

aud:接收JWT的一方

exp:JWT的过期时间,这个过期时间必须要大于签发时间

nbf:定义在什么时间之前,该JWT都是不可用的

iat:JWT的签发时间

jti:JWT的唯一身份标识,主要用来作为一次性token,从而回避重放攻击

公共的声明 :

公共的声明可以添加任何的信息,一般添加用户的相关信息或其他业务需要的必要信息。但不建议添加敏感信息,因为该部分在客户端可解密。

私有的声明 :

私有声明是提供者和消费者所共同定义的声明,一般不建议存放敏感信息,因为base64是对称解密的,意味着该部分信息可以归类为明文信息。

签名(Signature)

用头部中指定的算法对base64加密后的头部和base64加密后的声明用此密码进行加盐加密,生成的字符串就是JWT的签名。

JWT颁发流程

1、用户端登录,用户名和密码在请求中被发往服务器

2、(确认登录信息正确后)服务器生成JSON头部和声明,将登录信息写入JSON的声明中(通常不应写入密码,因为JWT是不加密的),并用secret用指定算法进行加密,生成该用户的JWT。此时,服务器并没有保存登录状态信息。

3、服务器将JWT(通过响应)返回给客户端

4、用户下次会话时,客户端会自动将JWT写在HTTP请求头部的Authorization字段中

5、服务器对JWT进行验证,若验证成功,则确认此用户的登录状态

6、服务器返回响应


SQL Injection(mitigation)

sql注入的防御,主要依靠以下方法session,参数绑定,存储过程。

session

session储存在服务器端,其内容正常情况下是用户无法修改的

**参数绑定,**利用sql预编译技术

数据库在完成SQL指令的编译后,才套用参数运行。参数化查询可以阻止大部分的SQL注入。

可以通过使用“case when”语句将“order by”后的“orderexpression”表达式中添加select语句。

如果被攻击的应用有涉及排序 *** 作的话,就可以断定有“order by” *** 作,可以尝试该方法

演示案例知识点
JWT无密钥伪造攻击

将头部的“alg”改为“None”,按需要修改声明中的内容,声明中有“secretid”则改为“[]”,删掉签名的内容

JWT密钥爆破攻击

带入头部和声明,看用哪个盐“secret”时加密结果会与签名相等

其他

加密是用的是base64URL,与一般的base64相比就是把字符“+”和“/”分别变成“-”和“_”,末尾的“=”号去掉

确保JWT有效,可以改时间戳

JWT一般是用在请求头里的Authorization,并加上Bearer标注:

'Authorization': 'Bearer ' + token

JWT还会传递数据,可能会导致其他漏洞

涉及资源:

解码、验证和生成JWT:https://jwt.io/#encoded-jwt

CTFHub-历年真题:https://www.ctfhub.com/#/challenge

数据库预编译为何能防止SQL注入?:https://www.zhihu.com/question/43581628

Java代码审计入门:WebGoat8(再会):https://www.freebuf.com/vuls/216457.html

JDBC编程之预编译SQL与防注入:https://www.cnblogs.com/klyjb/p/11473857.html

第41天:JAVA安全-目录遍历访问控制XSS等安全问题

本次课程注重代码分析,熟悉javaweb开发结构,掌握javaweb代码审计流程,
其次才是相关漏洞解释(因前期漏洞原理已基本讲解完毕),通过本次课程务必学会分析相关代码路径,结构,框架等知识点。

代码分析(Java代码分析=== Apk_App分析)

模块引用(框架,自带等),路由地址,静态文件(html.js 等),简易代码理解等

通过“import”部分,了解代码有哪些引用,分清自带和框架

按“ctrl”点击跳转到引用部分

类似于“@XxxXx”的是接收数据的,后面括号内就是接受的变量名,如:“@RequestParam(“uploadFile”) MultiparFile file”意为接收一个名为“uploadFile”的变量的值,类型为“MultiparFile”变量为“file”

“fullName.replace(“…/”,””)”的意思是将“…/”替换为空

“.jar”是编译型文件;“html”是静态文件,网站显示的界面;“js”是加载Javascript代码的文件

如果文件是前端验证,那么代码会在html中,或者html中加载的js文件里

如果是前端调用的js代码,会有如“th:src=”@{/lesson_js/credentials.js}”的声明,有如“javascript:submit_secret_credentials()”的调用

代码中有“String[] xxx = xxx.split(“/”)”,意为该字符串由“/”分割,具体分隔符看引号内符号是什么。

第42天:漏洞发现- *** 作系统之漏洞探针类型利用修复


系统漏洞发现意义?

由于应用是基于服务器的,如果 *** 作系统本身有漏洞,就不需要针对特定的应用寻找漏洞

漏洞类型危害情况?

对漏洞分类可以帮助了解漏洞的危害、效果和利用漏洞的前期条件,从而在需要的到达某些效果时可以找到对应的漏洞

如何做好未卜先知?

需要大量的经验和实战案例

漏洞发现- *** 作系统之漏洞探针类型利用修复

**角色扮演:** *** 作系统权限的获取会造成服务器上的安全问题

**漏扫工具:**Goby,Nmap,Nessus,Openvas,Nexpose等

**漏洞类型:**权限提升,缓冲器溢出,远程代码执行,未知Bug等

**漏洞利用:**工具框架集成类,漏洞公布平台库类,复现文章参考等

**漏洞修复:**打上漏洞补丁,关闭对应入门点,加入防护软件硬件等

名词解释

EXP 利用;POC 验证

https://blog.csdn.net/qq_38055050/article/details/80214684

CVSS(Common Vulnerability Scoring System)

CVSS是安全内容自动化协议(SCAP)的一部分

通常CVSS与CVE一同由美国国家漏洞库(NVD)发布并保持数据的更新

分值范用:0—10

不同机构按CVSS分值定义威胁的中,高、低威胁级别

CVSS体现弱点的风险,威材级别(severity)表示弱点风险对企业的影向程度

CVSS分值是业标准,但威助级别不是

CVE(Common Vulnerabilities and Exposures)

己公开的信息安全漏洞字典,统一的漏洞编号标准

MITRE公司负责维护(非盈利机构)

扫描器的大部分扫描项都对应一个CVE编号

实现不同厂商之间信息交换的统一标准

CVE发布流程

发现漏洞

CAN负责指定CVE ID

发布到CVE List—CVE-2008-4250

漏洞扫描工具演示-Goby,Nmap,Nessus
Goby

用法:

点击“Scan”,在“IP/Domain”位置输入攻击目标,网段和IP地址都可以,在“Port”处选择扫描的端口,一般为默认

点击“Advanced”,可以单独选择扫描某个漏洞,编辑任务名

点击“Start”开始扫描

点击“Asset”查看整体扫描情况,有红色叹号提示代表高危漏洞,单击查看详细情况

优点:

可视化界面,比较快

缺点:

漏洞库没有其他软件全

Nmap

Nmap除了扫端口,也可以扫漏洞。这既可以通过官方插件,也可以通过第三方探针来完成

Nmap --script=vuln 默认nse插件

vulscan、vulners 第三方库探针

https://www.cnblogs.com/shwang/p/12623669.html

Nessus

Nessus 安装-使用-插件库加载扫描

安装nessus执行命令的时候一定要管理员运行执行

用法:

选择“新建扫描”“进阶扫描”,在“目标”一栏填入目标IP,根据需要调整其他设置

点击“▶”开始扫描,点击整条扫描记录了解扫描的实时动态

漏洞利用框架演示-metasploit,Searchsploit等
Searchsploit

https://www.jianshu.com/p/bd8213c53717

使用方法:

Searchsploit 关键词

选项:

-c, --case[Term] 执行区分大小写的搜索,缺省是对大小写不敏感。

-e, --exact [Term] 对exploit标题执行EXACT匹配(默认为AND)

-h, --help 在屏幕上显示帮助

-j, --json[Term] 以JSON格式显示结果

-m, --mirror [EDB-ID] 将一个漏洞利用镜像(副本)到当前工作目录,后面跟漏洞ID号

-o, --overflow [Term] Exploit标题被允许溢出其列

-p, --path[EDB-ID] 显示漏洞利用的完整路径(如果可能,还将路径复制到剪贴板),后面跟漏洞ID号

-t, --title[Term] 仅仅搜索漏洞标题(默认是标题和文件的路径)

-u, --update 检查并安装任何exploitdb软件包更新(deb或git)

-w, --www [Term] 显示Exploit-DB.com的URL而不是本地路径(在线搜索)

-x, --examine[EDB-ID] 使用$PAGER检查(副本)漏洞利用

–colour 在搜索结果中禁用颜色突出显示

–id 显示EDB-ID值而不是本地路径

–nmap[file.xml] 使用服务版本检查Nmap XML输出中的所有结果(例如:nmap -sV -oX file.xml)使用“-v”(详细)来尝试更多的组合

–exclude=“term” 从结果中删除值,通过使用“|”分隔多个值,例如:–exclude =”term1 | term2 | term3”

metasploit

使用方法:

通过msfconsole控制台来访问和使用metasploit

“search”加关键字搜索漏洞相关的信息

search 关键词

“use”加路径使用对应的功能模块

use 路径

“show options”查看配置属性

show options

“set”加参数名加参数值,设置参数

设置好全部参数后,“run”或“exploit”来执行参数

可以用“show targets”“set target 参数”来设定攻击目标

WSL (Windows Subsystem for Linux)Windows下的Linux子系统

涉及资源:

nmap:https://nmap.org

goby:https://cn.gobies.org

国家信息安全漏洞共享平台:https://www.cnvd.org.cn

知道创宇-洞悉漏洞:https://www.seebug.org

Exploit database:https://www.exploit-db.com

vulscan:https://github.com/scipag/vulscan

nmap-vulners:https://github.com/vulnersCom/nmap-vulners

Exploit database离线版:https://github.com/offensive-security/exploitdb

nmap 扩展漏洞扫描模块:https://www.cnblogs.com/shwang/p/12623669.html

Nessus:https://zh-cn.tenable.com/products/nessus

searchsploit使用攻略:https://www.jianshu.com/p/bd8213c53717

第43天:漏洞发现-WEB应用之漏洞探针类型利用修复


已知CMS

如常见的dedecms,discuz,wordpress等源码结构,这种一般采用非框架类开发,但也有少部分采用的是框架类开发。针对此类源码程序的安全检测,我们要利用公开的漏洞进行测试,如不存在可采用白盒代码审计自行挖掘。

开发框架

如常见的thinkphp,spring,flask等开发的源码程序,这种源码程序正常的安全测试思路:先获取对应的开发框架信息(名字、版本),再通过公开的框架类安全问题进行测试,如不存在可采用白盒代码审计自行挖掘。

未知CMS

如常见的企业或个人内部程序源码,也可以是某CMS二次开发的源码结构,针对此类的源码程序测试思路:能识别二次开发就按已知CMS思路进行,不能确定二次开发的话可以采用常规综合类扫描工具或脚本进行探针,也可以采用人工探针(功能点,参数,盲猜),同样在有源码的情况下也可以进行代码审计自行挖掘。

示例思路

尝试了解网站的CMS、开发框架->寻找对应CMS、开发框架的漏洞->漏洞验证

修改网址使网站报错,在报错页面中看是否有框架或CMS信息

wpscan

wpscan使用方法:wpscan --url 目标网址 --api token Token的值

使用wpscan需要申请一个免费的账号,使用API Token

代码审计过程,

以一个SQL注入为例

1.查看SQL命令执行的情况

2.找到其中存在的变量

3.查找对应页面的select语句,如果没有对应的语句,则查找包含文件。也可以用全局搜索

4.找到对应语句后,查找其中的变量是怎么来的

5.根据程序构造SQL语句

实 *** 演示过程

CMS识别,结果为DedeCMS

通过CMS收集信息,DedeCMS下有robots.txt,还有data/admin/ver.txt可以知道网站版本

寻找CMS的漏洞,未果

代码审计,困难

尝试后台弱口令,发现默认后台地址被改

搜索CMS爆后台路径的方法,获得.inc文件,找到后台地址

尝试弱口令,未果

nmap扫端口,nmap -sV www.xxx.com,发现开放了21、80、443、888、8888端口,怀疑使用了宝塔,未果

在某路径下发现备份文件

找到数据库配置文件,用Navicat连接,被宝塔阻拦

翻出以前的备份,找到数据库配置文件,用Navicat连接,成功

查看admin信息

涉及资源:

Vulhub:https://vulhub.org/

wpscan注册:https://wpvulndb.com/users/sign_up

wpscan:https://github.com/wpscanteam/wpscan

CMSScan:https://github.com/ajinabraham/CMSScan

墨者学院-WordPress插件漏洞分析溯源:https://www.mozhe.cn/bug/detail/S0JTL0F4RE1sY2hGdHdwcUJ6aUFCQT09bW96aGUmozhe

第44天:漏洞发现-APP应用之漏洞探针类型利用修复


思路说明:

反编译提取URL或抓包获取URL,进行WEB应用测试,如不存在或走其他协议的情况下,需采用网络接口抓包进行数据获取,转至其他协议安全测试!

app->WEB、app->其他、app->逆向

抓包工具WEB协议面使用说明
burpsuite抓包

burpsuite优点:在“HTTP history”记录历史数据包,且可以排序,点击空白处还可以筛选数据包;可以抓包还可以在线提交测试,可以做漏洞扫描

抓包前设置代理:在模拟器上将本机设为代理,注意不是127.0.0.1;在burpsuite上也添加对应的代理并勾选

使用需要抓包的app,产生大量数据包

数据包的“Host”数据以“http://”开头,可知其为HTTP数据包;“Params”处有对勾“√”说明该数据有参数,可以测试漏洞;“Extension”为文件类型,“Status”为状态码

将“Host”中的网址输入到浏览器,发现是网站,按照网站思路测试

Charles抓包

抓包前设置代理:“Proxy”“Proxy Settings…”填写HTTP代理的端口,然后选择“Proxy”“Windows Proxy”

使用需要抓包的app,产生大量数据包

Charles会将抓包产生的数据按网址分类,每次产生新数据时,对应的网址会有黄色高亮,注意排除调用接口

选择网址会显示有关的数据,有的能够显示网站的结构,有的只能显示抓取的数据包

将与app相关的网址输入到浏览器,无法访问,只有用手机的数据包才能访问

只能修改数据包来访问,如何做漏洞扫描:在扫描工具的设置里面修改扫描的http头部/被动扫描

抓包精灵抓包

打开软件,点击右上角的箭头

使用需要抓包的app,产生大量数据包

回到抓包精灵,数据包分条显示,内容包括app的图标和进程,点开有详细信息

抓包精灵只抓WEB协议

Fiddler与Charles用法类似

抓包工具非WEB协议面使用说明
wireshark抓包

选择要抓取的网络接口,由于手机模拟器使用的本机网络出口,所以这里抓取本机的网络出口,也就是“以太网”,显示的IP地址和本机的一致

软件左上方,红色方块表示暂停,蓝色鲨鱼鳍代表开始抓包,可以筛选

选择一条数据,下方会显示数据包的内容

安卓逆向便捷APK一键提取URL演示
漏了个大洞apk数据提取

将apk文件放在“apps”文件夹下

运行apkAnalyser.exe

程序会在“result”文件夹下创建以apk文件名命名的文件夹来存放反编译文件

文件夹中有“urls.txt”存放apk中涉及的网站,没有该文件则没有对应内容

建议逆向和抓包并用,综合获取的信息

利用Burp筛选及联动功能打出军体拳
xray联动burpsuite(awvs也可以)

burpsuite到“User options”“Connections”的“Upstream Proxy Servers”部分,添加一条代理规则:“Destination host”为“*”,意为转发一切内容,“Proxy host”为“127.0.0.1”,“Proxy port”填写一个未被占用的端口。别忘记勾选

在模拟器上将burpsuite设置为代理

管理员运行PowerShell,来到xray的文件夹,“.xray_windows_amd64.exe”

执行命令“.xray_windows_amd64.exe webscan --listen 127.0.0.1:端口号”来监听端口,端口号与前面一致

使用需要抓包的app,产生的数据因为代理会先发送到burpsuite,burpsuite再转发给xray

可以在xray再加参数,将扫描结果保存到本地

涉及资源:

xray与burp联动被动扫描:https://www.cnblogs.com/L0ading/p/12388928.html

Wireshark:https://www.wireshark.org

Charles:https://www.charlesproxy.com

NetWorkPacketCapture(抓包工具):https://github.com/huolizhuminh/NetWorkPacketCapture

第45天:漏洞发现-API接口服务之漏洞探针类型利用修复

信息收集最大化

从登记人、域名登记、特有信息入手,收集信息。其中域名信息要考虑二级域名不变,一、三级域名改变的情况,众测平台常出现这种情况。

扫描时不仅要进行域名扫描还要进行端口扫描,扫描每一个域名的每一个端口

弱口令爆破

Snetcracker(超级弱口令检查工具)、Hydra

端口服务类安全测试

根据前期信息收集针对目标端口服务类探针后进行的安全测试,主要涉及攻击方法:口令安全、WEB类漏洞、版本漏洞等,其中产生的危害可大可小。属于端口服务/第三方服务类安全测试面。一般在已知应用无思路的情况下选用的安全测试方案。

API接口-

WebService RESTful API

https://xz.aliyun.com/t/2412

根据应用自身的功能方向决定,安全测试目标需有API接口调用才能进行此类测试,主要涉及的安全问题:自身安全,配合WEB,业务逻辑等,其中产生的危害可大可小,属于应用API接口网络服务测试面,一般也是在存在接口调用的情况下的测试方案。

WSDL

WSDL(网络服务描述语言,Web Services Description Language)是一门基于XML的语言,用于描述Web Services以及如何对它们进行访问。

判断是否有API接口

从功能点判断

有无特定的漏洞关键字

API漏洞扫描

使用Acunetix扫描

漏洞关键字:

配合 shodan,fofa,zoomeye 搜索也不错哦~

inurl:jws?wsdl

inurl:asmx?wsdl

inurl:aspx?wsdl

inurl:ascx?wsdl

inurl:ashx?wsdl

inurl:dll?wsdl

inurl:exe?wsdl

inurl:php?wsdl

inurl:pl?wsdl

inurl:?wsdl

filetype:wsdl wsdl

http://testaspnet.vulnweb.com/acuservice/service.asmx?WSDL

端口常见漏洞
Web服务类

Tomcat --80/8080/8000

manager弱口令

put上传webshell

HTTP慢速攻击

ajr文件包含漏洞--CVE-2020-1938

Jboss --8080

后台弱口令

console后台部署war包

JAVA反序列化

远程代码执行

WebSphere --9080

后台弱口令

任意文件泄漏

JAVA反序列化

Weblogic --7001/7002

后台弱口令

console后台部署war包

SSRF

测试页面上传webshell

JAVA反序列化--CVE-2018-2628、CVE-2018-2893、CVE-2017-10271、CVE-2019-2725、CVE-2019-2729

Glassfish --8080/4848

暴力破解

任意文件读取

认证绕过

Jetty --8080

远程共享缓冲区溢出

Apache --80/8080

HTTP慢速攻击

解析漏洞

目录遍历

Apache Solr --8983

远程命令执行--CVE-2017-12629、CVE-2019-0193

IIS --80

put上传webshell

IIS解析漏洞

IIS提权

IIS远程代码执行--CVE-2017-7269

Resin --8080

目录遍历

远程文件读取

AXIS2 --8080

后台弱口令

Lutos --1352

后台弱口令

信息泄漏

跨站脚本攻击

Nginx --80/443

HTTP慢速攻击

解析漏洞

数据库类

MySQL --3306

弱口令

身份认证漏洞--CVE-2012-2122

拒绝服务攻击

phpmyadmin万能密码/弱口令

UDF/MOF提权

MsSQL --1433

弱口令

存储过程提取

Oracle --1521

弱口令

未经授权访问

Reids --6379

弱口令

未经授权访问

PostgreSQL --5432

弱口令

缓冲区溢出--CVE-2014-2669

MongoDB --27001

弱口令

未经授权访问

DB2 --5000

安全限制绕过进行未经授权 *** 作--CVE-2015-1922

Sysbase --5000/4100

弱口令

命令注入

Memcache --11211

未经授权访问

配置漏洞

ElasticSearch --9200/9300

未经授权访问

远程代码执行

文件办理

写入webshell

大数据类

Hadoop --50010

远程命令执行

Zookeeper --2181

未经授权访问

文件共享

FTP --21

弱口令

匿名访问

上传后门

远程溢出

跳转攻击

NFS --2049

未经授权访问

Samba --137

弱口令

未经授权访问

远程代码执行--CVE-2015-0240

LDAP --389

弱口令

注入

未经授权访问

远程访问

SSH --22

弱口令

28退格漏洞

OpenSSL漏洞

用户名枚举

Telent --23

弱口令

RDP --3389

弱口令

Shitf粘滞键后门

缓冲区溢出

MS12-020

CVE-2019-0708

VNC --5901

弱口令

认证口令绕过

拒绝服务攻击--CVE-2015-5239

权限提升--CVE-2013-6886

Pcanywhere --5632

拒绝服务攻击

权限提升

代码执行

X11 --6000

未授权访问--CVE-1999-0526

邮件服务

SMTP --25/465

弱口令

未经授权访问

邮件伪造

POP3 --110/995

弱口令

未经授权访问

IMAP --143/993

弱口令

任意文件读取

其他服务

DNS --53

DNS区域传输

DNS劫持

DNS欺骗

DNS缓存投毒

DNS隧道

DHCP --67/68

DHCP劫持

DHCP欺骗

SNMP --161

弱口令

Rlogin --512/513/514

rlogin登录

Rsync --873

未经授权访问

本地权限提升

Zabbix --8069

远程代码执行

RMI --1090/1099

JAVA反序列化

Docker --2375

未经授权访问

涉及资源:

API 接口渗透测试:https://xz.aliyun.com/t/2412

Acunetix的测试站点中的API接口:http://testaspnet.vulnweb.com/acuservice/service.asmx

soapui(接口测试,非安全必须):https://github.com/SmartBear/soapui

超级弱口令检查工具:https://github.com/shack2/SNETCracker

安全扫描工具Acunetix即AWVS_13.x系列破解版Linux & Windows:https://www.cnblogs.com/xyongsec/p/12370488.html

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5693277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存