Ctfshow基础二刷(1)

简介: Ctfshow基础二刷(1)

文件包含


web78:


这题一眼顶针了


web79


看下代码

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

有个简单替换,把php替换成了???


凭借我的🐖脑子,还是想用filter协议去读,结果被替换读不出来


正常思路:


用data协议读,这样可以使得flag.php被base64编码从而绕过,不过那个base64被叫成是什么过滤器还是什么筛选器,当初看到时候感觉挺形象的。

?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs=


web80


这题不放代码了,就是在上一题的基础上把data协议ban了


坦白说,我不会,看的答案,日志包含

?file=/var/log/nginx/access.log

本来以为和上一题是一路货色,结果传了之后发现出不来。


看了看别的师傅的WP,在UA加了一句话Mua。


Postman跑一下,赏心悦目:

直接把原UA关掉重写一个

body直接传参,先ls,看到fl0g.php

竞争环境要等晚上11:30之后才开,我是懒狗


PHP特性


web89


if(isset($_GET['num'])){
    $num = $_GET['num'];
    if(preg_match("/[0-9]/", $num)){
        die("no no no!");
    }
    if(intval($num)){
        echo $flag;
    }
}

直接传数组?num[]=


原理数组绕过,具体我不太明白,看了别的师傅的WP

看懂了,intval() 函数会对num进行转换,如果num是个数组的话,会导致转换失败。


转换失败即转为1.if(1)执行输出flag


web90


这题禁止传4476,但想出flag还得要4476


直接浮点数走了

当然截断也行.

整乐了


web91


show_source(__FILE__);
include('flag.php');
$a=$_GET['cmd'];
if(preg_match('/^php$/im', $a)){
    if(preg_match('/^php$/i', $a)){
        echo 'hacker';
    }
    else{
        echo $flag;
    }
}
else{
    echo 'nonononono';
} 

这题和前面不太一样,两个正则表达式全都要求开头为php


但要保证能过第一个不过第二个


还得读flag.php


那php咋开头捏


截断一下直接传


web92


这题也是,第一个If不能走,走第二个,差别在于intval函数


直接16进制绕过


web93


这题加了个判断,不让传字母,也就是把16进制ban了,那就传8进制


web94


这题第二个nonono绕过的要求是num第一位不能是0,相当于是把进制转换堵死了。


小数点试试


web95


这个。。第一个if不让传4476,第二个进制字母+点,第三个堵死进制


没办法了呜呜呜。超超


web96


这题有点迷


官方给的解释是

?u=./flag.php
or
?u=php://filter/convert.base64-encode/resource=flag.php

还是喜欢伪协议


web97


这题第一眼看见的时候还以为是md5碰撞,跑了一下发现不对,是===


那就只能数组绕过了

目录
相关文章
|
8月前
|
PHP
从零开始的ctfshow生活
在攻防世界难度1的Web挑战中,首先遇到的是一个简单的PHP问题。通过阅读代码,发现需通过GET参数a和b进入,其中a须
|
安全 Shell PHP
ctfshow原谅杯
ctfshow原谅杯
159 0
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十五题-定位-fixed-广告
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十五题-定位-fixed-广告
92 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十五题-定位-fixed-广告
|
存储 前端开发 JavaScript
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十题-高频数据类型
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十题-高频数据类型
100 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十题-高频数据类型
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十一题-absolute-评注
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十一题-absolute-评注
69 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十一题-absolute-评注
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十四题-修改this指向
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十四题-修改this指向
74 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十四题-修改this指向
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十三题-定位-relative
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十三题-定位-relative
89 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十三题-定位-relative
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十题-absolute
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十题-absolute
65 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十题-absolute
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十二题-定位-z-index
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十二题-定位-z-index
76 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十二题-定位-z-index

热门文章

最新文章