php命令执行函数 preg_match的/e模式文章 题目来自buu-BJDCTF2020_January preg_match(pattern, 替换成的字符串, str)当pattern中采用了/ / ..e模式时,每当str中匹配到pattern,就会把参数2当做代码执行。 参数2可控 —> 直接执行命令 参数2固定格式,如 12345678910111213funct 2025-05-30 php
vscode调试thinkphp项目 教训与启发有的时候做一件事就不能为了快速到达目的而盲目的横冲直撞 做了一个ctfshow西瓜杯tpdoor的题目,是thinkphp框架, 想要调试一下, 于是下载了xdebug, 但是怎么也调试不了, 然后直接照着别人的浏览器一个一个的试(现在想起来感觉好愚蠢),试到头晕眼花也没搞成. 从图书馆会宿舍的路上静下心来想了想, 把事情梳理了一遍, 觉得如果先学习一下xdebug调试php代码的原理说 2025-03-20 windows
反向shell 提供一个面向用户的命令接口 各种反向shell生成:https://www.revshells.com/ 核心目的是让目标系统(服务端)上的bash shell与攻击者控制的服务器(攻击端)建立一个连接,并且将目标系统上的命令执行结果(标准输出和标准错误)发送给攻击者,同时将攻击者的输入(通过同一个连接)作为目标系统的命令输入。 典型bash反向shell 在攻击者端运行 1nc -lvvp 2025-03-08
flask debug模式 通过报错回显当可以命令执行,但是无回显且机器不出网时,可以通过报错回显。以一个pickle反序列化的题目为例 12345class Email():email = "admin@admin.com"def __reduce__(self): return (exec,("raise Exception(__import__('os').pop 2025-01-20 flask
SSTI模版注入 另外,bottle 可以直接通过 % python—code 或 <% %>执行, 但无回显,可以反弹shell或者打内存马通过abort可以直接回显 1%__import__('bottle').abort(404,__import__(%27os%27).popen('env').read()) bottle文档 bottle模板注入以及 2025-01-20 SSTI
jwt伪造 jwt的构成xxx.xxx.xxx第一部分标示算法等,第二部分是信息,二者均用base64编码第三部分是签名(用第一部分的算法和私钥) 攻击手法 未签名 所有的jwt都合法,任意修改数据 允许使用none进行签名 把第一部分的算法改成none, 再丢弃最后的签名,随意篡改第二部分的信息 弱密钥 python jwt_tool.py "<JWT>" -C - 2025-01-20 jwt
XXE 参考文章xml、xpath注入 xml注入参考xss注入 xpath注入参考sql注入 xxe (xml外部实体引用)有回显情况12345678910111213$xmlfile=file_get_contents('php://input')$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | L 2025-01-20 XXE