当前位置: 首页 > news >正文

公司企业文化墙设计方案关键词网站优化平台

公司企业文化墙设计方案,关键词网站优化平台,iis 网站访问权限设置,电子商务平台的特点进入靶场 都点击看看 发现点击work会增加#xffe5; 但肯定不能一直点下去 抓包看看 这看起来是一个 JWT#xff08;JSON Web Token#xff09;字符串。JWT 通常由三部分组成#xff0c;通过点#xff08;.#xff09;分隔#xff0c;分别是头部#xff08;Header 但肯定不能一直点下去 抓包看看 这看起来是一个 JWTJSON Web Token字符串。JWT 通常由三部分组成通过点.分隔分别是头部Header、载荷Payload和签名Signature。 头部解析 经过 Base64 解码注意这里的 Base64 解码是 URL 安全的 Base64 变体eyJhbGciOiJIUzI1NiJ9 得到 {alg:HS256}表示使用的签名算法是 HMAC SHA256。 载荷解析 对 eyJ1aWQiOiIxYTQxZTY3OC1kOGYyLTQxMDItYWRkOS1iMDM0M2ZmNzQ3M2UiLCJqa2wiOjQ5fQ 进行 Base64 解码得到 {uid:1a41e678 - d8f2 - 4102 - add9 - b0343ff7473e,jk:49}。这里的 uid 可能是用户唯一标识符jk 的含义则取决于应用程序的定义。 签名部分 6QOmMhmKuPRJIDOlJzZ2AGXr8zXN6mjUh8TNk7nDOMM 是签名部分它是通过使用头部中指定的算法HS256结合一个密钥只有服务器端知道对头部和载荷进行签名计算得出的。其目的是验证消息在传输过程中没有被更改并且在使用私钥签名的情况下还可以验证 JWT 的发送者的身份。 综上我们可以尝试修改jk的值 import jwtjwt_str eyJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiIxYTQxZTY3OC1kOGYyLTQxMDItYWRkOS1iMDM0M2ZmNzQ3M2UiLCJqa2wiOjQ5fQ.6QOmMhmKuPRJIDOlJzZ2AGXr8zXN6mjUh8TNk7nDOMM try:# 解码JWTdecoded jwt.decode(jwt_str, options{verify_signature: False})# 修改jk值decoded[jk] 1000000000000000000000000000# 重新编码JWTnew_jwt jwt.encode(decoded, secret_key, algorithmHS256)print(new_jwt) except jwt.exceptions.InvalidTokenError as e:print(f解码错误: {e}) eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiIxYTQxZTY3OC1kOGYyLTQxMDItYWRkOS1iMDM0M2ZmNzQ3M2UiLCJqa2wiOjQ5LCJqayI6MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMH0.uEaleEDczqr1mtKN1aoq4uLX6M5IxhtT20FN9tNNOc8 不对 可能只改这块不行 看看还有没有信息 # 引入Sinatra框架用于构建Web应用 require sinatra # 引入Sinatra的cookies扩展用于处理HTTP Cookie require sinatra/cookies # 引入Sinatra的JSON扩展用于方便地返回JSON响应 require sinatra/json # 引入JWT库用于处理JSON Web Tokens require jwt # 引入SecureRandom库用于生成安全的随机数和UUID require securerandom # 引入ERB库用于处理嵌入式Ruby模板 require erb# 设置静态文件的存放目录这里指定为当前文件所在目录下的static文件夹 set :public_folder, File.dirname(__FILE__) /static# 定义购买FLAG所需的jkl价格 FLAGPRICE 1000000000000000000000000000 # 生成一个64字节的随机十六进制字符串作为JWT的密钥并存储在环境变量中 ENV[SECRET] SecureRandom.hex(64)# 配置应用的设置 configure do# 启用日志记录enable :logging# 打开一个日志文件用于记录HTTP请求信息file File.new(File.dirname(__FILE__) /../log/http.log,a)# 确保日志文件的写入是同步的即写入操作立即生效file.sync true# 使用Rack的CommonLogger中间件将日志记录到指定的文件中use Rack::CommonLogger, file end# 处理根路径的GET请求重定向到/shop路径 get / doredirect /shop, 302 end# 处理/filebak路径的GET请求将当前文件的内容作为文本返回 get /filebak docontent_type :text# 使用ERB渲染当前文件的内容erb IO.binread __FILE__ end# 处理/api/auth路径的GET请求生成一个JWT并将其存储在Cookie中 get /api/auth do# 定义JWT的负载包含一个随机生成的UUID和初始jkl值payload { uid: SecureRandom.uuid , jkl: 20}# 使用HS256算法和环境变量中的密钥对负载进行编码生成JWTauth JWT.encode payload,ENV[SECRET] , HS256# 将生成的JWT存储在Cookie中cookies[:auth] auth end# 处理/api/info路径的GET请求从Cookie中获取JWT并返回用户信息 get /api/info do# 调用islogin方法检查用户是否已登录islogin# 从Cookie中获取JWT并使用环境变量中的密钥进行解码auth JWT.decode cookies[:auth],ENV[SECRET] , true, { algorithm: HS256 }# 将用户信息uid和jkl以JSON格式返回json({uid: auth[0][uid],jkl: auth[0][jkl]}) end# 处理/shop路径的GET请求渲染shop.erb模板 get /shop doerb :shop end# 处理/work路径的GET请求处理用户工作相关的逻辑 get /work do# 调用islogin方法检查用户是否已登录islogin# 从Cookie中获取JWT并解码auth JWT.decode cookies[:auth],ENV[SECRET] , true, { algorithm: HS256 }# 获取解码后的负载auth auth[0]# 检查请求参数中是否包含SECRETunless params[:SECRET].nil?# 检查请求参数中的SECRET是否与环境变量中的SECRET匹配if ENV[SECRET].match(#{params[:SECRET].match(/[0-9a-z]/)})# 如果匹配打印FLAGputs ENV[FLAG]endend# 检查请求参数中的do是否符合特定格式if params[:do] #{params[:name][0,7]} is working then# 如果符合格式将用户的jkl值增加一个0到9之间的随机数auth[jkl] auth[jkl].to_i SecureRandom.random_number(10)# 重新对更新后的负载进行编码生成新的JWTauth JWT.encode auth,ENV[SECRET] , HS256# 将新的JWT存储在Cookie中cookies[:auth] auth# 弹出一个提示框告知用户工作成功ERB::new(scriptalert(#{params[:name][0,7]} working successfully!)/script).resultend end# 处理/shop路径的POST请求处理用户购买FLAG的逻辑 post /shop do# 调用islogin方法检查用户是否已登录islogin# 从Cookie中获取JWT并解码auth JWT.decode cookies[:auth],ENV[SECRET] , true, { algorithm: HS256 }# 检查用户的jkl值是否足够购买FLAGif auth[0][jkl] FLAGPRICE then# 如果不足返回一个包含错误信息的JSON响应json({title: error,message: no enough jkl})else# 如果足够将FLAG信息添加到负载中auth {flag: ENV[FLAG]}# 重新对更新后的负载进行编码生成新的JWTauth JWT.encode auth,ENV[SECRET] , HS256# 将新的JWT存储在Cookie中cookies[:auth] auth# 返回一个包含成功信息的JSON响应json({title: success,message: jkl is good thing})end end# 定义一个辅助方法用于检查用户是否已登录 def islogin# 检查Cookie中是否包含auth字段if cookies[:auth].nil? then# 如果不包含重定向到/shop路径redirect to(/shop)end end 得到了密钥 用下下面的这个工具 https://jwt.io/
http://www.w-s-a.com/news/840399/

