春秋CVE刷题学习
CVE-2022-25578#RCE CVE-2022-25578是Taocms v3.0.2中存在的一个安全漏洞,该漏洞允许攻击者通过任意编辑.htaccess文件来执行代码注入攻击。 TaocmstaoCMS是一个完善支持多数据库(Sqlite/Mysql)的CMS网站内容管理系统,是国内最小的功能完善 的基于php+SQLite/Mysql的CMS。体积小(仅180Kb)速度快,包含文件管理、数据采集、Memcache整 合、用户管理等强大功能,跨平台运行,支持SAE、BAE云服务。兼容PHP5和PHP7.代码手写采用严格的数据过滤,保证 服务器的安全稳定! 打开靶机 提示先去后台设置,在底下发现管理按键,打开是登录界面,弱口令密码admin&tao成功登录 在文件管理页面拿到路径的文件及其文件内容,我们进入.htaccess文件 .htaccess文件参考文章:与 .htaccess 相关的奇淫技巧 .htaccess...
ctfshow新春欢乐赛
热身 这个确实是热身,一开始以为直接找flag就行,但是没找到,后面查看了一下phpinfo找到了一个路径 auto_prepend_file 是 PHP 的一个配置选项,用于指定在每个 PHP 脚本执行之前自动包含的文件。 这个文件路径看着比较可疑,所以我去读取了一下,果然是有flag的 web1 #死亡exit()绕过意思就是我们无论写入什么都会因为插入一句exit()去强制结束运行 需要绕过exit()的地方一般都是file_put_contents 主要思路:利用php伪协议的写过滤器,对即将要写的内容(content)进行处理后,会将<?php exit();处理成php无法解析的内容,而我们的content则会被处理成正常的payload。 大致有如下三种 123file_put_contents($filename,"<?php exit();".$content);file_put_contents($content,"<?php...
web入门SSTI篇--ctfshow
web361#jinja2的ssti 既然知道了漏洞是什么,那首先就是要去找到注入点 但是在页面源代码和抓包里也没找到什么,扫目录也啥都没有 根据hello猜测参数可能是name或者id,测试后发现是name参数 测一下ssti漏洞 传入{{10*10}}出现100,初步判断存在ssti注入漏洞,接下来就是去拿类然后进行注入了 12345678第一步,拿到当前类,也就是用__class__{{"".__class__}}<class 'str'>第二步,拿到基类,这里可以用__base__,也可以用__mro__{{"".__class__.__base__}}<class...
启航杯wp
0x01前言webEasy_include第一个题目的话就是简单的php代码审计题,include函数包含,用input伪协议去做就可以绕过对参数的flag过滤问题了 Web_IP第二个问题看了一下发现ip那里是可控的,一开始没找到注入点,后面发现是在X-Forwarded-For里的ssti,传入{8*8}有回显64,确实存在ssti,然后传system命令执行就可以了 Web_pop123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657<?phperror_reporting(0);highlight_file(__FILE__);class Start{ public $name; protected $func; public function __destruct() { echo "Welcome to QHCTF 2025,...
RCE之无回显rce
0x01前言刚好做到一个湘岚杯的题目是跟无回显rce有关的,就写篇文章去深入学习一下这个知识点 在我们做题的时候或者是测试的时候,通常会有命令执行后没有回显的情况,页面不会返回我们执行的结果,而我们也不知道命令是否执行成功,这时候就是讲到我们的无回显RCE了 0x02正文没有回显加上命令执行的话很容易就能想到反弹shell,这也是其中的一个方法之一 反弹shell参考文章...
湘岚杯XL::CTF浮现web(已做完)
0x01前言没报名,但是后面发现这个比赛的赛题挺好玩的,就浮现玩一下 0x02赛题大道轮回12345678910111213141516171819202122232425262728293031323334<?phpsession_start();/*跳出轮回的真谛开头是:XNCTF*/show_source(__FILE__);error_reporting(0);if (isset($_GET['sha256']) && isset($_GET['cmd'])) { $sha256 = $_GET['sha256']; $cmd = $_GET['cmd']; if (substr(sha256($sha256), 0, 6) === '647d99') { echo "踏平坎坷成大道,斗罢艰险又出发"; if...
ctfshowAK赛
签到_观己123456789101112131415<?phpif(isset($_GET['file'])){ $file = $_GET['file']; if(preg_match('/php/i', $file)){ die('error'); }else{ include($file); }}else{ highlight_file(__FILE__);}?> include文件包含,allow_url_include没有开启没有办法用伪协议,我们用日志注入,先看一下服务器版本 对于Ngnix,日志存放路径:/var/log/nginx/access.log 和...
php函数知识点积累
0x01前言做一期函数的知识点积累,方便忘记的时候查阅 0x02正文preg_replace()函数(PHP 4, PHP 5, PHP 7, PHP 8) preg_replace — 执行一个正则表达式的搜索和替换 基础语法 1234567preg_replace( string|array $pattern, string|array $replacement, string|array $subject, int $limit = -1, int &$count = null): string|array|null 参数说明 参数 描述 $pattern 要搜索的正则表达式模式 $replacement 替换字符串或回调函数 $subject 要搜索替换的目标字符串或数组 $limit 可选,最大替换次数 $count 可选,填充实际替换次数的变量 返回值 如果 subject 是一个数组,preg_replace() 返回一个数组,其他情况下返回一个字符串。 发生错误时返回...
ctfshow36D练手赛+36D杯
36D练手赛+36D杯不知所措.jpg 传入file参数且file参数必须有test 那我们先试一下是get传参还是post传参吧 /?file=test 确定是GET传参了,不过我们传入的参数和php进行拼接了,我本来是试着去读flag的,但是没读出来 试试index看看能不能读到源代码,然后也是成功读到了index.php文件的源码,我们拿去解码一下 123456789101112<?phperror_reporting(0);$file=$_GET['file'];$file=$file.'php';echo $file."<br />";if(preg_match('/test/is',$file)){ include ($file);}else{ echo '$file must has...
基础知识
基础知识积累ASCII 设备控制字符ASCII 控制字符(00-31,加上 127)最初被设计用来控制诸如打印机和磁带驱动器之类的硬件设备。 控制字符(除了水平制表符、换行、回车之外)在 HTML 文档中不起任何作用。 字符 编号 描述 NUL 00 空字符(null character) SOH 01 标题开始(start of header) STX 02 正文开始(start of text) ETX 03 正文结束(end of text) EOT 04 传输结束(end of transmission) ENQ 05 请求(enquiry) ACK 06 收到通知/响应(acknowledge) BEL 07 响铃(bell) BS 08 退格(backspace) HT 09 水平制表符(horizontal tab) LF 10 换行(line feed) VT 11 垂直制表符(vertical tab) FF 12 换页(form feed) CR 13 回车(carriage...