自己做web题的文章整合(后续应该还会在更)


本来是想分知识点,分模块的,自己太废,还强迫症,这几个文章太短,看不下去!

[RoarCTF 2019]Easy Calc

首先了解一下题目Easy Calc的意思:
在这里插入图片描述
嗯…没啥用!

详解

没有思路之前就先访问一下源代码!可得!

<!--I've set up WAF to ensure security.-->
$('#calc').submit(function(){
        $.ajax({
            url:"calc.php?num="+encodeURIComponent($("#content").val()),
            type:'GET',
            success:function(data){
                $("#result").html(`<div class="alert alert-success">
            <strong>答案:</strong>${data}
            </div>`);
            },
            error:function(){
                alert("这啥?算不来!");
            }
        })
        return false;
    })

看不懂的东西先百度!<!--I've set up WAF to ensure security.-->
在这里插入图片描述
下一个问题,WAF是什么?

Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

详情可以了解一下这篇文章,Web应用防火墙WAF简介
首先上图的代码可以看出来是一个jsp代码

encodeURIComponent() 函数通过将一个,两个,三个或四个表示字符的 UTF-8 编码的转义序列替换某些字符的每个实例来编码 URI(对于由两个“代理”字符组成的字符而言,将仅是四个转义序列)。
JavaScript中val有两种用法,分别是:1、用于返回第一个匹配元素的value属性值,
语法为“$(selector).val()”;2、用于设置所有匹配元素的value属性值,
语法为“$(selector).val(value)”。

好像没有什么了,而后又在代码之中发现了calc.php,应该是个文本,访问一下!
在这里插入图片描述
这个很明显的看出来是一个php代码

error_reporting(0)可以屏蔽任何错误,包括Fatal error,
isset() 函数用于检测变量是否已设置并且非 NULL
show_source() 函数对文件进行语法高亮显示。
本函数是 highlight_file() 的别名。
foreach 循环用于遍历数组。
在PHP中,“foreach as”是一个循环语句,用于遍历数组,语法为“foreach($array as $value){要执行代码;}”,
每进行一次循环,当前数组元素的值就会被赋值给$value变量。

这里可用php中foreach as是什么意思这篇博客进行,进行参考。

preg_match() 按指定的正则表达式,在给定的字符串进行搜索,匹配到符合特征的部分取出

木有了,好像前面看的也…没啥用!
在这里插入图片描述
显示存在num参数,传参进行尝试,经过尝试发现,仅可传输数和运算符号。否则就会403在这里插入图片描述

重点

重点…重点就是我不会了,接下来主要借鉴了这个博客这个

PHP字符串解析特性绕过WAF

这牵扯到一个新的知识点php的解析规则利用PHP的字符串解析特性Bypass,这篇文章有很多方面的内容我还理解不了。
就这个题而言的话就是在num前加个空格绕过? num=phpinfo()
分隔线

scandir()列出目录和文件,var_dump()用于输出

scandir()函数返回指定目录中的文件和目录的数组。
scandir(/)相当于ls /
var_dump()相当于echo

接下来读取有哪些目录? num=var_dump(scandir(chr(47)))相当于? num=system(ls /)
由于单引号被过滤了,用chr()绕过(php chr函数用于从指定的ASCII值返回字符),chr(47)=" / "。![在这里插入图片描述](https://img-blog.csdnimg.cn/25b9dab2762e435183014003cd8e968b.png

file_get_contents()读取并输出文件内容

例如 file_get_contents(/flag.php),读取/flag.php的代码

找到flag所在文件名,读取文件? num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))含义为file_get_contents(/f1agg)相当于? num=system(cat /f1agg)
在这里插入图片描述

分隔线
这一部分内容基本转载和复现是上面提到的博客:https://blog.csdn.net/weixin_52116519/article/details/124212036

[RoarCTF 2019]Easy Java

随便试试

在这里插入图片描述
没啥发现,题目看来,又不像sql注入
在这里插入图片描述
这里看着像是有点东西!接下来…就是查阅时间!参考博客博客2
猜测这可能有文件下载漏洞,抓包试试!要用POST方式来进行请求,软件,插件HackBar都可以!最近插件有点问题!

filename下载源码
用的是javaweb,那么全部的配置文件都在web.xml文件中,路径在WEB-INF/web.xml

在这里插入图片描述
发包可得!
在这里插入图片描述
知识点转自上文博客!

WEB-INF主要包含一下文件或目录:
/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件
漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码

在这里插入图片描述好长时间不用了,这个软件感觉哪里怪怪的

ZmxhZ3s4MTY2MzMwYy1lOGRmLTQ1M2EtYTE4Yy1jNjYxYTJlYTMwMDB9Cg==

找到合适的方法解码即可!
在这里插入图片描述
知识层次问题有很多不太理解的地方…所以没有太多知识点!

[HCTF 2018]WarmUp

在这里插入图片描述
挺好看的!没事看个源代码~
在这里插入图片描述
得到一个提示
在这里插入图片描述
先奉上一篇博客,我太菜了!先在这篇博客,里学习一下phpmyadmin 4.8.1 远程文件包含漏洞

<?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\" />";
    }  
?>

if (! empty($_REQUEST['file'])
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
$_REQUEST['file'] 不能为空
$_REQUEST['file'] 是字符串
$_REQUEST['file'] 字符串且经过emmm类的checkFile函数过滤,就执行文件包含,否则就输出滑稽图片
?file=source.php%253F../../../../../ffffllllaaaagggg

…/…/…/…/…/ :到根目录
其余参考博客:1.https://blog.csdn.net/angry_program/article/details/107855078
2.https://blog.csdn.net/weixin_44022769/article/details/115278416?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-115278416-blog-108785285.pc_relevant_multi_platform_whitelistv2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-115278416-blog-108785285.pc_relevant_multi_platform_whitelistv2&utm_relevant_index=1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值