相关文章:

  • 做外贸要自己建网站吗有效的网络营销方式
  • 精通网站开发书籍做网站获取手机号码
  • 论坛做视频网站有哪些济南新站seo外包
  • 哪类型网站容易做冷水滩做微网站
  • 搭建企业网站流程保定徐水网站建设
  • 建设单位到江川区住房和城乡建设局网站伦敦 wordpress 设计
  • 响应式网站的服务麦德龙网站建设目标
  • 做国外单的网站叫什么海南省海口市网站建设
  • 杭州响应式网站案例wordpress5.2.2
  • 网站建设运营维护合同wordpress资源搜索插件
  • 国外网站流量查询东莞网站建设教程
  • 餐饮类网站建设达到的作用东莞工程建设交易中心网
  • 网站设计 知识产权湖北网站建设xiduyun
  • 猫咪网站模版下载中国风 古典 红色 网站源代码
  • 个人网站备案模板制作网站首页
  • 潍坊正规建设网站网站建设设计作业
  • 推荐一下网站谢谢辽宁住房城乡建设部官方网站
  • 网站文件大小英选 网站开发
  • 济南建网站哪家好wordpress编辑器排行
  • 在福州做搬家网站多少钱画册设计网站有哪些
  • 如何让别人浏览我做的网站哪些方法可以建设网站
  • 网站建设与管理网络推广的优点
  • 美食网站的设计与制作做网站的电销话术
  • 中国档案网站建设现状研究陕西建设厅执业资格注册中心网站
  • 网站建设的内容管理怎么用ps切片在dw里做网站
  • 建设婚恋网站用什么搭建涿州网站开发
  • 做知识内容的网站与app哈尔滨哪里有做网站的
  • 青岛企业网站建站模板百度网站建设推广
  • 做360网站中保存的图片存在哪里个人建立网站要多少钱
  • 网站安装部署无锡做网站的公司