攻防世界Web高手区总结

1.baby_web

试了一下 无论输入什么都会跳转到 /i.php 所以应该是redirect了
抓包
在这里插入图片描述
之前在做ctfhub时也有一题重定向

于是用bp再抓一下
在这里插入图片描述
发现flag (其实直接用浏览器抓也有 , 眼瞎没看见。。。。。。。。。。

2.Training-WWW-Robots

在这里插入图片描述
可以看到 题目想让我们学习一下Robots exclusion standard 那我们就学呗
但我们好像得翻墙
所以 直接解题算了

在这里插入图片描述
随便访问一下robot.txt (好像做过一道robots题

翻译一下
对于所有User-agent 不能访问/flog.php
对于Yandex 啥都可以访问
那么 哈哈 我们只需要将User-agent伪造一下 不就ok了

但是
在这里插入图片描述

emmm。。。问题出在哪里呢。。

当我百思不得其姐的时候 我复制了一下/flog.php
再看时 气的一口老血喷出来 这(**)是/fl0g.php ********
在这里插入图片描述

血的教训:能复制 绝不手打!!!

3.Web_php_include

上来就给了一段源码
分析一下
在这里插入图片描述
先看一下show_source 好像并没有什么用
在这里插入图片描述

再看下strstr
在这里插入图片描述

反正就判断"php://" 在$page中存不存在
若存在就把"php://" 换掉 然后把 $page include一下

而且我们都知道:
在 PHP 中,预定义的 $_GET 变量用于收集来自 method=“get” 的表单中的值。
很不安全

可以下手了
emmmm。。。是不是要搞个一句话木马进去呢。。。
我觉得可以

还有没有更直接的方法。。。

参考了一下:
php://input是什么?

php://input 是个可以访问请求的原始数据的只读流。当请求方式是post,并且Content-Type不等于”multipart/form-data”时,可以使用php://input来获取原始请求的数据。

但是 会过滤掉"php://" 看网上说可以通过大小写绕过
试一下
在这里插入图片描述
在这里插入图片描述

4.NaNNaNNaNNaN-Batman

可以把源代码alert一下 发现源码 扔到控制台执行就ok了

5.NewsCenter

既然是搜索 那么这题应该是考察的sql输入问题
先随便试一下 发现输入1 ’ and 1 = 2 的时候 会报500 错误
一般是 where id = $GET(“id”)

用bp扫描一下果然发现猫腻 存在sql注入
在这里插入图片描述

用bp自带的sql注入语句 全部用了一边 结果如下:
在这里插入图片描述

用#可以注释掉 ’
发现只有order by 3 时有用
在这里插入图片描述
当用 order by 4# 时会报500错误

接下来试一下 union select 1,2,3
在这里插入图片描述
发现会返回 2,3
根据书上写的。。。2:3 意思为2 和 3 的位置可以输入MySQL语句
尝试再2的位置查询当前数据库名(使用database()函数)
神奇的东西出现了
在这里插入图片描述

得知了数据库库名后,接下来查询表名
直接查询所有表名
在这里插入图片描述
-1’ union select 1,column_type,column_name from information_schema.columns where table_name = ‘secret_table’ #
在这里插入图片描述

在这里插入图片描述

6.web2

题目描述:解密 。。。。
解密,解密,解密。。。。。。。。。。。。。
尽管一窍不通 还是得硬着头皮上

PHP strrev() 函数 : 反转函数

试着反过来解密

<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
function decode($miwen){
   $str= str_rot13(strrev(base64_decode($miwen)));
    for($a=0;$a<strlen($str);$a++){
        $c = substr($str,$a,1);
        $d = ord($c) -1;
        $e = chr($d);
        $f = $f.$e;

    }

    return strrev("$f");


}

echo decode($miwen);

写完后 感觉没什么问题 结果到最后死活不对。。。
最后发现顺序搞反了。。。
应该是从里到外解密

错误!!!

$str= str_rot13(strrev(base64_decode($miwen)));

正确!!!

$str = base64_decode(strrev(str_rot13($miwen)));

还总结出了个技巧 把难懂的字符替换成易懂的字符!!!

warmup

在这里插入图片描述
从html找到source.php的提示
进入source.php 发现需要满足一系列要求

mb_substr():
在这里插入图片描述
mb_strpos():
在这里插入图片描述
in_array:
在这里插入图片描述

分析一下

<?php
    highlight_file(__FILE__);
    class emmm
    {
        public static function checkFile(&$page)
        {
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
            if (! isset($page) || !is_string($page)) {
                echo "you can't see it";
                return false;
            }

            if (in_array($page, $whitelist)) {
                return true;
            }

            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }

            $_page = urldecode($page);
            $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }
            echo "you can't see it";
            return false;
        }
    }

    if (! empty($_REQUEST['file'])
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
        echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    }  
?>

怎么才能绕过呢?

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值